Preskoči na glavno vsebino

Teorija programskih jezikov

2021/2022
Program:
Interdisciplinarni magistrski študijski program 2. stopnje Računalništvo in matematika
Letnik:
1 ali 2 letnik
Semester:
prvi ali drugi
Vrsta:
izbirni
ECTS:
6
Jezik:
slovenski, angleški
Izvajalec (kontaktna oseba):
Ure na teden – 1. ali 2. semester:
Predavanja
3
Seminar
0
Vaje
2
Laboratorij
0
Vsebina

Pri predmetu se obravnava teorija programskih
jezikov s poudarkom na uporabi matematičnih
metod pri podajanju jezikov in analizi njihovih
lastnosti. Obravnavajo se naslednje teme:

  • konkretna in abstraktna sintaksa,
  • induktivne definicije, definicije
  • dokazovanje s strukturno indukcijo
  • induktivni podatkovni tipi kot
  • operacijska semantika kot
  • funkcijski programski jeziki:
  • polimorfizem, parametrični
  • ukazni programski jeziki,
  • denotacijska semantika: domene in
  • izbirne vsebine: objektni
    leksična in gramatična analiza kot
    prevajanje konkretne v abstraktno
    sintakso
    podane z sodbami in pravili
    sklepanja
    po abstraktni sintaksi ali po
    strukturi izpeljave
    primer uporabe strukturnih definicij
    in strukturne indukcije
    induktivno definirana relacija,
    semantika malih in velikih korakov
    rekurzivne definicije, neučakani in
    leni jeziki, statična analiza,
    preverjanje tipov, varnost kot
    posledica leme o napredku in leme
    o ohranitvi, pomen varnosti v praksi
    polimorfizem in Hindley-Milnerjeva
    izpeljava tipov
    specifikacije in dokazovanje
    pravilnosti programov
    zvezne funkcije, izrek o obstoju
    negibnih točk, denotacijska
    semantika funkcijskega
    programskega jezika, interpretacija
    rekurzije z negibnimi točkami
    programski jeziki, paralelno
    računanje, logično programiranje
Temeljni literatura in viri

• B.C. Pierce: “Types and Programming Languages”. The MIT Press 2002.
• J.C. Reynolds: “Theories of Programming Languages”. Cambridge University Press 1998.
• R.M. Amadio & P.-L. Currien: “Domains and λ-calculi”. Cambridge Tracts in Theoretical Computer Science 46. Cambridge University Press, 1998.

Cilji in kompetence

Cilj predmeta je predstavitev modernega,
matematičnega pristopa, k teoriji programskih
jezikov. Študenti pridobijo sposobnost analize
programskih jezikov ter osnovnih konceptov
povezanih z njimi.

Predvideni študijski rezultati

Znanje in razumevanje:
Slušatelji se naučijo, kako načrtujemo in
analiziramo programske jezike s formalnimi
matematičnimi metodami.

Metode poučevanja in učenja

predavanja, vaje, domače naloge

Načini ocenjevanja

domače naloge, kolokviji, projekti, pisni izpit, ustni izpit
ocene: 5 (negativno), 6-10 (pozitivno) (po Statutu UL)

Reference nosilca

LUKŠIČ, Primož, HORVAT, Boris, BAUER, Andrej, PISANSKI, Tomaž. Practical E-Learning for the Faculty of Mathematics and Physics at the University of Ljubljana. Interdisciplinary journal of knowledge & learning objects, ISSN 1552-2210, 2007, vol. 3, str. 73-83. [COBISS-SI-ID 14269529]
BAUER, Andrej, STONE, Christopher A. RZ: a tool for bringing constructive and computable mathematics closer to programming practice. V: Computation and logic in the real world : Third Conference on Computability in Europe, CiE 2007, Siena, Italy, June 18-23, 2007 : proceedings, (Lecture notes in computer science, ISSN 0302-9743, 4497). Berlin