1.3 Geschichte der Programmiersprachen

Ähnliche Dokumente
III.1 Prinzipien der funktionalen Programmierung - 1 -

1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog. IV.1 Grundkonzepte der logischen Programmierung - 1 -

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

Geschichte der Programmiersprachen

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

2. JAVA-Programmierung. Informatik II für Verkehrsingenieure

Stichworte zur Ideengeschichte der Programmiersprachen

Paradigmen zur Algorithmenbeschreibung

2. Einführung. Informatik II für Verkehrsingenieure

Compiler. Die unsichtbaren Diener Der Compiler und seine Artgenossen. Laszlo Böszörmenyi Compiler 1/ 22

Programmiersprachen Pascal, Modula-2, Oberon. Charlotte Prieß

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Programmierung Paradigmen und Konzepte

10. Programmierungs-Phase: Objektorientierung Software Engineering

Inhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms.

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Prof. Dr. Jürgen Giesl Lehr- und Forschungsgebiet Informatik 2. Proseminar - 1 -

Softwaretechnik. Wesentliche Inhalte der Vorlesung

Programmiersprachen: Klassifizierung und Methoden. Programmier-Paradigmen. Grundlagen der Programmierung 2 (1.C) - 1 -

Ausblick: Entwurfsmuster (Design Pattern) 12.1 Entwurfsmuster (Design Pattern) 12.2 Programmierparadigmen und -sprachen und Veranstaltungen

ALGOL 68 im Aspekt einer modernen Programmiersprache???

SS / 16 schrittweise Verfeinerung -> Wirth, 1971, Programm Development by Stepwise Refinement

Historische Innovationen von Niklaus Wirth

Programmiersprachen und Programmierkonzepte

Einführung in die Programmiertechnik

Ein Streifzug durch die Programmiersprachenlandschaft in der Schule. Gerald Futschek TU Wien Informatiktag 2013

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Objektorientiertes Software-Engineering

Taschenbuch Programmiersprachen

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Vorlesung Programmieren

Vorlesung Programmieren. Programmiersprachen-Paradigmen. Programmierparadigmen. Eine Programmiersprache dient dem Aufschreiben von Algorithmen

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

Prof. Dr.-Ing. Dietrich Schröder GIS und Programmiersprachen: Wohin geht die Reise?

Semantik von Programmiersprachen

Java Schulung. Objektorientierte Programmierung in Java. Prof. Dr. Nikolaus Wulff

Java Schulung. Objektorientierte Programmierung in Java. Prof. Dr. Nikolaus Wulff

Grundlagen der Modellierung und Programmierung, Übung

Informatik-Ausbildung Basis: I-CH Modulbaukasten R3 I-CH-M103-CC. Autoren: Ulrike Böttcher, Christian Münster

Handbuch Programmiersprachen

vii 4 t.scheme: Funktionale Programmierung Funktionen als Daten erster Klasse

Einführung in die Programmierung

Programmiersprachen Proseminar

Einführung in die Programmierung

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Übung - Modellierung & Programmierung II

Einführung in die Programmierung Wintersemester 2016/17

Programmieren in Haskell Einführung

Algorithmen und Datenstrukturen"

FORTRAN77. eine höllische Programmiersprache. Christian Sternecker. Sommersemester TU-München

Grundlagen der Programmierung UE

Inhalt. Einführung in die Strukturierte Programmierung 15

2. Programmierung in C

Sprachen und Programmiersprachen

ALP I Geschichtliche Einführung in die Programmiersprachen

Einführung in die Funktionale Programmierung

Es gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus.

12. Rekursion Grundlagen der Programmierung 1 (Java)

Von der Chomsky-Hierarchie

Objekt-Funktionale Programmierung. am Beispiel von SCALA. Thorsten Jolitz

Grundlagen der Programmierung UE

Transkript:

50er Jahre erste Definition höherer Programmiersprachen Effizienz maßgebliches Designziel FORTRAN (Backus) als Sprache für wissenschaftliches Rechnen (komplexe Berechnungen, einfachen Daten), Arrays, Schleifen, IF-THEN-ELSE COBOL als Sprache für Business-Anwendungen (einfache Berechnungen, große Datenmengen) Records, Trennung von Datenstrukur/Ausführung, Ausgabeformatierung ALGOL (Naur, Backus) Vorläufer aller imperativer Sprachen Blockstruktur, Rekursion, Wertparameter, Typdeklaration bei Variablen Nachweis der technischen Machbarkeit und des Nutzens höherer Sprachen Neu: Modularisierung durch Unterprogrammtechnik, Zugriff auf globale Daten durch Umgebung (FORTRAN), Blockstruktur (ALGOL 60), Files (COBOL) FORTRAN(90) und COBOL noch immer sehr verbreitet! F1

