Sommersemester 2004
Semantik von Programmiersprachen
Prof.
Tobias Nipkow
Bereich: |
Info III, Wahlpflichtvorlesung: 4 Std.
(+2Ü), oder Info I, vertiefend zu Übersetzerbau (4 Std.) |
Zeit und Ort: |
Mo, 8:30-10:00, MI 00.04.011
Fr, 8:30-10:00, MW 0350 |
Beginn: |
Mo, 19.04.2004 |
Zentralübung: |
Mi, 16:15-17:45, MI 00.04.011, erstmalig
am 21.04.2004
Auf der Seite der Übung finden Sie
Übungsblätter, Merkblätter und den Fragebogen aus der ersten
Vorlesung. |
Übungsleitung: |
Clemens
Ballarin |
Hörerkreis: Studenten/-innen
der Informatik und Mathematik
Voraussetzungen: Vordiplom
Hinweis: Die Vorlesungen werden
in diesem Jahr auf Deutsch gehalten.
Empfehlenswert für:
Für eine spätere theoretische Beschäftigung mit Programmiersprachen
ist diese Vorlesung unabdingbar. Es bestehen ausserdem starke Querbezüge
zu den Gebieten Logik, Programmverifikation und Lambda-Kalkül.
Lernziele:
-
Das Verstehen der grundlegenden mathematischen Technik der operationalen
Semantik um eine Programmiersprache präzise zu definieren.
-
Das Anwenden dieser Techniken auf Probleme wie Äquivalenz verschiedener
Sprachbeschreibungen, Korrektheit von Übersetzern, Sicherheit von
Typsystemen, Korrektheit von Programmanalysen etc.
Im Gegensatz zu früheren Jahren werden wir uns diesmal auf operationale
Semantik konzentrieren und mit dieser Technik große Teile von Java,
der JVM und eines Übersetzers behandeln. Dies ist ein Experiment!
Contents:
Starting with a simple programming language with only while-loops,
we progress to a small but realistic object-oriented language, its virtual
machine, and a simple compiler.
-
Introduction
The syntax of WHILE. Concrete vs abstract syntax. Evaluation of arithmetic
and boolean expressions.(Isabelle [pdf][ps.gz])
-
Operational Semantics
-
Big-step semantics
The rules. Derivation trees. Lemma while b do s is equivalent
to if b do s;while b do s else skip.(Isabelle[pdf][ps.gz])
-
Rule induction
Inductively defined sets and the principle of rule induction. Examples:
natural numbers and transitive reflexive closure, together with proofs
of various closure properties. Rule induction for big-step semantics of
WHILE. Theorem: WHILE is deterministic (Isabelle[pdf][ps.gz])
-
Small-step semantics
The rules [pdf][ps.gz].
Derivation sequences. Theorem: Agreement of big-step and small-step semantics.(Isabelle[pdf][ps.gz])
-
Extensions of WHILE
-
Nondeterminism. Big-step semantics hides nontermination. Small-step semantics
more appropriate.
-
Parallelism. Big-step semantics not possible. Interleaving small-step semantics.
-
Application: a compiler for WHILE
A 3-instruction machine. Its operational single-step semantics. The
compiler. Detailed proof of the equivalence of running the source program
and running the compiled program.(Isabelle [pdf][ps.gz])
-
Semantics of Inductive Definitions
A set theoretic treatment of rules. Definition: The set IR
defined by a set of rules R is the least R-closed set.
-
The derivation of rule induction.
-
Theorem: IR is the least fixpoint of the consequence
operator induced by R. If R is finitary, IR
is the union of all finite iterations of R starting from the empty
set.
-
Jinja - A Java-like Programming Language
Roughly speaking, Jinja is a subset of Java that demonstrates the key
features of object-oriented programming: objects, classes, inheritance,
method overriding, and dynamic method dispatch.
-
Formal preliminaries
-
Syntax
-
Big step semantics
-
Small step semantics
-
Exceptions
-
Equivalence of big and small step semantics
-
Type system
-
Well-formedness
-
Type safety Well-typed programs do not
go wrong.
-
The Jinja Virtual Machine (JVM)
The Jinja VM is a close relative of the Java VM, a high-level
machine independent typed assembly language together with an abstract
machine executing programs in this language.
-
JVM
-
Type system
-
Bytecode Verifier
Disclaimer: The concentration on Java does not mean that we consider
Java the best programming language in the world.
Übungsschein:
Einen Schein erhält, wer mindestens 40% der Punkte aus den Hausaufgaben
und Programmieraufgaben erreicht und erfolgreich an der Semestralprüfung
teilnimmt.
Literatur:
Die Vorlesung orientiert sich zu Beginn stark an den ersten beiden
der folgenden Bücher:
Literatur zu Jinja