Utvärdering av ett programspråk
Uppgift
Denna laboration går ut på att bekanta sig med ett nytt och (förhoppningsvis) okänt programspråk samt att skriva en litet uppsats om det. Tanken är inte
att ni ska lära er programmera i spåket utan bara göra en beskrivning och en utvärdering av det (dock skulle det vara trevligt med ett litet
programexempel).
Språk
Nedan finns en tabell med vilka språk som ni kan välja att skriva om. Om ni absolut vill skriva om något annat språk så maila till någon av
handledarna och fråga om det är ok. Dock är de språk ni redan kan (C och Java) ej tillåtna att skriva om, tanken är att ni ska skriva om ett för er
okänt språk.
| Språk | Grupp 1 | Grupp 2 | Grupp 3 | Grupp 4 |
| Haskell |
| Prolog | sbn/msm |
| Pascal | mlg/rjn |
| Smalltalk | mog |
| Perl | ran |
| Fortran |
| Lisp | jbn/jva |
| Cobol | jfn/adg |
| Python | ebg/hen |
| Ruby | ekn |
Saker att ta upp
Här följer ett antal frågeställningar som är värda att fundera på:
- Hur är språket relaterat till andra kända språk? Är det ett nytt eller gammalt språk?
- Vilka typer finns? Kan man göra några ovanliga operationer på dem?
- Kan man konstruera sammansatta datatyper och vilka operationer kan utföras på dessa?
- Har språket någon explicit/implicit typomvandling, i så fall hur fungerar de?
- Stöder språket abstrakta datayper?
- Är språket starkt typat? Vilka typkontroller finns?
- Vilka konstruktioner finns för val och repetition?
- Finns det andra konstruktioner?
- Vilka typer av abstraktioner finns i språket?
- Vilka typer av parameteröverföring finns det i språket? Rättar sig språket efter motsvarighetsprincipen, om ej på
vilket sätt?
- Om några typer av värden inte kan vara argument till funktioner, analysera varför.
- Finns det felhantering och undantagshanterare?
- Finns det moduler i språket, beskriv i så fall dessa.
- Hur väl stöder språket utveckling av stora program?
- Finns hopp och pekare? Sidoeffekter och aliasing?
- Hur ser programstrukturen ut? Kan man separatkompilera delar?
- Finns filhantering? Hur fungerar den?
- Vilken evalueringsordning har språket och finns det konstruktioner som avviker från den?
- Vilken sorts tillämpningar är språket lämpligt respektive olämpligt för?
- Anser du att språket är ett väl designat språk? Motivera.
Övrigt
Uppsatsen ska vara på minst tre sidor (+en framsida), ta upp de flesta av punkterna ovan och vara välskriven. Handledarna kommer att titta på så väl
innehåll som stavning och upplägg. Tänk på att detta är en uppsats!
Det är tillåtet att jobba i grupper om två personer på denna lab.
Inlämningstid: 3 juni (23:59)