1.3 Programmiersprachen zum Lösen des Kommunikationsproblems Mensch – Maschine Formulierung von Algorithmen (verständliche Folge systematisch oder logisch ablaufender Arbeitsanweisungen) auf Computeranlagen zur Lösung von Aufgaben Codierung = Übertragung eines Programmablaufs in eine Programmiersprache 5 Generationen von Programmiersprachen Software-Engineering / Programmierung I Wellnitz 1.3 Programmiersprachen Programmiersprachen Maschinensprache (binär codiert) Symbolische Programmiersprachen (nicht binär codiert) problemorientierte („höhere“) Programmiersprachen Kaufmännisch orientierte Programmiersprachen maschinenorientierte („niedere“) Programmiersprachen Technisch orientierte Programmiersprachen Übersetzungsprogramme: Compiler / Interpreter Übersetzungsprogramme: Assembler Maschinensprache Software-Engineering / Programmierung I Wellnitz 1.3 Programmiersprachen 1. Generation (1GL): Maschinensprachen „unterste“ Ebene Folge von Einsen und Nullen für jeden Computertyp neu entwickelt schwer lesbar, unübersichtlich hoher Erstellungsaufwand nicht übertragbar zwischen verschiedenen Computersystemen Bsp.: 00110010 11001001 Software-Engineering / Programmierung I Wellnitz 1.3 Programmiersprachen 2. Generation (2GL): Assembler-Sprachen an bestimmte Computersysteme gebunden Erleichterungen durch Operationskürzel ADD = addieren, MOVE = transportieren Assembler = Übersetzungsprogramme Maschinensprache Programmierung von Systemprogrammen (Betriebssysteme) Bsp.: ADD Feld2, Feld1 Software-Engineering / Programmierung I Wellnitz 1.3 Programmiersprachen 3. Generation (3GL): Problemorientierte bzw. höhere Programmiersprachen unabhängig von einem Computersystem lediglich Übersetzer muss an jeweiliges System angepasst sein und entsprechenden Maschinencode erzeugen spezieller Befehlssatz (Syntax), um Probleme zu lösen nähern sich Denkweise des Programmierers an Software-Engineering / Programmierung I Wellnitz 1.3 Programmiersprachen 3. Generation (3GL): Problemorientierte bzw. höhere Programmiersprachen eher nachvollziehbar Bsp.: IF ... THEN .. ELSE WHILE(...) Beginners All purpose Symbolic Instruction Code BASIC FORmularTRANslation FORTRAN ALGOrithmic Language ALGOL COmmon Business Oriented Language COBOL Software-Engineering / Programmierung I Wellnitz 1.3 Programmiersprachen 3. Generation (3GL): Problemorientierte bzw. höhere Programmiersprachen PASCAL C/C++ Java 1GL - 3GL = prozedurale Programmiersprachen, da in Form einer Anweisungsabfolge (Prozedur) OOP = Object Oriented Programming Software-Engineering / Programmierung I Wellnitz 1.3 Programmiersprachen 4. Generation (4GL): nichtprozedurale Sprachen nicht mehr festgelegt, wie das Problem gelöst wird, sondern was das Programm leisten soll keine umfangreiche Programmierausbildung notwendig z.B. für Datenbankabfragen SQL, NATURAL Bsp.: CREATE Adressdatei SELECT FIELDS ... FROM ... Software-Engineering / Programmierung I Wellnitz 1.3 Programmiersprachen 5. Generation (5GL): Programmiersprachen der KI KI = künstliche Intelligenz Intelligenz des Menschen nachahmen für Forschungszwecke LISP, PROLOG, SMALLTALK Bsp.: Berechnung auswerten Fenster oeffnenZurEingabe Software-Engineering / Programmierung I Wellnitz