Pogoji za vključitev v delo oz. za opravljanje študijskih obveznosti
|
|
Osnovno znanje programiranja. |
Vsebina
|
|
Uvod: zgodovina in klasifikacija programskih jezikov, kriteriji za načrtovanje programskih jezikov.
Koncepti: vrednosti, pomnilnik, povezovanje, abstrakcija, kapsuliranje, sistemi tipov, sekvencerji, sočasnost.
Sintaksa in semantika: uvod v teorijo formalnih jezikov, leksikalna analiza, sintaktična analiza, abstraktna sintaksa, atributna gramatika, aksiomatska semantika, denotacijska semantika, generiranje in optimizacija kode.
Vzorci: imperativno programiranje (Pascal, ADA), funkcijsko programiranje (Lisp, Haskell, ML), logično programiranje (Prolog), objektno programiranje (Smalltalk, C++, Java, Python).
|
Temeljni literatura in viri
|
|
• V. Žumer, M. Mernik, Principi programskih jezikov, Univerza v Mariboru, Fakulteta za elektrotehniko, računalništvo in informatiko, Maribor, 2003.
• Michael L. Scott, Programming Language Pragmatics, Morgan Kaufmann Publishers Inc., San Francisco, 2000.
• D. A. Watt, Programming Language Design Concepts, John Wiley & Sons, Chichester, 2004.
• Maurizio Gabbrielli in Simone Martini, Programming Languages: Principles and Paradigms, Springer, 2010
|
Cilji in kompetence
|
|
Cilj predmeta je spoznati študente s principi programskih jezikov. |
Predvideni študijski rezultati - znanje in razumevanje
|
|
Po zaključku tega predmeta bo študent sposoben
- razumeti delovanje prevajalnikov in interpreterjev,
- načrtovati in implementirati nov prevajalnik ali interpreter,
- identificirati prednosti in slabosti posameznega vzorca,
- izbrati primeren programski jezik za rešitev dane naloge,
- razumeti koncepte programskih jezikov, s pomočjo katerih se bodo hitreje naučili novega programskega jezika,
- načrtovati in implementirati programske jezike. |
Predvideni študijski rezultati - Prenosljive/ključne spretnosti in drugi atributi
|
|
Spretnosti komuniciranja: ustni zagovor laboratorijskih vaj, pisno izražanje pri pisnem izpitu.
Uporaba informacijske tehnologije: uporaba objektno usmerjenih, funkcijskih in logičnih programskih jezikov.
Reševanje nalog: uporaba programskih vzorcev pri načrtovanju in implementaciji programov.
Implementacija prevajalnikov.
|
Metode poučevanja in učenja
|
|
• predavanja,
• seminarske vaje,
• laboratorijske vaje,
• reševanje domačih nalog.
|