Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

Ähnliche Präsentationen


Präsentation zum Thema: "Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar."—  Präsentation transkript:

1 Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar 2001

2 © G. Noll Sprache Eine Sprache besteht aus der Gesamtheit aller möglichen Aussagen und deren Bedeutungen Eine Sprache besteht aus der Gesamtheit aller möglichen Aussagen und deren Bedeutungen SyntaxRegeln zum formalen Aufbau der Sätze SyntaxRegeln zum formalen Aufbau der Sätze SemantikRegeln über die Bedeutung der Sätze SemantikRegeln über die Bedeutung der Sätze Dieser Satz hat vier Wörter. syntaktisch korrekt - semantisch falsch x:=y syntaktisch korrekte Zuweisung, aber semantisch nur korrekt, wenn x und y vom gleichen Datentyp sind

3 © G. Noll Programmiersprachen Computerunterstützte Problemlösungen basieren auf Algorithmen Computerunterstützte Problemlösungen basieren auf Algorithmen Algorithmen stellen den Zusammenhang zwischen Ein- und Ausgabedaten dar und sind Algorithmen stellen den Zusammenhang zwischen Ein- und Ausgabedaten dar und sind eindeutig und ausführbar sowie eindeutig und ausführbar sowie endlich bezüglich Ausführungzeit und Beschreibung endlich bezüglich Ausführungzeit und Beschreibung Das Problem der Übertragung von Algorithmen auf Maschinen führte zur Entwicklung von Programmiersprachen Das Problem der Übertragung von Algorithmen auf Maschinen führte zur Entwicklung von Programmiersprachen

4 © G. Noll Frühe Programmiersprachen Schickard (1623), Leibniz (1679) und Babbage (1837) befassten sich bereits mit den Möglichkeiten einer Programmierung Schickard (1623), Leibniz (1679) und Babbage (1837) befassten sich bereits mit den Möglichkeiten einer Programmierung Turing (1936) beschrieb eine theoretische Maschine mit zugehöriger Steuerungssprache Turing (1936) beschrieb eine theoretische Maschine mit zugehöriger Steuerungssprache Zuse (1938) entwickelte ein sog. Plankalkül mit wesentlichen Elementen moderner Programmiersprachen Zuse (1938) entwickelte ein sog. Plankalkül mit wesentlichen Elementen moderner Programmiersprachen

5 © G. Noll Maschinensprachen Programmiersprachen 1. Generation (1GL) Programmiersprachen 1. Generation (1GL) alle Befehle direkt in der Sprache der CPU alle Befehle direkt in der Sprache der CPU das Programm ist eine Folge aus 0 und 1 das Programm ist eine Folge aus 0 und 1 bei fester Wortlänge enthält ein Befehl einen bei fester Wortlänge enthält ein Befehl einen Operationsteil und einen Operationsteil und einen Adressteil Adressteil bessere Lesbarkeit durch Hexadezimalsystem bessere Lesbarkeit durch Hexadezimalsystem

6 © G. Noll Assemblersprachen Programmiersprachen 2. Generation (2GL) Programmiersprachen 2. Generation (2GL) für Operationskodes werden kurze Abkürzungen, die Mnemoniks eingeführt für Operationskodes werden kurze Abkürzungen, die Mnemoniks eingeführt LDAlade den Akkumulator ADDAddition ein Assembler als Übersetzer wird notwendig ein Assembler als Übersetzer wird notwendig weitere Flexibilität durch symbolische Adressen, die eine Verschiebung von Programmteilen im Speicher erleichtern weitere Flexibilität durch symbolische Adressen, die eine Verschiebung von Programmteilen im Speicher erleichtern

7 © G. Noll Sprachen der 3. Generation ein Mnemonik beschreibt mehr als einen Maschinenbefehl ein Mnemonik beschreibt mehr als einen Maschinenbefehl Verwendung besser lesbarer Schlüsselwörter Verwendung besser lesbarer Schlüsselwörter while not eof(f) do read(f,datensatz) end; typische Sprachen typische Sprachen FORmular TRANslating system 1954 FORmular TRANslating system 1954 COmmon Business Oriented Language 1959 COmmon Business Oriented Language 1959 Beginners All purpose Symbolic Instruction Code 1962 Beginners All purpose Symbolic Instruction Code 1962

8 © G. Noll Softwarekrise Mitte der 60er Jahre erkennt man die Notwendigkeit bei Software auf Korrektheit, Zuverlässigkeit, Benutzerfreundlichkeit, Wartungsfreundlichkeit, Effizienz und Portabilität zu achten Mitte der 60er Jahre erkennt man die Notwendigkeit bei Software auf Korrektheit, Zuverlässigkeit, Benutzerfreundlichkeit, Wartungsfreundlichkeit, Effizienz und Portabilität zu achten Konsequenz: Entwicklung von blockorientierten Sprachen, die diese Qualitätskriterien unterstützen Konsequenz: Entwicklung von blockorientierten Sprachen, die diese Qualitätskriterien unterstützen Blöcke sind kleinere Programmeinheiten, die für sich alleine verifizierbar sind Blöcke sind kleinere Programmeinheiten, die für sich alleine verifizierbar sind ALGOrithmic Language 1960 (Hoare, Wirth) ALGOrithmic Language 1960 (Hoare, Wirth)

