Sprachen der Informatik
1. Natürliche, künstliche und formale Sprachen 2. Paradigmen, Konzepte und Sprachen
a) Grundlegende Programmierkonzepte
i. Semantische Grundbegriffe: Variable, Speicher, Umgebung
ii. Typsysteme und Datenstrukturen: primitive Datentypen, Literale, Werte und ihre Speicherung, Operatoren, Typkonstruktoren, Typäquivalenz, Typkompabilität, Typanpassungen
iii. Steuerung des Kontrollflusses
iv. Abstraktion: Programmeinheiten, Module, abstrakte Datentypen
v. Programmiersicherheit: Ausnahmebehandlung, Spezifikation und Verifikation, Testverfahren b) Klassische Programmierparadigmen und -sprachen, GPL (General Purpose Language)
i. Imperative Programmierung ii. Objektorientierte Programmierung iii. Funktionale Programmierung iv. Prädikative Programmierung
v. Hybride Paradigmen
vi. Prozedurales, deklaratives Paradigma c) Skriptsprachen
d) Typsysteme
e) Paradigmenübergreifende Konzepte (Auswahl) i. Generische Programmeinheiten
ii. Parallele und verteilte Programmierung iii. Ereignisbehandlung
iv. Annotationen
v. Programmierung randomisierter / nichtdeterministischer Algorithmen vi. Echtzeitprogrammierung
vii. Netzwerkprogrammierung
viii. Programmierung grafischer Oberflächen ix. Visuelle Programmierung
f) Spezielle Sprachklassen, DSL (Domain Specific Language) (Auswahl)
i. Markup- u. Seitenbeschreibungssprachen: TEX, HTML, XML, SGML, Postscript ii. Modellierungssprachen: UML
iii. Spezifikationssprachen u. Verifikationskalküle: Z, VDM-SL
iv. Symbolische Sprachen und Computeralgebrasysteme: Maple, Mathematica v. Datenbanksprachen: SQL
vi. Simulationssprachen: GPSS g) Prinzipien des Sprachentwurfs
Effizienz, Allgemeingültigkeit, Orthogonalität, Uniformität, Einfachheit, Ausdruckskraft, Genauigkeit, Maschinenunabhängigkeit, Sicherheit, Konsistenz mit Konventionen, Erweiterbarkeit, Einschränkbarkeit 3. Definition von Sprachen
a) Lexik: Schlüsselwörter, Bezeichner, . . . bilden die Lexeme einer Sprache b) Kontextfreie und andere Grammatiken zur Festlegung der Syntax
c) Semantik: Operationelle, denotationale, axiomatische, algebraische und andere Wege d) Pragmatik von Sprachen
4. Implementierung von Sprachen
a) Compiler, Interpreter, Mischverfahren b) Programmierwerkzeuge
c) Integrierte Entwicklungsumgebungen
(Werner Struckmann)