20
Prof. Dr. Volker Blanz Fachgruppe Medieninformatik Algorithmen und Datenstrukturen Version: WS 14/15 Prof. Dr. Volker Blanz Lehrstuhl für Medieninformatik Universität Siegen – Fakultät IV Algorithmen und Datenstrukturen 5 Einführung in Programmiersprachen 5.1

Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik" Algorithmen und Datenstrukturen  

Version:  WS  14/15  

Prof. Dr. Volker BlanzLehrstuhl für Medieninformatik

Universität Siegen – Fakultät IV"

Algorithmen und Datenstrukturen"

5  Einführung  in  Programmiersprachen  

5.1  

Page 2: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5 Einführung in Programmiersprachen ...

Motivation: Ziele dieses Abschnittes"!

❍ Unterschiedliche Typen von Programmiersprachen:""

❑ imperativ-prozedurale Programmiersprachen""

❑ objekt-orientierte Programmiersprachen""

❑ deklarative Programmiersprachen"""

❍ Überblick über Programmierumgebungen""

!!Literatur: Begrifferklärungen in [Claus], sowie"!

❍ [Ernst] Teile des Kap. 7""

❍ [Gumm] Teile des Abschnitts 2.1""

❍ [Herold] Abschnitt 7.2 und 7.3""

❍ Watt, D.A.: Programmiersprachen - Konzepte und Paradigmen, Hanser, 1996"

5.2  

Page 3: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.1 Begriffe

Programm: Realisierung eines Algorithmus"!

"❍ wird automatisch von einem Prozessor (CPU) ausgeführt""

"❍ konkreter und detaillierter als ein in Worten formulierter Algorithmus""

"❍ genügt einer Syntax, also den Regeln einer (formalen) Programmiersprache""

Programmieren: Erstellung eines Programms""3 Ebenen:"!

Maschinensprache: Formulierung eines Maschinenprogramms als Folge"!

"von elementaren Befehlen (Binär-Code)""

Lowlevel-Programmiersprachen: Maschinennahe Befehle, hardwareorientiert"!

"Beispiel: Verschiedene Varianten von Assembler-Sprachen""

Highlevel-Programmiersprachen: Komplexe Befehle, problem-orientiert,"!

"Abstraktion/Unabhängigkeit von Hardware-Merkmalen""

"❍ Highlevel-Programme werden in Maschinensprache übersetzt""

" von einem Compiler oder Interpreter"

5.3  

Page 4: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.2 Anwendungsgebiete

Anforderungen an eine Programmiersprache:""

•  Es sollte leicht sein, einen Compiler zu schreiben. " Die Syntax sollte vom Parser (erster Stufe des Compilers) leicht zu lesen sein."

•  historische Entwicklung von sehr einfachen zu immer leistungsfähigeren Sprachen"

•  Die Programmiersprache sollte effizienten (schnellen) Maschinencode erzeugen." Darauf muss der Programmierer gegebenenfalls Einfluss haben."

•  Struktur des zu lösenden Problems sollte in die Programmiersprache gut abbildbar sein." Daher haben sich je nach Anwendungsgebiet verschiedene Sprachen durchgesetzt."

•  Der Prozess der Softwareentwicklung sollte möglichst gut unterstützt werden."•  Mechanismen, um Fehler nicht erst aufkommen zu lassen"•  Gute Strukturierung großer Softwareprojekte"•  Schnittstellen zwischen Teilen, vor allem wenn viele Entwickler(-Firmen) beteiligt sind."

5.4  

Page 5: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.2 Anwendungsgebiete

Unterschiedliche Anwendungsgebiete führen zu unterschiedlichen Sprachen, z.B.:""

"❍ Büro-Anwendungen " " " " " " "(C++, C#, . . .)""

"❍ Web-Anwendungen " " " " (Java, Perl, PHP, Python, . . .)""

"❍ Wissenschaftlich- technische Anwendungen (C,C++, Fortran, . . .)""

"❍ Datenbank-Anwendungen " " " " (PHP, SQL, . . .)""

"❍ Graphik-Anwendungen " " (C++, Assembler, Nvidia Cg, . . .)""

"❍ Server-Anwendungen/Unternehmenssoftware " " (C/C++, . . .)""

"❍ Eingebettete Systeme " " " " " " (VHDL, . . .)""

"❍ Kaufmännische Systeme " " " " " " (Cobol, . . .)""

Visuelle Sprachen (Diagrammsprachen) als Hilfsmittel für den Design-""

"Prozess unter Nutzung graphischer Symbole""

"❍ UML (Unified Modeling Language)""

"❍ UML-Tools zur Code-Generierung"

5.5  

Page 6: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.3 Zeitliche Entwicklung

5.6  

1950

1960

1970

1980

1990

2000

imperativ " " objektorientiert funktional " "logisch

Fortran

Cobol algol 60

PL/1 Algol 68

Pascal

Ada C

Simula

C++

Java

C#

Smalltalk

Eiffel

Lisp

ML

Miranda

Haskell

Prolog

prozedural deklarativ

Basic

Page 7: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.4 Typen von Programmiersprachen

Man unterscheidet ganz grundlegend deklarative und prozedurale (bzw imperative) Sprachen."(Terminologie ist hier uneinheitlich). "!Prozedurale Sprachen:!•  Programm besteht aus einer Folge von Befehlen."•  Programm gliedert sich in einzelne Prozeduren"•  Weitere Unterscheidung"

•  imperativ: Programmablauf durch Abfolge der Programmzeilen und Verzweigungen vorgegeben"•  objektorientiert: Programmablauf durch Signalaustausch zwischen Objekten bestimmt."

"Deklarative Sprachen:!•  Programm ist eine Beschreibung des Problems."•  Compiler entwickelt daraus einen Programmablauf auf Maschinenebene."•  Bemerkung: Trotz dieses syntaktisch ganz anderen Konzepts ist die Programmierung nicht so verschieden, wie es scheint: Es ist nicht so, dass der Compiler das Problem für uns löst. Es handelt sich nur um eine andere Art, den Algorithmus aufzuschreiben."

5.7  

Page 8: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.4 Typen von Programmiersprachen

Imperativ/Prozedural (z.B. Pascal, C, Basic):"

❍ Hauptgesichtspunkt: Umsetzung von Algorithmen bzw. Berechnungsvorschriften""

❍ Kontrollfluss wird durch das Programm gesteuert""

❍ Sprachelemente:""

❑ Variablen (hier x, y): Platzhalter für konkrete Werte/Zahlen""

❑ Zuweisung a:=b Konkrete Werte werden Variablen zugewiesen""

❑ arithmetische Operatoren""

❑ Funktionen bzw. Prozeduren, hier: doSomething, writeln""

❑ Kontrollstrukturen"

5.8  

Page 9: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.4 Typen von Programmiersprachen

Erste Imperative Programmiersprachen (Fortran, Basic):!"Struktur der Sprache eng an Maschinensprache angelehnt, Befehle sind aber komplexer als in Assembler, deshalb handelt es sich um Hochsprachen. Elementare Befehle sind ""•  Zuweisungen: a =b Weist der Variablen a den Wert von b zu."•  Arithmetische Ausdrücke: " c=sqrt(a^2+ b^2) Weist den Wert einer Quadratwurzelberechnung (square root) zu."•  Sprungbefehle der Programmkontrolle: " goto 100 Programmkontrolle springt in Programmzeile 100."•  Bedingte Verzweigungen:" if a<b then 100 springt in Programmzeile 100, falls a<b."•  Schleifenbefehle " do oder for - next (siehe Beispiel auf folgender Seite) "•  Eingabe und Ausgabe: " print a "•  Sprünge in Prozeduren (Unterprogramme): Inhaltliche Gruppierung mehrfach aufgerufener Programmteile" gosub 200 return

•  Im Unterschied zu einfachen Sprüngen merkt sich die Programmkontrolle, von welchem gosub in die Prozedur gesprungen wurde, und kehrt nach return dorthin zurück."

5.9  

Page 10: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.4 Typen von Programmiersprachen

Imperative Programmiersprachen (Fortran, Basic):!"Basic-Beispielprogramm, zwei Varianten mit gleichem Ergebnis."( Die Programmzeilen-Nummern (100, 200, …) sind Teil des Programmtextes und werden vom Programmierer eingegeben. 100er Schritte, um später noch Zeilen einfügen zu können.)""""" = " ""