9 © G. Noll Merkmale von ALGOL Blockstruktur Blockstruktur strenge Deklarationspflicht strenge Deklarationspflicht Gültigkeitsbereiche von Variablen Gültigkeitsbereiche von Variablen zwei Arten der Parameterübergabe zwei Arten der Parameterübergabe rekursive Prozeduren rekursive Prozeduren formatfreie Syntax formatfreie Syntax Muttersprache der ALGOL-Familie Muttersprache der ALGOL-Familie Pascal Modula Oberon Pascal Modula Oberon ALGOL68 Ada C ALGOL68 Ada C

10 © G. Noll Modulkonzept Sammlung von Datenstrukturen und Zugriffsoperationen in Bausteinen mit Sammlung von Datenstrukturen und Zugriffsoperationen in Bausteinen mit Datenabstraktion und Information-Hiding Datenabstraktion und Information-Hiding getrennten Definitions- und Implementationsteilen getrennten Definitions- und Implementationsteilen strenger Schnittstellenüberwachung bereits zur Übersetzungszeit strenger Schnittstellenüberwachung bereits zur Übersetzungszeit der Möglichkeit parallele Prozesse zu programmieren der Möglichkeit parallele Prozesse zu programmieren Das Modulkonzept unterstützt die strukturierte Programmierung im Software-Engineering Das Modulkonzept unterstützt die strukturierte Programmierung im Software-Engineering

11 © G. Noll Systemprogrammierung Für die Programmierung von Betriebsystemen sind Sprachen wie Pascal nicht besonders geeignet, da sie hardwarenahe Zugriffe abschirmen (virtuelle Maschine) Für die Programmierung von Betriebsystemen sind Sprachen wie Pascal nicht besonders geeignet, da sie hardwarenahe Zugriffe abschirmen (virtuelle Maschine) Im Zusammenhang mit der Entwicklung von UNIX entstand die Sprache C, in der eine assemblerähnliche Programmierung möglich ist, ohne auf die Vorteile einer höheren Programmiersprache verzichten zu müssen Im Zusammenhang mit der Entwicklung von UNIX entstand die Sprache C, in der eine assemblerähnliche Programmierung möglich ist, ohne auf die Vorteile einer höheren Programmiersprache verzichten zu müssen

12 © G. Noll C geringer Sprachumfang geringer Sprachumfang beliebig ineinander konvertierbare Datentypen beliebig ineinander konvertierbare Datentypen übliche Kontrollstrukturen übliche Kontrollstrukturen Unterstützung von Nebeneffekten für eine kompakte Formulierung und effiziente Kodierung. Deshalb oft unverständlich: Unterstützung von Nebeneffekten für eine kompakte Formulierung und effiziente Kodierung. Deshalb oft unverständlich: while(*ziel++ = *quelle++) ; while(*ziel++ = *quelle++) ; Zahlen aus quelle ins ziel schieben bis 0 auftritt

13 © G. Noll Sprachen der 4. Generation Schlüsselworte beschreiben komplexe Vorgänge Schlüsselworte beschreiben komplexe Vorgänge readeach lese alle vorhandenen Datensätze readeach lese alle vorhandenen Datensätze oft Bestandteil einer Software-Produktions- Umgebung oder eines CASE-Tools oft Bestandteil einer Software-Produktions- Umgebung oder eines CASE-Tools vielfach herstellerabhängig vielfach herstellerabhängig typische Sprachen typische Sprachen SQL und R/3 (SAP) SQL und R/3 (SAP)

14 © G. Noll Sprachen der KI LISt Prozessing language LISt Prozessing language bereits 1959 entwickelt, noch heute im Gebrauch bereits 1959 entwickelt, noch heute im Gebrauch Prototyp einer funktionalen Sprache Prototyp einer funktionalen Sprache besonders geeignet zur Symbolverarbeitung besonders geeignet zur Symbolverarbeitung das CAS-Systeme Derive ist in einer auf LISP basierenden Sprache (muLISP) geschrieben das CAS-Systeme Derive ist in einer auf LISP basierenden Sprache (muLISP) geschrieben Logo Logo um 1970 von Pappert aus LISP entwickelt um 1970 von Pappert aus LISP entwickelt enthält Kontrollsstrukturen enthält Kontrollsstrukturen Turtle-Graphik Turtle-Graphik PROgramming in LOGic PROgramming in LOGic Edinburgh um 1970 Edinburgh um 1970

