I traditionelle programmeringssprog foregår beregninger ved at man destruktivt ændrer værdien af variable og af felter i objekter osv. Dette kan være effektivt men gør det unødig vanskeligt at kombinere generelle løsninger på delproblemer til løsninger på større problemer.
I funktionsprogrammering, som vi skal se på i dette kursus, benytter man i stedet en værdi-orienteret programmeringsstil. Det vil sige at beregninger foregår ved at værdier analyseres og ny værdier skabes, frem for at individuelle bidder af hukommelsen modificeres.
Dette gør det nemmere at lave robuste programmer, og at vedligeholde dem, for de kan opdeles i separate komponenter med klart beskrevne funktionelle grænseflader.
Funktionelt design og programmering går således ud på udtrykke programmers virkemåde ved sammensætning af passende funktioner. Hver funktion har en veldefineret virkemåde: Den tager et argument, udfører en beregning og giver et resultat. Vægten er således lagt på hvad en funktion gør i modsætning til hvordan den gør det.
Kurset er baseret på funktionsprogrammeringssproget Standard ML. De to hovedemner i kurset er:
- Programming in the small. Hvordan kan et specifikt
problem løses ved at sammensætte simple funktioner.
- Programming in the large. Hvordan kan et stort system
opsplittes i programbiblioteker med funktionelt beskrevne grænseflader.
Kurset er naturlig efterfølger til Grundlæggende Programmering og er en god opvarmning til kurset Programmeringssprog: Fortolkere og oversættere.
Der stilles ugentlige opgaver, som består af både programmerings- og papir-og-blyant-opgaver. |