Programmiersprachen Proseminar Grundlagen wissenschaftlichen Arbeitens Gruppe 9 Christian Donhofer 0125815 Michael Jeremias 0126564 Hans Zojer 0226374
Programmiersprachen Allgemein Prozedurale Programmiersprachen Objektorientierte Programmiersprachen Funktionale Programmiersprachen Gruppe 9
Allgemein Methodische Grundlagen Historie der Programmiersprachen Gruppe 9
Methodische Grundlagen Abstrakte Datentypen (ADT, Typ) Programmierparadigmen Elemente von Programmiersprachen Lebensdauer und Bindung Datentypen und Bindung Ausdrücke Sequentielle Ablaufsteuerung Zuweisungen, Bedingung, Schleife Prozeduren und Funktionen Ausnahmen Gruppe 9
Historie der Programmiersprachen FORTRAN, ALGOL, BASIC COBOL PL/I Pascal, Modula-2 Ada C/C++, Smalltalk, Java, C# LISP, PROLOG Gruppe 9
Prozedurorientierte Programmierung Grundbegriffe Strukturierte Programmierung Gruppe 9
Grundbegriffe Algorithmus Prozedur Funktion Modul Gruppe 9
Strukturierte Programmierung Nassi-Shneiderman-Diagramm Sequenz (Anweisungsfolge) Selektion (bedingte Verzweigung) Iteration (Schleife) Prozeduraufruf Return, Break und Exceptions Gruppe 9
Objektorientierte Programmiersprachen Objekte und Klassen Vererbung Polymorphie Gruppe 9
Objekte und Klassen Encapsulation / Data Hiding Interface (Methoden) Exemplare (Eng.: Instances) Gruppe 9
Vererbung Gründe: geringe Unterschiede zwischen Klassen, logischer Zusammenhang Auch Erweitern genannt: abgeleitete Klasse (derived class) erbt alle Daten und Funktionen der Basis- o. Superklasse und definiert zusätzlich eigene Gruppe 9
Polymorphie Typisierte & untypisierte Sprachen Arten der Polymorphie Typisiert: int x = 10; String x = „abc“; Untypisiert: x = 10; x = „abc“; Arten der Polymorphie Gruppe 9
Funktionale Programmiersprachen Grundbegriffe Beispiel: Haskell Gruppe 9
Grundbegriffe Funktional = mathematisch Nebenwirkungen Monaden Strikte / Bedarfsauswertung Statische / dynamische Typisierung Erster / höherer Ordnung Gruppe 9
Beispiel: Haskell data Color = Red | Green | Blue data IntTree = Empty | Branch Int IntTree IntTree data Bool = True | False data Char = chr(0) | ... | chr(255) data Int = MININT | ... | MAXINT sum Empty = 0 sum (Branch n l r) = n + sum l + sum r sum tree = case tree of Empty => 0 | Branch n l r => n + sum l + sum r Gruppe 9