|Faculty or Section :||Faculty of Health, Engineering and Sciences|
|School or Department :||School of Mathematics, Physics & Computing|
|Student contribution band :||Band 2|
|Grading basis :||Graded|
|Version produced :||24 May 2022|
Pre-requisite: CSC2402 or enrolled in CSC2402 at the same time as CSC8503 or Students must be enrolled in one of the following Programs: GDTI or GCSC or MCTN
Programming languages are the fundamental means of communication between humans and computers. The number of available programming languages is large, and it continues to increase. However, programming languages are more alike than different. In order to learn and grasp new languages with minimum time and effort, computing professionals need to know the structure, the semantics and the elements that are common in all programming languages. They also need to understand the design principles of various programming languages and be familiar with the similarities and differences between programming languages and programming language paradigms. This course covers the basic design principles of programming languages which forms the basis for analysing and evaluating programming languages.
This course addresses the basic principles of programming languages. It emphasises the structure and the semantics of programming languages. It covers the major elements of languages such as types, objects, names, scopes, expressions, functions, procedures, parameters, control structures and run-time storage management. This course introduces aspects of programming language translation such as lexical analysis, parsing, interpretation, and compilation. Students will gain a deep understanding of semantics of programming languages as well as their implementation and apply this knowledge to analyse and evaluate existing programming languages.