- left
- right
- up
- down
Ich hab mir gedacht, wir könnten mal sammeln, welche Sprachen erlaubt, und welche verboten sind, weil der übergang zu Hochsprachen ja teilweise fließend ist. Ich fange Mal an, mit denen, von den ich anhand des Aufgabenblatts, http://bwinf-tipps.de/ und der anderen Posts im Forum ausgehe:
Verboten: Maschinencode; Assembler;
Erlaubt: Java; Pascal; Delphi; C#; VB.NET; PHP; Python; Javascript; C;
Ergänzt ruhig fröhlich drauf los und korrigiert mich wenn nötig.
Hallo Matthias,
die Frage, die Du aufwirfst, ist in der Tat interessant und sicherlich einen Kommentar wert. (Danke für die Idee; wir werden sie in eine zukünftige Version von bwinf-tipps.de aufnehmen.)
Die Frage danach, welche Sprachen tatsächlich erlaubt oder verboten sind, stellt sich meiner Meinung nach nur bedingt: Zur Lösung einer Aufgabe sollte man immer diejenige Sprache einsetzen, die man ausreichend beherrscht und die sich am besten zur Lösung dieser Aufgabe eignet.
Der BWINF schließt Maschinencode und Assembler explizit aus, da diese in Bezug auf Verständlichkeit und Prägnanz - auch mit Kommentaren - sicher in unteren Ligen spielen; da die Aufgaben beim BWINF auch, um nicht zu sagen primär, daraus bestehen, die eigene Lösungsidee mit Dokumentation und Programmcode dem Leser zu vermittelbar zu machen, eignen diese zwei Sprachen sich also nicht.
Meiner Meinung nach empfiehlt es sich, bei der Untersuchung der Frage nach der besten Eignung zur Lösung zumindest folgende Klassen von Sprachen (bzw. jeweils einen Vertreter von ihnen) zu untersuchen:
- funktionale (z.B. Haskell oder LISP/Scheme),
- logische (z.B. Prolog)
Gerade die deklarativen Sprachen sind den Teilnehmern des BWINF häufig unbekannt oder nicht so geläufig, sodaß sie gar nicht erst in Betrachtung gezogen werden. Das ist sehr schade, da es gelegentlich Aufgaben gibt, die mit ihnen wesentlich kürzer und eleganter zu lösen wären. (Mehr Vertreter für diese Sprachen sind auf http://de.wikipedia.org/wiki/Deklarative_Programmierung erwähnt. Als Einstieg würde ich empfehlen, sich zunächst auf eine der gerade als Beispiel genannten Sprachen zu konzentrieren.)
Es lohnt sich, die Wahl der Programmiersprache sowie die Gründe dafür kurz zu dokumentieren, da das meistens ein erstes Verständnis für die Art der Aufgabe zeigt.
Viele Grüße, Tobias