Foren » 30. BwInf

Erlaubte Sprachen

    • 5 Beiträge
    7. Oktober 2011 19:27:55 CEST

    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.

    • 6 Beiträge
    8. Oktober 2011 15:08:23 CEST

    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:

     

    • imperative Sprachen (mit oder ohne Objektorientierung; alle von Dir bisher genannten "erlaubten" Sprachen fallen in diese Kategorie; z.B. Java)
    • deklarative Sprachen:
    • 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

    • 5 Beiträge
    10. Oktober 2011 16:26:21 CEST
    Hallo Tobias, explizit ausgeschlossen wird nur Maschinencode, und es heißt, dass die "gängigen höheren Programmiersprachen" erlaubt sind. Daraus folgt, dass die niederen Programmiersprachen verboten sind. mir fiel da spontan nur Assembler ein. ich wollte hier zur hilfestellung eine Liste machen. ich persönlich behersche sowiso nur C (prozedural) und Grundlagen von Java (Objektorientiert) funktionale und logische Sprachen behersche ich keine, daher kommen sie für mich nicht in Frage. Aber danke für den link, ich werd ihn mir ansehen.