5.10  

100 k=0 200 k=k+1 300 print sqrt(k) 400 if k<100 then 200 …

100 for k=1 to 100 200 gosub 1000 300 next k … 1000 print sqrt(k) 1010 return

Page 11: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.4 Typen von Programmiersprachen

Strukturiertes Programmieren"Problem: E. W. Dijkstra, 1968: Aufsatz „Go To Statement Considered Harmful“"Gefahr von Fehlern beim Programmieren von „Spaghetticode“ in Fortran, Basic, …"Z.B. Sprünge aus Schleifen oder aus Prozeduren heraus."Wurde zum Problem, als Programme immer umfangreicher wurden. ""Deshalb:"1.  goto Befehl soll nicht verwendet werden"

1.  Statt dessen Blockstruktur des Programms"

•  Schleifen"

•  If-then-else"

"3. Prozeduren dürfen nur an ihrem Ende verlassen werden."

5.11  

for k:=1 to 3 do begin end;

Befehl 1 Befehl 2

if k<10 then begin end else begin end;

Page 12: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.4 Typen von Programmiersprachen

Imperativ/Prozedurale strukturierte Programmierung (Pascal, Modula, C):"

•  Keine Verwendung von goto"•  Strukturierte Programmierung mit Befehlsblöcken zwischen begin - end."•  Modularisierung: Programmierer definiert viele Prozeduren und Funktionen (Funktionen sind Prozeduren, die einen Wert an das Hauptprogramm zurückgeben. Bsp: sinus-Funktion ). "•  Lokale Variablen in Prozeduren, die nur dort definiert sind, verhindern Verwechslungen."•  Zeiger auf Variablen (in C sind das ganz direkt die Adressen der Daten im Speicher) erlauben dynamische Datenstrukturen "•  Programmierer kann Variablen zu neuen Datentypen (record, struct) zusammenfassen. "

