University: Technical University of Košice
Faculty: Faculty of Electrical Engineering and Informatics
Department: Department of Computers and Informatics
Course Number: 2611531 Course Name: Semantics of Programming Languages
Type, scope and method of learning activities:
Course Type: Lecture, Numerical exercises
Recommended scope of the course content (in hours):
Full-time study (hours per week): 3,2
Part-time study (hours per semester): 39,26
Study Method:
Number of credits: 6
Recommended semester of study: WT
Recommended semester Study programme Study grade Study Method
1.rok WT Cybersecurity (KB_Ing_D_sk)
Informatics (INF_Ing_D_sk)
Computer Modelling (PM_Ing_D_sk)
Informatics (INF_Ing_D_en)
Level of study:
Course completion requirements:
Assessment and completion of the course: Credit test and examination
Continuous assessment: Student passes the continuous assessment and receives credits when he or she meets the requirement to obtain at least 16% out of 30%.
Final assessment: Student passes the final assessment and passes the examination when he or she meets the requirement to obtain at least 36% out of 70%.
Overall assessment: Overall assessment is the sum of the assessments obtained by students in the assessment period. The overall result is determined in accordance with the internal regulations of the Technical University in Košice. (Study Regulations, the internal regulation principles of doctoral studies)
Learning outcomes:
The student acquires the  most important methods of semantic description of programming  languages: operational semantics, natural semantics, denotational semantics,  algebraic, axiomatic semantics and action semantics. Student learns different approaches of particular methods to the semantic definition of programming languages constructions. Student understands proofs of the equivalence of the semantic methods.
Brief course content:
1. Definition of the concept semantics, classification of semantical methods, definition of syntax and semantics of  programming languages.  
2.  Simple procedural programming language, semantics of arithmetical and boolean expressions.
3. Natural operational semantics as semantics of big steps.
4. Structural operational semantics as semantics of small steps.
5. Extensions of the simple procedural language and their operational semantics.
6. Operation semantics of blocks, declarations and procedures.
7. Abstract implementation of programming languages.
8. Algebraic semantics. Axiomatic semantics.
9. Denotational semantics.
10. Denotational semantics of the loop statement.
11. Indirect denotational semantics.
12. Action semantics.
Recommended Reference Sources:
1. D. A. Schmidt: Denotational Semantics. Methodology for Language Development, Allyn and Bacon, 1986.
2. H.R.Nielson, F.Nielson: Semantics with Applications. A Formal Introduction, WileyaSons,1992
3. P.D.Mosses: A tutorial on action semantics. Formal Methods Oxford, 1996
Recommended optional program components:
Languages required for the course completion:
Course assessment:
Total number of students assessed: 2178
  A B C D E FX  
  18% 19% 25% 21% 9% 7%  
doc. Ing. William Steingartner, PhD.
Last modified: 01.09.2022
Approved by: person(s) responsible for the study program