NWI-IBC025
Semantics and Rewriting
Cursus informatieRooster
CursusNWI-IBC025
Studiepunten (ECTS)3
CategorieBA (Bachelor)
VoertaalEngels
Aangeboden doorRadboud Universiteit; Faculteit der Natuurwetenschappen, Wiskunde en Informatica; Informatica en Informatiekunde;
Docenten
Coördinator
dr. E.G.M. Hubbers
Overige cursussen docent
Examinator
dr. E.G.M. Hubbers
Overige cursussen docent
Docent
dr. E.G.M. Hubbers
Overige cursussen docent
Contactpersoon van de cursus
dr. E.G.M. Hubbers
Overige cursussen docent
Docent
N.M. van der Weide
Overige cursussen docent
Collegejaar2022
Periode
KW4  (10-04-2023 t/m 31-08-2023)
Aanvangsblok
KW4
Onderwijsvorm
voltijd
Opmerking-
Inschrijven via OSIRISJa
Inschrijven voor bijvakkersJa
VoorinschrijvingNee
WachtlijstNee
Plaatsingsprocedure-
Cursusdoelen
Upon completion of this course, the students are able to:
  • Model computations in functional languages using rewrite systems (term rewrite systems, lambda calculus).
  • Analyze computational properties of rewrite systems, for example, confluence and termination.
  • Design alternative formalisms for state and memory models for semantics of imperative programming languages.
  • Model the semantics of existing programming languages by selecting appropriate existing formalisms, extending and modifying these if necessary, perform a case study using the resulting model, present the results in a professional report, and review reports handed in by other students.
Inhoud
In this course, you will learn about computation models that are used for functional programming languages. These models form the basis for the implementation of such functional languages. Moreover, they can be used for studying the behavior of functional programs.
In addition, you will learn to design alternative semantic models for characterizing the semantics of imperative programming languages. You will apply this in a case study on a real-life language. This part of the course builds upon the course IBC026 Semantics and Correctness.

Instructional Modes
The learning cycle of the course typically starts with a two hour plenary lecture. Then, students have to work on a learning task. Finally, during a two hour plenary response lecture, students can obtain feedback about the learning tasks.
In addition, students participate in a group project about semantics of imperative languages. This results in a written report and a review of a report handed in by a different group.
Niveau

Voorkennis
You have experience in programming, both in imperative languages and functional languages. In addition, you are able to
  • specify programming languages or extensions of programming languages using context-free grammars;
  • specify operational semantics of imperative languages using natural semantics as well as using structural operational semantics;
  • formulate clearly, both in motivating solutions and in expressing mathematical proofs.
These prerequisites can be obtained by doing the course IBC026 Semantics and Correctness, which in its turn expects that you did the course Logic and Applications, and one of the courses IPC002 Languages and Automata or IPK001 Introduction to Formal Reasoning, and preferably the course IBC003 Computability. Students that try to do Semantics and Rewriting without having done Semantics and Correctness, have a good chance to pass the exam on term rewrite systems and lambda calculus, but they usually fail the group project of the Semantics and Rewriting course.
Toetsinformatie
The final grade for this course is based on a grade E for the digital Cirrus exam about term rewrite systems and lambda calculus, and a grade P for the project on semantics of imperative programming languages. If both of these are at least 5.5, then the final grade will be (E+E+P)/3, rounded according to the rules in Osiris. In all other cases, students will not pass the course.
Bijzonderheden

Verplicht materiaal
Dictaat
A PDF is available via Brightspace.
Titel:Semantics of abrupt completion: a case study in natural semantics
Auteur:Erik Barendsen
Dictaat
A PDF is available via Brightspace.
Titel:Term rewrite systems
Auteur:Hans Zantema
Dictaat
A PDF is available via Brightspace.
Titel:Introduction to lambda calculus
Auteur:Henk Barendregt and Erik Barendsen

Aanbevolen materiaal
Boek
This book is only important as background knowledge for doing the project. It is the book that was also used for the IBC026 Semantics and Correctness course. Within this course we do not discuss any new topics from this book. A PDF of the freely available revised edition from 1999 is available via Brightspace.
Titel:Semantics with applications
Auteur:Hanne Riis Nielson and Flemming Nielson

Werkvormen
Cursus
AanwezigheidsplichtJa

Opmerking
84 hours.

Toetsen
Digitaal tentamen
Weging0
ToetsvormDigitale toets met CIRRUS
GelegenhedenBlok KW4, Blok KW4

Project
Weging0
ToetsvormProject
GelegenhedenBlok KW4, Blok KW4

Eindcijfer
Weging1
GelegenhedenBlok KW4, Blok KW4

Opmerking
Door docent zelf te berekenen/in te voeren eindcijfer gebaseerd op toets01 en toets02