CMPT 383 D1
CMPT 383 CourSys Page: Fall 2015
Welcome to the course pages for the Fall 2015 offering of CMPT 383 - Comparative Programming Languages. All reference materials required for the course will be available on-line and linked through these pages.
- Course Administration
- Grading Scheme
- Final Exam: 8:30-11:30, Wednesday, December 16, 2015, Surrey 2740.
Syntax and Semantics
Here are the pages for the syntax and semantics formalisms we use to define programming languages (these formalisms can also be called metalanguages).
- Lexical Conventions and Regular Expressions
- Context-Free Grammars and Parsing
- Programming Language Semantics - Overview
- Axiomatic Semantics
Programming Language Concepts
Understanding programming language concepts allows you to compare similar features of different programming languages, and to learn new languages more quickly.
- Data Structuring and Type Systems
- Language Design Principles
- Static and Dynamic Properties
- Control Structures and Error Handling
- Modules and Abstraction
Language Pages
Here are the language pages for specific languages that we will study in this course. These language pages include Prof. Cameron's notes and external resources.
- Go Language Notes and Resources
- Haskell Notes and Resources
- Prolog Notes and Resources
- Swift Notes and Resources
Language Implementation
Programming languages are generally implemented by interpretation or translation (compilation) to a lower-level machine assembly language.
In order to gain a better understanding of programming language features from an operational point-of-view, we will study how features can be translated into a platform-independent assembly language called LLVM IR.
Regula: A Language Project
Here are the notes and pages for Professor Cameron's Regula language project.
Assignments
Here are the pages for the course assignments.