15 © G. Noll Sprachparadigmen Den Programmiersprachen liegen bestimmte Konzepte oder Denkschemata zu Grunde, nach denen man sie in Sprachparadigmen einordnet: Den Programmiersprachen liegen bestimmte Konzepte oder Denkschemata zu Grunde, nach denen man sie in Sprachparadigmen einordnet: imperative Sprachen imperative Sprachen funktionale Sprachen funktionale Sprachen prädikative Sprachen prädikative Sprachen objektorientierte Sprachen objektorientierte Sprachen

16 © G. Noll Imperative Sprachen Programme bestehen aus Befehlssequenzen (imperare = befehlen) Programme bestehen aus Befehlssequenzen (imperare = befehlen) Der Programmentwurf orientiert sich an der Arbeitsweise einer hypothetischen Maschine Der Programmentwurf orientiert sich an der Arbeitsweise einer hypothetischen Maschine Das Variablenkonzept orientiert sich an Operationen auf Speicherzellen Das Variablenkonzept orientiert sich an Operationen auf Speicherzellen typische Sprachen typische Sprachen FORTRAN – ALGOL – BASIC – Pascal – C – Ada FORTRAN – ALGOL – BASIC – Pascal – C – Ada

17 © G. Noll Funktionale Sprachen Problemrelevante Abhängigkeiten zwischen einer gegebenen Ausgangssituation und einer gewünsch- ten Endsituation werden mit Hilfe von Funktionen erfasst Problemrelevante Abhängigkeiten zwischen einer gegebenen Ausgangssituation und einer gewünsch- ten Endsituation werden mit Hilfe von Funktionen erfasst Ein funktionales Programm besteht aus Funktions- definitionen und relevanten Funktionsaufrufen Ein funktionales Programm besteht aus Funktions- definitionen und relevanten Funktionsaufrufen typische Sprachen typische Sprachen LISP – Logo – APL – CAML LISP – Logo – APL – CAML AG-Material: Funktionale Programmierung informatikag.bildung-rp.de AG-Material: Funktionale Programmierung informatikag.bildung-rp.de informatikag.bildung-rp.de

18 © G. Noll Prädikative Sprachen Programmierung wird als Beweisen in einem System von Tatsachen und Schlussfolgerungen angesehen Programmierung wird als Beweisen in einem System von Tatsachen und Schlussfolgerungen angesehen Es wir spezifiziert, was die Maschine tun soll, aber nicht, wie sie dies tun soll: deklaratives statt prozedurales Programmieren Es wir spezifiziert, was die Maschine tun soll, aber nicht, wie sie dies tun soll: deklaratives statt prozedurales Programmieren typische Sprachen typische Sprachen PROLOG – Trilogy – CLP PROLOG – Trilogy – CLP AG-Material: Wissenverarbeitung mit PROLOG informatikag.bildung-rp.de AG-Material: Wissenverarbeitung mit PROLOG informatikag.bildung-rp.de informatikag.bildung-rp.de

19 © G. Noll Objektorientierte Sprachen Daten, Anweisungen und Regeln werden als Objekte angesehen und als solche geeignet zusammengefasst. Daten, Anweisungen und Regeln werden als Objekte angesehen und als solche geeignet zusammengefasst. Objekte Objekte tauschen Informationen über Nachrichten aus tauschen Informationen über Nachrichten aus können auf Nachrichten mit verschiedenen Methoden reagieren können auf Nachrichten mit verschiedenen Methoden reagieren können dem Sender mit einem anderen Objekt antworten können dem Sender mit einem anderen Objekt antworten erben Fähigkeiten durch Zugehörigkeit zu einer Objektklasse erben Fähigkeiten durch Zugehörigkeit zu einer Objektklasse Klassenhierarchien erlauben Klassenhierarchien erlauben eine bequeme Behandlung von Sonderfällen eine bequeme Behandlung von Sonderfällen eine weitgehende Wiederverwendbarkeit von Programmkode eine weitgehende Wiederverwendbarkeit von Programmkode typische Sprachen typische Sprachen SIMULA – Smalltalk – C ++ – Delphi – Java SIMULA – Smalltalk – C ++ – Delphi – Java

20 © G. Noll Literatur Ludewig, J. Ludewig, J. Sprachen für die Programmierung BI Mannheim, 1985 Claus,V. – Schwill, A. Claus,V. – Schwill, A. Schülerduden Die Informatik BI Mannheim, 1986 Schalowski, R. Schalowski, R.Programmiersprachen Deutsche Telekom, Unterrichtblätter, 52/1999 S

21 © G. Noll Unterrichtsmaterial Drumm, H. – Stimm, H. Drumm, H. – Stimm, H. Wissensverarbeitung mit PROLOG Handreichung zum Lehrplan Informatik LMZ Koblenz, 1995 Becker, K. Becker, K. Funktionale Programmierung Materialien zum Lehrplan Informatik LMZ Koblenz, 1999 Noll, G. Noll, G. Einführung in PROLOG Referat zum Weiterbildungslehrgang Informatik IFB Speyer, 2001


Herunterladen ppt "Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar."

Ähnliche Präsentationen


Google-Anzeigen