130 likes | 469 Views
F28PL1 Programming Languages Greg Michaelson. Lecture 0: Overview. Contact. EM G56 x3422 G.Michaelson@hw.ac.uk. Aims. To gain understanding of different language paradigms To gain understanding of defining concepts of programming languages
E N D
F28PL1 Programming LanguagesGreg Michaelson Lecture 0: Overview
Contact • EM G56 • x3422 • G.Michaelson@hw.ac.uk
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 • Prolog
Organisation • weeks 1- 11 • Tues 11.15, Lecture, EM 1.83 • Tues 15.15, Laboratory, EM 2.45/2.50 (not week 1) • Wed 9.15, Tutorial/Lecture, EM 1.83 • Thurs 11.15, Lecture, EM 3.36 • week 12 • Tues 11.15, Revision, EM 1.83 • Tues 15.15, Laboratory/final sign off, EM 2.45/2.50
New course! • this is not the same as old F28PL2 Programming Languages • 2010-12 • new course does not cover language implementation • now in 3rd year course • in old course exams, only questions 1 (C) & 2 (ARM assembler) are relevant