Historisch interessant und teilweise heute noch wichtig (etwa chronologisch):
LISP | (LISt Processing) für KI-Anwendungen |
FORTRAN | für Ingenieur-Anwendungen (viele Versionen) |
COBOL | für kaufmännische Anwendungen |
ALGOL | für wissenschaftliches Rechnen und zur Dokumentation; veraltet |
PL/I | von IBM; als Ersatz von FORTRAN und COBOL |
Assembler | maschinennahe Programmierung (viele Varianten) |
APL | erste interaktive Sprache; leider schwer lesbar |
SNOBOL | zur Textverarbeitung |
SETL | baut auf Mengenlehre auf |
PEARL | zur Steuerung von industriellen Prozessen |
CHILL | für Telefon-Vermittlungsanlagen |
Pascal | allgemeine Anwendungen; einfach, für Ausbildung gedacht und auch gut dafür geeignet |
Modula 2 | wie Pascal; getrennte Übersetzung von Programmteilen |
Modula 3 | eine objektorientierte Erweiterung von Modula 2 |
Oberon | eine andere objektorientierte Erweiterung von Modula 2 |
BASIC | primitiv; für "Laien" gedacht, fast unbrauchbar |
LOGO | einfacher Dialekt von LISP (für Grundschule) mit einfacher Grafik |
Scheme | Erweiterung von LISP für allgemeine Anwendungen |
C | ursprünglich für Betriebssysteme (UNIX) gedacht, aber auch sonst weit verbreitet |
SQL | zur Abfrage von relationalen Datenbanken |
QBE | Datenbankabfragen, formularbasiert |
Ada | allgemeine Anwendungen, komfortabel, für industriellen Einsatz |
Simula 67 | erste "objektorientierte Sprache" (1967!), leider kostenpflichtig |
Smalltalk | zweite objektorientierte Sprache, sehr flexibel |
C++ | objektorientierte Erweiterung von C; sehr verbreitet, aber etwas unsicher und daher riskant |
EIFFEL | objektorientiert; schön, aber kostenpflichtig |
JAVA | objektorientiert; maschinenunabhängig, für WWW-Anwendungen |
Prolog | logikbasiert; zur Wissensverarbeitung |
Perl | komfortable Sprache zur Textverarbeitung |
Einige der ersten Programmiersprachen, etwa LISP und ALGOL, wurden ursprünglich zur präzisen Dokumentation von Algorithmen entwickelt, die dann von Hand in eine maschinennahe Form für die gerade verfügbare Maschine übertragen wurden. Erst später kamen Übersetzer (Verfahren zur automatischen Umwandlung in direkt ausführbaren Code) dazu.
Die "beste" Programmiersprache gibt es nicht; aber wer einmal eine hinreichend mächtige Sprache kennengelernt hat, kann bei Bedarf schnell auf eine andere umsteigen. Dabei muß er sich oft nur an eine andere Notation gewöhnen; (deren Übersetzer hilft ihm dabei).
Diese Vorlesung verwendet Modula 2 zur Demonstration von Programmbeispielen.