•  Beispiel in Pascal: type 3d_vector = record x,y,z: real; (real = Gleitkommazahlen)" end; •  Pascal: Elegant, sehr präzise Definition von Variablentypen, v.a. in der Lehre verwendet"•  C: Maschinennäher, dadurch sehr effizienter Code."

Auszug aus einem Pascal-Programm:" procedure writeSum(x,y: integer); var z: integer; begin z=x+y; writeln(z); (= “write line”)" end;

5.12  

Weitere Beispiele siehe vorige Folie: for-Schleife, if-then-else mit begin-end.

Page 13: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.4 Typen von Programmiersprachen ….

Objektorientierte Programmierung:!!Probleme: !•  In großen Softwareprojekten gibt es Hunderte von Prozeduren und Funktionen."•  Es werden klare Schnittstellen zur Arbeitsteilung der Programmentwicklung benötigt"

Deshalb:!•  Programm fasst Variablen zu Einheiten zusammen. Dies sind die Objekte. (Weiterentwicklung der Idee von struct-Datentypen)"•  Ein Typ von Objekten (z.B. Vektoren) heißt Klasse."•  Für jede Klasse werden spezifische Funktionen (Methoden) definiert."•  Es gibt abstrakte Operationen auf verallgemeinerten Klassen "

•  Diese werden für jede konkrete Klasse getrennt definiert"•  Hierarchie von voneinander abgeleiteten Klassen mit Vererbung von Methoden"•  Lokale Variablen innerhalb der Objekte sind gegebenenfalls von außen im Programm nicht zugänglich."•  Jeder Programmentwickler arbeitet an seinen Objekten, und diese können auf vordefinierte Weise interagieren."

5.13  

Page 14: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.4 Typen von Programmiersprachen ….

Objektorientierte Sprachen (C++, Java):"

Auszug aus einem C++-Programm:" class Vector3D { float x, y, z; float norm(); ... } Bemerkung: “{ }” entspricht begin-end"main() { Vector3D u, v, w; v.x = 1; v.y = 0; v.z = 0; w.x = 0; w.y = 1; w.z = 0; u = v + w; if (u.norm() == 0) printf(“Laenge 0”); }

5.14  

•  Sprachelemente: Zusätzlich zu denen imperativer Sprachen:"•  Klassen (hier: Vector3D)"•  Objekte (hier: u,v,w): Entsprechen Variablen für einfache Typen"

•  Definition eigener Operatoren, hier: norm(), +"•  Fokussierung auf grundlegende Konzepte der Software-Entwicklung:"

•  Modularisierung, Erweiterbarkeit, Wartbarkeit, Portabilität"

•  Programmierung der Objekte (Klassen und deren Methoden) tritt in den Vordergrund, Programmierung des Befehlsablaufes in den Hintergrund."•  Befehlsablauf oft nur durch Signale gesteuert, die die Objekte austauschen. "

Page 15: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.4 Typen von Programmiersprachen ….

Funktional (z.B. LISP, SML, Haskell):"

❍ Hauptgesichtspunkt: Definition von mathematischen Funktionen!!

❍ Ausführungsreihenfolge wird durch Abhängigkeit von Funktionen, insbesondere die Reihenfolge der Auswertung in den arithmetischen Ausdrücken, implizit festgelegt:""

❍ Sprachelemente:""

❑ Funktionen, hier fakultaet (Genauere Erklärung des Berechnungsverfahrens folgt später.)""

❑ arithmetische Operationen, hier: - n 1 (Ergebnis: n − 1). Dabei Präfix-Notation (Operator Operand1 Operand2).""

❑ Kontrollstrukturen, hier: if-Bedingung (bedingte Ausführung)""

❑ keine sequentiellen Kontrollstrukturen""

❍ Hinweis: Hier gibt es keine Variablen, Schleifen und Zuweisungen im imperativen Sinn"

Auszug aus einem LISP- bzw. Scheme-Programm:" (define (fakultaet n) (if (= n 0) 1 (* n (fakultaet(- n 1)))))

