Software Engineering

Implementierung von Programmiersprachen (Praktikum)

Ziel die­ses Prak­ti­kums ist die Im­ple­men­tie­rung einer klei­nen Pro­gram­mier­spra­che. Dazu er­ar­bei­ten wir in der ers­ten Se­mest­er­hälf­te durch kon­kre­te Pro­gram­mier­auf­ga­ben ver­schie­de­ne re­le­van­te The­men, zum Bei­spiel syn­tak­ti­sche Prü­fung, Typ­prü­fung, Zwi­schen­stu­fen (ANF, SSA, CPS, …), Kon­troll­fluss, und so wei­ter. Jeder Teil­neh­mer muss min­des­tens ein­mal die Lö­sung einer Haus­auf­ga­be vor­stel­len. In der zwei­ten Se­mest­er­hälf­te wählt jeder Teil­neh­mer in Ab­spra­che mit dem Ver­an­stal­ter einen Teil einer exis­tie­ren­den oder selbst ent­wor­fe­nen Pro­gram­mier­spra­che aus und im­ple­men­tiert die­sen Teil.

Die Pro­gram­mier­auf­ga­ben in der ers­ten Se­mest­er­hälf­te müs­sen mit der Pro­gram­mier­spra­che Has­kell be­ar­bei­tet wer­den. Für das ab­schlie­ßen­de Pro­jekt kann auch eine an­de­re Pro­gram­mier­spra­che ge­wählt wer­den. Wir emp­feh­len Pro­gram­mier­spra­chen mit Un­ter­stüt­zung für al­ge­brai­sche Da­ten­ty­pen (z.B. Scala, Has­kell, Ra­cket, …).

Lern­zie­le

  • Stu­die­ren­de kön­nen eine ein­fa­che Pro­gram­mier­spra­che selbst­stän­dig im­ple­men­tie­ren.

  • Stu­die­ren­de ver­ste­hen wie die ein­zel­nen Kom­po­nen­ten der Im­ple­men­tie­rung einer Pro­gram­mier­spra­che zu­sam­men­wir­ken.

  • Stu­die­ren­de ver­knüp­fen ihr Wis­sen über die Aus­wahl und Ver­wen­dung von Pro­gram­mier­spra­chen mit Kennt­nis­sen über die Im­ple­men­tie­rung von Pro­gram­mier­spra­chen.

  • Stu­die­ren­de set­zen Me­tho­den der Soft­ware­tech­nik (Tes­ten, Bench­mar­king, Ver­si­ons­kon­trol­le, Code Re­view, …) ein.

Vor­aus­set­zun­gen

Ein vor­he­ri­ger oder par­al­le­ler Be­such der Vor­le­sung “Pro­gram­mier­spra­chen 1” ist hilf­reich aber nicht not­wen­dig.

Ter­min

Don­ners­tags, um 16:00 in A302.

An­mel­dung

Die An­mel­dung er­folgt per Email an Phil­ipp Schus­ter
Re­se­ar­cher
Phil­ipp Schus­ter
bis Don­ners­tag, den 31.10.2024 Ende des Tages.

Die Email muss ent­hal­ten: Email, Name, Ma­tri­kel­num­mer, Stu­di­en­gang, an­ge­streb­ter Ab­schluss.

Do­zen­ten