02143 Formelle sprog og semantik

2023/2024

Kurset er planlagt til at blive udbudt første gang i foråret 2025. Kurset udbydes kun, hvis det er godkendt af DTU Compute Studienævn i tide.
Dette kursus vil dække en udvalgt delmængde af 02141 (https:/​/​kurser.dtu.dk/​course/​02141).
Kursusforelæsningerne finder sted tirsdage og fredage (sammen med 02141), men ikke på alle pladser.
Kursusinformation
Formal Languages and Semantics
Engelsk
5
Bachelor
F4 (tirs 13-17, fre 8-12)
Campus Lyngby
Forelæsninger, teoretiske øvelser, programmeringsøvelser og en obligatorisk opgave.
13-uger
F4A
Skriftlig eksamen
Skriftlig eksamen (som normalt ændres til mundtlig ved reeksaminer). Gennemførelse af den obligatoriske opgave er en forudsætning for at gå til eksamen og vil indgå i den samlede vurdering.
Skriftlig eksamen: 4 timer
Alle hjælpemidler er tilladt
7-trins skala , ekstern censur
02141
02157 , Diskret matematik, algoritmer og datastrukturer, funktionsprogrammering.
Alberto Lluch Lafuente , Lyngby Campus, Bygning 321, Tlf. (+45) 4525 3736 , albl@dtu.dk
Christoph Matheja , chmat@dtu.dk
01 Institut for Matematik og Computer Science
https://courses.compute.dtu.dk/02141
I studieplanlæggeren
Overordnede kursusmål
De studerende lærer at anvende centrale datalogiske modeller og formalismer, at udvikle værktøjer baseret på disse formalismer og at bruge disse værktøjer til at analysere softwarekode.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
  • anføre forskelle i udtrykskraft af de præsenterede formelle modeller;
  • tolke betydningen af en formel model (f.eks. automater, grammatiker, semantikker):
  • udlede en formel model (f.eks. automater, grammatiker, semantikker) for en ønsket egenskab eller opførsel givet som en tekstuel beskrivelse;
  • oversætte en model til en anden model (f.eks. regulære udtryk til NFA);
  • ændre en model svarende til et givet kriterie (f.eks. fjernelse af afskedigelser, fjernelse af uklarheder grammatik);
  • anvende udvalgte værktøjer og udvikle ny værktøjer relateret til de formelle modeller (f.eks. lexere, parsere, analysatorer);
  • udlede egenskaber ved at anvende bevisstrategier (f.eks. matematisk induktion, strukturel induktion);
  • udlede egenskaber ved at anvende bevisstrategier (f.eks. matematisk induktion, givne sætninger);
  • vælge formelle modeller der kan være nødvendige eller nyttige ved løsning af et givent problem;
  • opnå kursets mål som del af en gruppe, mens det individuelle ansvar opretholdes;
  • kommunikere sine konstruktioner og løsninger på en klar og præcis måde; og
  • demonstrere evnen til at bruge de on-line digitale lærings systemet til at forankre læringen.
Kursusindhold
Kurset omfatter to emner:

(1) Formelle sprog og deres brug til at beskrive syntaks. For regulære sprog behandles måder at beskrive dem med automata og regulære udtryk, deres sammehæng, praktiske anvendelser (fx søgning, leksikalsk analyse, formelle specifikationer). For kontekstfri sprog behandles måder at beskrive dem med pushdown automata og kontekstfri grammatik, en række anvendelser (fx til parsing af programmer, dokumenter og formateret data) sammen med en kort indføring til stakautomater og deres sammenhæng med kontekstfri sprog.

(2) Formelle metoder og deres brug til både modellering og analyse af IT systemers egenskaber, især software koe. Dette inkluderer semantik af programmeringssprog og deres brug til at bygge en compiler.

Kurset involverer praktisk brug af forskellige værktøjer, og de studerende skal løse både teoretiske og praktiske opgaver, som integrerer kursets to emner.

Mens 02141 giver en dyb behandling og praktisk erfaring med forskellige formelle metoder til at analysere programmer (programverifikation, programanalyse, informationsflowsikkerhed og modelkontrol), vil dette kursus give en kort oversigtsforelæsning om formelle metoder og deres applikationer til at bygge høje - kvalitets IT-systemer. Studerende er velkomne til at tage den fulde version (02141), som vil tælle som et 5 ETCS valgfag oven i <nyt nummer>.
Litteraturhenvisninger
(1) "Introduction to Automata Theory, Languages, and Computation", af John E. Hopcroft, Rajeev Motwani, Jefrey D. Ullman, Third Edition, Addison-Wesley, 2007.
Kursusbogen "02141: Automata Theory and Languages" udvalgt af Hanne Riis Nielson indeholder de nødvendige kapitler.
(2) "Formal Methods - An Appetizer" af Flemming Nielson og Hanne Riis Nielson, Springer, 2019.
Bemærkninger
Kurset gives på engelsk.
Sidst opdateret
31. maj, 2023