F28PL1 Programming Languages Greg Michaelson/Jamie Gabbay Lecture 0: Overview
Contact Greg Michaelson: – EM G56 – x3422 – Jamie Gabbay – EM G50 – x3425 –
Aims To gain understanding of different language paradigms To gain understanding of defining concepts of programming languages To develop skills in programming in languages from key paradigms
Syllabus Overviews of language history, definition (lexicon, syntax, semantics), implementation (compiler, interpreter, virtual machine) Overviews of language paradigms: e.g. imperative (high-level, system, low-level), declarative (functional, logic), concurrency/parallelism
Syllabus Overviews of programming language concepts: – variable, lvalue & rvalue, assignment (sharing/copying) – data abstraction (sequential, structured, recursive, shared/distributed) – type mechanisms (weak/strong, static/dynamic, ad- hoc/parametric polymorphism) – declaration (scope, extent),
Syllabus Overviews of programming language concepts – control abstraction (sequence, choice, repetition, block, procedure, labels/jumps, exceptions, processes) – expression abstraction (functions), parameter mechanisms (value, reference) – evaluation mechanisms (strict/lazy, ordered/unordered, concurrent)
Syllabus An introduction to programming in languages from key paradigms e.g. – imperative/system: C – imperative/low-level: assembler – declarative/functional: SML – declarative/logic: Prolog
Subject Mastery understanding of distinguishing characteristics of language paradigms understanding of relationships between languages understanding of generic language concepts ability to program in languages from key paradigms ability to use tool sets for these languages
Personal Abilities understanding of how to choose an appropriate language for different problem domains
Assessment Exam: 2hrs 60% Coursework: 40% – signed off in laboratory – programming exercises in: ARM assembly language C Standard ML (SML) Prolog
Organisation weeks GM – ARM assembly language + C week 6 – finish ARM & C labs weeks JG – SML + Prolog week 12 - GM/JG – revision + finish SML & Prolog labs
GM Organisation weeks 1-5 – Mon , Laboratory week 1 - no Laboratory weeks 2 & 3, EM G46/47 weeks 4-6, EM 2.50 – Wed 12.15, Lecture, EM 1.82 – Thurs 10.15, Lecture, EM 1.83 – Thurs 15.15, Tutorial, EC G01 - not EM! week 6 - Mon Lab + Thurs Lab EM 2.50 NB from week 7, Labs Thurs EM 2.50 only
New course! this is not the same as old F28PL2 Programming Languages – new course does not cover language implementation – now in 3 rd year course in old course exams, only questions 1 (C) & 2 (ARM assembler) are relevant