DD2457 Programsemantik och programanalys 6,0 hp
Program Semantics and Analysis
To give a semantics for a programming language means to give a precise definition of the behaviour of programs written in this language. Once the semantics of the language has been described formally, one can go about and prove various language properties like determinism, prove correctness of program implementations based on abstract machines, justify various program analyses used in syntax-oriented editors and program transformations used in optimising compilers, and specify and prove correctness of concrete programs. This provides the formal basis for a variety of software tools for program analysis, optimisation and verification.
Utbildningsnivå
Avancerad nivåKursnivå (A-D)
DHuvudområde
Betygsskala
A, B, C, D, E, FX, F
Kurstillfällen/kursomgångar
VT13 semant13 för programstuderande
Perioder
VT13 P4 (6,0 hp)
Anmälningskod
60275Kursen startar
2013 vecka: 12Kursen slutar
2013 vecka: 21Undervisningsspråk
EngelskaCampus
KTH CampusAntal föreläsningar
Antal övningar
Undervisningstid
DagtidUndervisningsform
NormalAntal platser *
Min. 15*) Kurstillfället kan komma att ställas in om antalet antagna understiger minimiantalet platser.
Schema
Schema (nytt fönster)Kursansvarig
Dilian Gurov <dilian@kth.se>
Målgrupp
Modulschema i modulerna I och B.
Del av program
- Civilingenjör och lärare, åk 4, MADA, Villkorligt valfri
- Civilingenjörsutb i datateknik, åk 3, Valfri
- Masterprogram, datalogi, åk 1, CSCB, Villkorligt valfri
- Masterprogram, datalogi, åk 1, CSCD, Villkorligt valfri
- Masterprogram, datalogi, åk 1, CSCF, Villkorligt valfri
- Masterprogram, datalogi, åk 2, CSCB, Villkorligt valfri
VT14 semant14 för programstuderande
Perioder
VT14 P4 (6,0 hp)
Anmälningskod
60100Kursen startar
2014 vecka: 13Kursen slutar
2014 vecka: 23Undervisningsspråk
EngelskaCampus
KTH CampusAntal föreläsningar
Antal övningar
Undervisningstid
DagtidUndervisningsform
NormalAntal platser *
Min. 15*) Kurstillfället kan komma att ställas in om antalet antagna understiger minimiantalet platser.
Kursansvarig
Dilian Gurov <dilian@kth.se>
Målgrupp
Sökbar för studenter på civilingenjörsprogram som har uppnått minst 90 hp varav minst 50 hp från årskurs 1. Sökbar för studenter på masterprogram.
Del av program
Lärandemål
The overall aim of the course is to study the main semantic styles used for capturing the meaning of programs in a formal way, namely operational semantics, denotational semantics and axiomatic semantics, compare their strengths and weaknesses, and use these semantics for program analysis, optimisation and verification, both in theory and as a basis for software tools.
The successful student will be able to perform constructions such as:
* Construct the state space of a program as a basis for program behaviour analysis through state space exploration.
* Translate programs to abstract machine code, and execute the latter.
* Compute the denotation of a program.
* As above, but in abstract domains.
* Extend a programming language with new language features, and extend its semantics and abstract machine implementations accordingly.
* Suggest and justify program transformations supported by a suitable program analysis.
* Specify and verify programs in Hoare logic.
* Generate verification conditions from a program with annotated while loops.
as well as be able to formally establish results such as:
* Relate different semantic styles.
* Prove language properties such as determinism and termination.
* Show correctness of a given program transformation by proving equivalence of the original and the transformed program.
* Show properties of a given semantics.
For passing the course, a student has to demonstrate proficiency with problems of the first type; for the highest grade he/she has to be equally proficient at the remaining types of problems.
Kursens huvudsakliga innehåll
* Part I. Operational Semantics and Language Implementation: natural semantics, structural operational semantics, abstract machines, correctness of language implementation.
* Part II. Denotational Semantics and Program Analysis: denotational semantics, fixed-point theory, program analysis and transformation.
* Part III. Axiomatic Semantics and Program Verification: axiomatic semantics, program specification and verification, weakest pre-conditions, verification condition generation.
Behörighet
För fristående kursstuderande krävs 90 högskolepoäng varav 45 högskolepoäng inom matematik eller informationsteknik. Dessutom krävs engelska B eller motsvarande.
Rekommenderade förkunskaper
5B1118/SF1610 Discrete Mathematics, mandatory and 5B1928/SF1642 Logic, recommended
Litteratur
Nielson and Nielson "Semantics with Applications: An Appetizer", Springer-Verlag, 2007, ISBN: 978-1-84628-691-9.
Examination
- HEM1 - Hemuppgifter, 2,0 hp, betygsskala: P, F
- LAB1 - Laborationer, 2,0 hp, betygsskala: P, F
- TEN1 - Tentamen, 2,0 hp, betygsskala: A, B, C, D, E, FX, F
I denna kurs tillämpas skolans hederskodex, se: http://www.kth.se/csc/student/hederskodex.
Krav för slutbetyg
* LAB1 - Laboratory work, 2,0 hp, grade: Pass/fail
* HEM1 - Exercises, 2,0 hp, grade: Pass/fail
* TEN1 - Examination, 2,0 hp, grade: A, B, C, D, E, FX, F
Ges av
CSC/Datalogi
Kontaktperson
Dilian Gurov, e-post: dilian@kth.se, 790 8198
Examinator
Dilian Gurov <dilian@kth.se>
Övrig information
This course is given for the first time 09/10 and is planned to be given every second year.
Versionsinformation
Kursplan giltig från och med
HT09.
Examinationsinformation giltig från och med
HT09.
