Curriculum Page >> COMP332
Curriculum - COMP332 - Programming Languages
| Handbook Entry | Unit Home Page |
Short Description
COMP332 provides exposure to scripting languages and functional programming to contrast with the imperative and object-oriented styles encountered in the rest of the curriculum. It also covers programming language implementation by compilers.
Assumed knowledge
- Exposure to at least a couple of different programming languages utilising the imperative and object-oriented styles. (COMP125, COMP225)
- Programming experience in a C-like language. (COMP225)
- An understanding of algorithms and data structures, particularly involving lists, stacks, and trees. Experience with programming using these algorithms and data structures. (COMP225)
- A basic understanding of mathematical foundations of programming languages including finite-state machines. (MATH237)
- An understanding of basic RISC assembler programming. (COMP226)
Learning outcomes
- An understanding of the major types of programming language that have been developed and an ability to evaluate languages on a feature-by-feature basis.
- A solid grasp of the most common features of programming languages and their semantics.
- An understanding of the standard decomposition of programming language compilers and how compiler phases cooperate to implement program translation. Experience understanding and analysing the structure and operation of a non-trivial software system.
- How to use regular expressions and context-free grammars to formally describe programming languages and how to transform these descriptions into lexical and syntactic analysers.
- How to represent programs in a compiler intermediate form and how to process that form to perform semantic analysis, transformation and code generation for common programming language features.
- Practical experience implementing the above compilation techniques.
Comments to: Steve Cassidy
