Ich habe eine etwas merkwürdige Frage. Ich bin gerade dabei, ein Buch über das Erlernen des Programmierens mit formalen Methoden zu schreiben, und ich werde es auf Leute mit einiger Programmiererfahrung ausrichten. Die Idee ist, ihnen beizubringen, hochwertige Programmierer zu werden.
Die grundlegende Notation wird von Dijkstra's Disziplin der Programmierung zusammen mit einigen Erweiterungen für Gleichzeitigkeit und Kommunikation.
Anders als bei der EWD möchte ich, dass meine Schüler letztendlich tatsächlich ausführbare Programme schreiben. Das bedeutet, dass sie irgendwann von der EWD-Notation in eine andere Sprache übersetzen müssen. Als ich mit dem formalen Programmieren anfing, habe ich C ins Auge gefasst, aber das bedeutet, dass man viel Klempnerarbeit leisten muss, und außerdem gibt es all die Komplexität bei der Behandlung von Zeigern usw. Ruby ist ein offensichtliches mögliches Ziel, ebenso wie Scheme oder Lisp. Aber es gibt auch die verschiedenen Funktionssprachen; da ich mich besonders für Gleichzeitigkeit interessiere, scheint Erlang eine Möglichkeit zu sein.
Nun zu meiner Frage: Welche Sprache(n) sollte(n) ich meinen Lesern beibringen, damit sie ihre formell entwickelten Programme gezielt einsetzen können?
1 Stimmen
Das klingt nach einem wirklich interessanten Buch!
0 Stimmen
Danke, ich werde Kapitel zum Kommentieren einstellen, wahrscheinlich verlinkt von chasrmartin.com. Wenn ich Kapitel habe.
2 Stimmen
"Alles Gute" für Ihr Buch Marty, ich habe gerade gesucht und die Bedeutung von "formalen Methoden" gefunden.