Frühe 60er Jahre erste Versuche mit nicht-imperativen Sprachen LISP (McCarthy) basiert auf Theorie rekursiver Funktionen, erste funktionale Programmiersprache APL für Vektor- und Matrixmultiplikationen SNOBOL4 (Griswold) gestattet Stringmanipulationen und Pattern Matching, Unterstützung für deklaratives Programmieren Diese Sprachen erfordern komplexe dynamische Ressourcenverwaltung, erfolgreich in spezifischen Anwendungen Erkennen der Bedeutung von Symbolmanipulation F2

Späte 60er Jahre PL/I Versuch von IBM erfolgreiche Sprachkonstrukte zu vereinen Module, Blöcke, dynamische Datenstrukturen Neu: Exception Handling, Multitasking Nachteile: Mangel an Uniformität, unausgereifte Teile, langsam ALGOL 68 Nachfolger von ALGOL 60 Orthogonalitätsprinzip (vollständige Integration von Sprachkomponenten) erste Sprache mit formaler Spezifikation, kaum populär, wenig nutzerfreundlich SIMULA 67 (Nygaard, Dahl) erste Sprache mit Klassenkonzept Hierarchien zur Strukturierung von Daten und Prozeduren beeinflusste alle modernen Sprachen BASIC (Kemeny, Kurtz, Beginners All-Purpose Instruction Code) keine neuen Konstrukte, beliebt wegen Einfachheit und Effizienz, interaktiver Programmierstil Pascal (Wirth) dient dem Erlernen strukturierter Programmierung Verfügbarkeit auf PCs und Einfachheit erzeugten großen Erfolg F3

70er Jahre Fokus auf Zuverlässigkeit und Wartbarkeit abstrakte Datentypen, Module, Typisierung, Korrektheitsbeweise, Exceptions CLU Datenabstraktion durch Cluster-Mechanismus Mesa Pascal-Erweiterung um Module Concurrent Pascal, Euclid Pascal-Fortentwicklung mit abstrakten Datentypen C (Ritchie) große Mächtigkeit, Effizienz für Systemprogrammierung, Verfügbarkeit auf vielen Plattformen noch immer eine der am meisten verwendeten Sprachen! Scheme heute weit verbreiteter LISP-Dialekt PROLOG (Colmerauer, Marseille) erste logikorientierte Programmiersprache Heute in KI und Wissensverarbeitung verbreitet F4

80er Jahre Modula-2 (Wirth) spezifische Konstrukte für modulares Programmieren Weiterentwicklungen bei funktionalen Sprachen: Scheme (Sussmann, Steele, MIT) Miranda (Turner) ML (Milner) Typüberprüfung Ada (Pentagon) Sprache für Militärzwecke State-of-the-art moderner Programmiersprachen, Packages, Tasks, Exceptions (Ada 95 Erweiterung um objektorientierte Konzepte) Common Lisp Standard für Lisp mit vielen Erweiterungen Durchbruch der objektorientierten Sprachen: Smalltalk (Kay, Ingalls, Xerox Parc) C++ (Stroustrup) Erweiterung von C um Objektorientierung Eiffel (Meyer) objektorientiert Modula-3, Oberon (Wirth) Pascal-Tradition F5

90er Jahre Erkenntnis: Es gibt nicht DIE Programmiersprache Sprachen der 4. Generation: Anwendungsgeneratoren, fensterbasierte Programmieroberflächen, Spezialsprachen für Datenbanken (SQL) Wachsende Bedeutung von C++ Netzorientiertes Programmieren, Code-Mobilität durch Java Sprachgenerationen: 1. Assembler 2. unstrukturierte Hochsprachen 3. Prozedurale Sprachen (Pascal, C) 4. einfache Spezialsprachen 5. Deklarative Sprachen (Prolog, funktionale Sprachen) F6

seit 2000 Stärkere Nutzung von Java C# - Microsoftvariante eines objektorientierten C, Java-Ähnlichkeit aktuell : Neue Systeme vorwiegend in C++, C, Java, C# aber Pflege vieler Cobol und Fortran-Systeme F7