CloseHelpPrint
Kies de Nederlandse taal
Course module: NWI-IBC025
NWI-IBC025
Computation Models
Course infoSchedule
Course moduleNWI-IBC025
Credits (ECTS)3
CategoryBA (Bachelor)
Language of instructionDutch
Offered byRadboud University Nijmegen; Faculty of Science; Informatica en Informatiekunde;
Lecturer(s)
Coordinator
prof. dr. E. Barendsen
Other course modules lecturer
Contactperson for the course
prof. dr. E. Barendsen
Other course modules lecturer
Lecturer
prof. dr. E. Barendsen
Other course modules lecturer
Lecturer
dr. E.M.G.M. Hubbers
Other course modules lecturer
Lecturer
T.J. Steenvoorden
Other course modules lecturer
Academic year2017
Period
KW4  (16/04/2018 to 02/09/2018)
Starting block
KW4
Course mode
full-time
Remarks-
Registration using OSIRISYes
Course open to students from other facultiesYes
Pre-registrationNo
Waiting listNo
Placement procedure-
Aims
After this course participants are able to:
  • Model computations in functional languages using rewrite systems (term rewrite systems, lambda calculus). Analyse computations in rewrite systems like confluence and termination.
  • Design alternative formalisms for state and memory models for imperative languages.
  • Model the semantics of existing programming languages, by selecting appropriate existing formalisms and by extending these if needed. Perform a case study using their own formalism. Present the results in a professional way and justify the model to colleagues.
Content
In this course you will learn computation models that are used for functional programming languages. These models form the basis for implementaion of such functional languages and they are also being used for studying the behavior of functional programs.
In addition, you learn to design alternative semantic models for defining the semantics of imperative programming languages. This is applied on existing languages. This part of the course builds upon the course Semantics and Correctness.
Literature
We gebruiken een boek en enkele dictaten:

• Hanne Riis Nielson en Flemming Nielson: Semantics with applications, 1999
• Erik Barendsen: Semantics of abrupt completion: a case study in natural semantics
• Hans Zantema: Termherschrijfsystemen
• Henk Barendregt en Erik Barendsen: Introduction to lambda calculus
Zowel het boek als de dictaten zijn als PDF beschikbaar op de website van de cursus.
Teaching formats
• 16 uur hoorcollege
• 16 uur responsie-college
• 52 uur zelfstudie

Toelichting werkvormen: Het grootste deel van deze cursus is taakgestuurd opgezet. Je volgt een wekelijkse cyclus van oriëntatie (hoorcollege), zelfstudie (leertaak) en nabespreking (responsiecollege). Elke leertaak heeft een vaste structuur, waarin bijvoorbeeld precies de leerdoelen en de op te leveren producten zijn gespecificeerd. Zo kun je ook (als je dat wilt) het cursusmateriaal zelfstandig en doelgericht doorwerken.
In een werkstuk laat je zien dat je semantische technieken kunt ontwikkelen en toepassen 'in het wild'. Dit onderdeel van de cursus wordt afgerond met een bespreking van het werkstuk met de docenten. Dit gesprek is onderdeel van de toetsing, maar heeft het karakter van een inhoudelijke (werk)bespreking met collega-semantici.
Topics
• Semantiek van functionele talen en constructies: termherschrijven, normalisatie, confluentie, lambda-calculus, reductie, representatie berekenbare functies
• Semantiek van imperatieve talen en constructies: abrupte terminatie, state, executiemodellen
Test information
De beoordeling is gebaseerd op twee onderdelen:

• een schriftelijk tentamen,
• het werkstuk.

Als je voor beide onderdelen minstens 5,5 hebt behaald, is het eindcijfer voor Berekeningsmodellen het gemiddelde van de twee resultaten. In andere gevallen is het eindcijfer het laagste van de twee.
Prerequisites
Je hebt programmeerervaring met imperatieve en functionele talen. Verder kun je:

• (programmeer)talen en taaluitbreidingen specificeren met behulp van contextvrije grammatica's;
• operationele semantiek van imperatieve taalconstructies formuleren via natuurlijke semantiek (ns) en via structurele operationele semantiek (sos);

• berekenbaarheid van numerieke operaties aantonen;
• helder formuleren, zowel bij het motiveren van oplossingen als het weergeven van wiskundige redeneringen.

Deze voorkennis kun je opbouwen via de cursussen rond programmeren en de cursussen Talen en Automaten, Semantiek en Correctheid en Beweren en Bewijzen.
Required materials
Book
Hanne Riis Nielson and Flemming Nielson: Semantics with applications, 1999
Reader
Erik Barendsen: Semantics of abrupt completion: a case study in natural semantics
Reader
Hans Zantema: Term rewrite systems
Reader
Henk Barendregt and Erik Barendsen: Introduction to lambda calculus
Instructional modes
Course
Attendance MandatoryYes

Lecture

Response course

Preparation of meetings
The corresponding task must have been studied seriously.

Zelfstudie

Tests
Tentamen
Test weight1
OpportunitiesBlock KW4, Block KW4

CloseHelpPrint
Kies de Nederlandse taal