Skip to main content

Module

CSC3321 : Understanding Programming Languages

  • Offered for Year: 2020/21
  • Module Leader(s): Dr Troy Astarte
  • Owning School: Computing
  • Teaching Location: Newcastle City Campus
Semesters
Semester 2 Credit Value: 10
ECTS Credits: 5.0

Aims

There are a great many programming languages and those which are popular today may be forgotten in twenty years; then you will be learning languages which today do not even exist. Many other "formal" languages are around and will affect your life in computing: scripting, virtual reality, layout, robotics control... Some languages aim for general usage and others are very specific, but all embody certain ideas and concepts. Sadly, many languages focus on one new idea (objects, concurrency, memory manipulation) but have significant drawbacks compared to their predecessors in other respects.

The principal aim of this module is to teach you how to pick apart the key ideas in formal languages and communicate them. In particular, the "meaning" (or semantics) of programming languages is considered. You will learn how to model the very base concepts of computation and combine them in interesting ways to make programming languages. Ultimately this will help you better to understand any particular language you come across and will very likely increase your understanding of the languages you already know. Furthermore, you will be equipped with the knowledge and understanding required to get involved in language design or extension.

The main principle taught is abstraction. The approach to semantics follows Structural Operational Semantics (SOS), with a Viennese flavour. VDM is used for notation only.

Outline Of Syllabus

o Challenges and issues in programming languages
o Syntax (content and structure) of languages
o Semantics (meaning and effect) of languages
-Base concepts: storage, assignment, branching control
-Concurrency
-Blocks, procedures, functions
-Objects
o Context conditions (error prevention)
o Other approaches besides SOS (axiomatic, denotational semantics)

Teaching Methods

Module leaders are revising this content in light of the Covid 19 restrictions.
Revised and approved detail information will be available by 17 August.

Assessment Methods

Module leaders are revising this content in light of the Covid 19 restrictions.
Revised and approved detail information will be available by 17 August.

Reading Lists

Timetable