Entwicklung der Programmiersprachen Entwicklung der Programmiersprachen 010010100 101001010 010010100 101001001 010010100 Entwicklung der Programmiersprachen Was ist eine Programmiersprache? Unter einer Programmiersprache versteht man nach DIN 44300, Teil 4, eine zum Abfassen (Formulieren) von Computerprogrammen geschaffene Sprache. Ein Programm ist eine von einem Computer interpretierbare vollständige Arbeitsanweisung zur Lösung einer Aufgabe. Entwicklung der Programmiersprachen Maschinensprachen (Sprachen der 1. Generation) Die Maschinensprachen (engl.: Machine Languiage; Object language), bei denen jeder Befehl nur aus einer Folge der Binarzeichen O und 1 besteht, entsprechen in ihrer Struktur der jeweiligen Maschinenlogik z. B. 00011010 0011 0100 Befehl „Addiere“, Operanden 3 4 Entwicklung der Programmiersprachen Assemblersprachen (Sprachen der 2. Generation) Eine Sprache, die den Aufbau der Befehle der Maschinensprache beibehält, die Instruktionsteile jedoch nicht binär (0-1) verschlüsselt, sondern durch eine Symbolik ausdrückt, wird Assembler (engl.: assembler) genannt. Entwicklung der Programmiersprachen Assemblersprachen (Sprachen der 2. Generation) Assemblersprachen sind abhängig vom jeweiligen Prozessortyp, da jeder Prozessor seine eigene Assemblerbefehlssatz besitzt. Maschinensprachen und Assembler bilden zusammen die maschinenorientierten Sprachen z. B. ADD 3, 4 symbolische Abkürzung für Operation „Addiere“ Operanden 3 4 Entwicklung der Programmiersprachen Prozedurale Sprachen (Sprachen der 3. Generation) Unter prozeduralen Programmiersprachen (engl.: proceural programming language) versteht man maschinenunabhängige Programmiersprachen, bei denen sich die Programme an der traditionellen von-Neumann-Rechnerarchitektur (EingabeVerarbeitung-Ausgabe) orientieren. Zur Problemlösung werden Algorithmen formuliert, d. h. es wird eine Abfolge von Operationen, die jeweils Daten bearbeiten, definiert. z. B. SUMME = 3 + 4 Entwicklung der Programmiersprachen Sprachen der 4. Generation Programmsysteme, die die Effizienz der Anwendungsentwicklung durch das DV-Personal erhöhen sollen, so genannte Programmiersprachen der 4. Generation (engl.: 4th generation programming language; Abkürzung 4GL) Beispiel hierfür sind Makrosprachen: Es handelt sich um fertige Anwendungsprogramme, die es dem Benutzer ermöglichen spezielle Probleme zu lösen. Entwicklung der Programmiersprachen Sprachen der 4. Generation Die meisten Programm-Pakete wie MS-Office verfügen über eine eigene Makrosprache wie Visual Basic for Application. Damit können Funktionen innerhalb eines Programmes automatisiert werden. Unser Beispiel (VBA-Excel): bzw.: bzw.: [C5] = 3 + 4 Range(„C5“) = 3 + 4 Cells(5,3) = 3 + 4 Z. B. Datenbanksysteme lassen sich mit der Datenbankabfragesprache SQL (Structured Query Language) den Anwenderbedürfnissen anpassen. Entwicklung der Programmiersprachen Sprachen der 5. Generation Sprachen zur Wissensverarbeitung. Mit neuartigen Lösungsverfahren werden aufgrund von Tatsachen und Regeln neue Schlüsse gezogen. Die geistigen Fähigkeiten des Menschen werden simuliert. Der Einsatz erfolgt im Bereich Künstliche Intelligenz und Expertensysteme. (Spracherkennung, Schrifterkennung, Qualitätskontrolle, Regelungstechnik, Diagnose, Robotik) Entwicklung der Programmiersprachen Übersetzungsprogramme Wandeln die in der Sprachregel einer Programmiersprache geschriebenen Anweisungen (Quellenprogramm oder Source Code) in die Maschinensprache (0/1 oder Objekt Code) um. 00011010 0011 0100 Ce Fünf ist drei plus vier Entwicklung der Programmiersprachen Das Prinzip der Übersetzungsprogramme Interpreter: übersetzt den Code Zeile um Zeile. Durch das Interpretieren wird ein formuliertes Programm kontinuierlich während der gesamten Ausführung in die Maschinensprache übersetzt. Compiler: übersetzt den Code als Ganzes. Durch die Kompilierung entsteht ein so genannter Objektcode, der nur noch mit den entsprechenden Bibliotheken verbunden werden muss. Entwicklung der Programmiersprachen Das Prinzip der Übersetzungsprogramme Da moderne Compiler, die Vorzüge beider Übersetzungsprogramme vereinen, werden Interpreter heute nur noch selten eingesetzt. VB/VBA ist eine Compilersprache, nach jedem Programmschritt (Return) wird das gesamte Programm kompiliert, so dass Fehler zunächst korrigiert werden müssen. Entwicklung der Programmiersprachen Beispiel Übersetzung Maschinensprache Assembler z. B. VBA 0000 0001 0000 0001 ... 0010 0010 0010 0100 0011 0001 CON 5 STR R1 CON 8 STR R2 ... LD R2 LD R1 LD R1 MUL ADD STR R0 [C4]=5 [C5]=8 … 0101 0001 1000 0010 0010 0001 0001 0000 0000 0000 Assembler [C6]=[C4]*[C4]+[C5] Compiler / Interpreter Entwicklung der Programmiersprachen Entwicklung der Programmiersprachen Danke für Ihre Aufmerksamkeit