Lecturer: Bernhard Gramlich.

Description of the course in TISS: 185.205 Semantics of Programming Languages.

Language: The course is (usually) held in English.

This course is primarily intended for students in computer science
and mathematics, who are interested in formal and theoretical
foundations of programming languages. It is a (mandatory or optional)
course in the
Master Studies
*Computational Intelligence*,
*Software Engineering & Internet Computing*,
*Technische Informatik *
and in
*Computational Logic*
(European Masters Program in
Computational Logic).

**Results of Final Exam of 21.06.11 (and of overall results):****Inspection: Monday, 04.07.11, 12:00-13:00.**- Regular date and place: Tuesday, 09:00-11:00 (2 full hours), EI 1 Petritsch HS
- First class: Tuesday, 08.03.11, 09:00-11:00
- Entrance exam (obligatory):
- 1st possibility: Donnerstag 10.03.11, 18:15-19:45, HS 18 Czuber (registration 23.02.-08.03.11)
- 2nd possibility: Donnerstag 17.03.11, 18:15-19:45, HS 18 Czuber (registration 11.03.-16.03.11, 16:00)

The course deals with basic foundations of (formal) semantics of
programming languages. For a real understanding of programs in any
programming language and especially for logical reasoning about
properties of such programs a clearly defined semantics is
indispensable. There exist various different approaches to describe
the formal semantics of programming languages. In the course we treat:
Foundational semantic description methods and formalisms and their
interrelation: *operational*, *denotational*, and
*axiomatic* (definitions of) semantics of imperative program
constructs; relations to program verification; equational
specification, programming and semantics; inductive and recursive
definitions; fixed point operators and constructions; selected topics
like non-determinsim, parallelism, and concurrency.

- Regular date and place: Tuesday, 09:00-11:00 (2 full hours),
EI 1 Petritsch HS

Note that the course is slightly blocked! - First class: Tuesday, 08.03.11, 09:00-11:00

- Required knowledge: Basics of and familiarity with the fields (courses) "Theoretical Computer Science and Logic" (185.263 or 185.278) and "Formal Methods in Computer Science" (185.291) (especially parts 2 "Satisfiability / Propositional and Predicate Logic" and 3 "Formal Verification of Software")
- Registration: For participating in the course a registration via TISS as well as a positive result in the entrance exam is required.
- Entrance exam: Passing the entrance exam is a precondition for further attending and passing the course.

The course primarily relies on the following textbook(s) (to be extended):

- Hanne Riis Nielson, Flemming Nielson: Semantics with Applications: Formal Introduction, Wiley Professional Computing, 240 Seiten, ISBN 0 471 92980 8, Wiley, 1992.
**Hanne Riis Nielson and Flemming Nielson: Semantics with Applications: A Formal Introduction, revised edition, 1999 (see also here).**- Hanne Riis Nielson, Flemming Nielson: Semantics with Applications: An Appetizer. Springer Series: Undergraduate Topics in Computer Science, 274 p. 4 illus., Softcover, ISBN: 978-1-84628-691-9, 2007.

- Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes: Essentials of Programming Languages, MIT Press (trade, ISBN 0-262-06145-7) and McGraw Hill (academic, ISBN 0-07-022443-9), 536 Seiten, 1992.
- Glynn Winskel: The Formal Semantics of Programming Languages - An Introduction, MIT Press, Cambridge Massachusetts, 361 Seiten, ISBN 0-262-23169-7, 1993.
- John C. Mitchell: Foundations for Programming Languages, MIT Press, Cambridge, Massachusetts, 846 Seiten, ISBN 0-262-13321-0, 1996.
- Joseph A. Goguen, Grant Malcolm: Algebraic Semantics of Imperative Programs, MIT Press (Series: Foundations of Computing), 228 Seiten, ISBN 0-262-07172-X, 1996.
- Carl A. Gunter: Semantics of Programming Languages, MIT Press, 419 Seiten, ISBN 0-262-07143-6, 1992.
- Matthew Hennessy: The Semantics of Programming Languages: An Elementary Introduction using Structural Operational Semantics, Wiley 1990.
- John C. Reynolds: Theories of Programming Languages, Cambridge University Press, 500 Seiten, ISBN 0-521-59414-6, 1998.

Copies of the slides used in the course will be made available.

Assessment will be based on passing the entrance exam (for being admitted to the course), an exercises part (to be specified, depending on the number of participants) and a written final exam. For detailed information about the entrance exam see Exams.

- Entrance exam:
- 1st possibility: Donnerstag 10.03.11, 18:15-19:45, HS 18 Czuber (registration 23.02.-08.03.11)
- 2nd possibility: Donnerstag 17.03.11, 18:15-19:45, HS 18 Czuber (registration 11.03.-16.03.11, 16:00)
- What you should know for this entrance exam:
- Basics in "Theoretical Computer Science and Logic" (185.263 or 185.278) (especially the fundamental notions, the main properties and the semantics of propositional and predicate logic) and in "Formal Methods in Computer Science" (185.291) (especially parts 2 "Satisfiability / Propositional and Predicate Logic" and 3 "Formal Verification of Software")
- How to argue, reason and prove results in a formally (mathematically/logically) correct way; basic proof principles, e.g. proof by (natural/structural) induction, by contradiction, by case analysis; basic knowledge about programming languages.

- Final exam: 21.06.11, 09:00-11:00 (2 full hours),
EI 1 Petritsch HS
(registration necessary via TISS
in the period 18.05.-19.06.11).

Further (final) exams will be scheduled in the winter term 2011/2012 by need. - Allowed material in exams:
- Entrance exam: Nothing.
- Final exam: Copies of slides and own lecture notes (from the course), no (copies of) books!

**
Bernhard Gramlich
| AB Theoretische Informatik und Logik
| Fakultät für Informatik
| TU Wien
**

Last modified: Mon Apr 16 15:14:54 CEST 2012