5.15  

Page 16: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.4 Typen von Programmiersprachen ….

Logisch/Prädikativ (z.B. Prolog):"

•  Hauptgesichtspunkte: Prädikate, Regeln, Termersetzung"

•  Umsetzung der prädikatenlogischen Denkweise"

•  Sprachelemente: Fakten, Regeln, Anfragen"

•  Motivation: Künstliche Intelligenz durch formales Schließen"

•  Eigentliche algorithmische Struktur ist im Compiler""

Auszug aus einem Prolog-Programm:" umkreist(erde, sonne). (Faktum) umkreist(mars, sonne). planet(B) :- umkreist(B, sonne). (Regel) satellit(B) :- umkreist(B, P), planet(P). ?- umkreist(erde, sonne). (Anfrage)

5.16  

Page 17: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.5 Programmierumgebung

Lexikalische Analyse"Syntaktische Analyse!Semantische Analyse"Code-Erzeugung"Code-Optimierung"

Editor

Quelltext mit Makros

Compiler−Sprachen:

Präprozessor

Compiler

Linker

Maschine

Fehlermeldungen

Eingabe""

Debugger-Eingabe""

Debugger-Ausgabe

Quellmodul

Binärer Modul-Code

Maschinen-Code

❍ Die Analyse-Stufen prüfen die Korrektheit des Programmcodes anhand""

der Sprachdefinition (s. Kap. 7 Formale Sprachen)""

❍ Das ausführbare Programm (Maschinencode) kann aus mehreren binären""

Modulen bestehen (s. Absch. 6.16)"

5.17  

Benutzer tippt Programm ein

Page 18: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.5 Programmierumgebung …

Editor: !•  Ein Programm, in dem der Programmierende den Programmtext eingeben und bearbeiten kann. "•  Das Ergebnis ist der Quell-Code im ASCII-Format (eine einfache Buchstabenfolge). "!

Präprozessor bearbeitet automatisch den Quelltext: "•  Einfügen von vordefinierten Quelltextblöcken (Headerdateien, Makros), "•  Ersetzung von Namen durch andere."•  Ergebnis ist immer noch direkt lesbarer Code, nur länger und unübersichtlicher."!

Compiler:!Scanner: Ersetzung der Operatoren, Namen, Schlüsselworte durch Zwischencode."Parser: Syntaktische Analyse, z.B. Klammerregeln in arithmetischen Ausdrücken."Code-Generator: Semantische Analyse und eigentliche Übersetzung in Assembler."Code-Optimierung zur Beschleunigung des Programms: Verwendung von Registern, Reihenfolge von Speicherzugriffen, …"

!

Linker: Zusammenfügen des Maschinencodes mit anderen (eigenen oder vordefinierten) Code-Bestandteilen, z.B. Bibliotheken von mathematischen Funktionen."!

Assemblierer übersetzt den Assembler-Code schliesslich in ausführbare Maschinensprache."

5.18  

Page 19: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.5 Programmierumgebung …

Interpreter: Durchläuft den Quell-Code, übersetzt jeden Befehl in Maschinenbefehl(e)""

"und führt diese direkt aus""

"❍ Beispiele: BASIC, Skriptsprachen (z.B. Perl, PHP, Python etc.)""

Assembler: Übersetzt eine Folge von Assembler-Befehlen in Maschinen-""

"Code""

Assembler-Code: Lesbare Darstellung von Maschinencode"

Editor

Interpreter

Maschinenbefehl

Quelltext

Maschine

Eingabe""

Debugger-Eingabe""

Fehlermeldungen

Editor

Assembler

Maschinen-Code

Quelltext

Maschine

Interpretierte Sprachen: Assembler−Sprachen:

5.19  

Page 20: Algorithmen und Datenstrukturenmi.informatik.uni-siegen.de/teaching/lectures/EI/script/... · 2018-01-30 · Prof. Dr. Volker Blanz Fachgruppe Medieninformatik" Algorithmen und Datenstrukturen!

Prof. Dr. Volker BlanzFachgruppe Medieninformatik"

Algorithmen und Datenstrukturen  

5.6 Zusammenfassung

Wichtige Erkenntnisse und Inhalte dieses Abschnitts:""

Historie der Programmiersprachen""

Gliederung der Programmiersprachen"!

"❍ höhere Programmiersprachen""

"❍ niedere Programmiersprachen""

Typen von Programmiersprachen"!

"❍ Imperativ/Prozedural: Direkte Angabe von Berechnungsabläufen""

"❍ Objekt-Orientiert: Abstraktere Sicht auf anwendungsspezifische Daten""

"❍ Funktional: Mathematisch-funktional""

"❍ Logisch: Programmierung mittels Fakten und Regeln"

5.20