Kursinnehåll
Utvärdering av programmeringsspråk och programmeringsparadigmer Formell grammatik, syntax och semantik, lexikal och syntaktisk analys, parsning. Imperativ programmering, identifierare, variabler, deklarationer, uttryck, kontrollstrukturer och deras användning i Fortran, Pascal och C. Datatyper och strukturer: fält, poster, pekare och referenstyper. Procedurer och underprogram, block, räckvidd, parameteröverföring, nestade och rekursiva procedurer, egendefinierade operatorer Objektorienterad programmering. Klasser, inkapsling, run-time polymorfism, arv, mall. Översikt av Smalltalk, C++, Java. Funktionell programmering. Funktioner och notation av "lamda calculus". Funktionell programmering för typade och typlösa språk. Översikt av Lisp, Scheme och ML. Logikprogrammering. Mindre introduktion till predikatlogik och prövning av teorem. Grunderna i Prolog. Introduktion till samtidighet. Processer och trådar. Säker access till delat data. Språkliga stöd för samtidighet: semaforer, monitorer och meddelandeöverföring.