n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 -
1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information und Mathematik l Wissenschaft der Informationsverarbeitung mit großer Nähe zur Mathematik n Hauptaufgabe der Informatik l Entwicklung formaler, maschinell ausführbarer Verfahren zur Lösung von Problemen der Informationsverarbeitung n Forderung der Durchführbarkeit mittels einer Maschine: l Informationen müssen als maschinell verarbeitbare Daten dargestellt werden l Lösungsverfahren müssen bis ins Detail formal beschrieben werden. - 2 -
Algorithmus n Ein Algorithmus ist ein Verfahren, welches l in einem endlichen Text niedergelegt werden muss l effektiv (durch eine Maschine ) ausgeführt werden kann l aus (direkt maschinell ausführbaren) Elementaroperationen besteht und eindeutig festlegt, welche Elementaroperation als nächstes auszuführen ist (Determinismus) l Ein- und Ausgabe ermöglicht, wobei jeder Eingabe genau eine Ausgabe zugeordnet wird (Determiniertheit) n Anzahl und Ausführungszeit der Elementaroperationen sind beschränkt. n Ein Algorithmus (Programm) wird durch eine Maschine schrittweise ausgeführt l Die ausführende Instanz muss die Vorschrift interpretieren und korrekt ausführen. l Ein Algorithmus terminiert, wenn er nach endlich vielen Schritten abbricht. - 4 -
Deterministischer Algorithmus Berechnung von x-y 1. Lies Eingaben x und y. 2. Falls x y: Weiter mit Schritt 3. Falls x > y: Weiter mit Schritt 4. 3. Berechne a = y - x. Weiter mit Schritt 5. 4. Berechne a = x - y. 5. Gib a aus. - 5 -
Indeterministischer Algorithmus Berechnung von x-y 1. Lies Eingaben x und y. Weiter mit Schritt 2 oder Schritt 3. 2. Berechne a = x - y. Weiter mit Schritt 4. 3. Berechne a = y - x. 4. Falls a 0: Gib a aus. Falls a < 0: Gib -a aus. - 6 -
Fragen n Wie kann man aus einer Lösungsidee einen Algorithmus konstruieren? l "schrittweise Programmentwicklung" n Wie zeigt man, dass ein Algorithmus tatsächlich das tut, was er tun soll? l Verifikation: partielle Korrektheit l Terminierung n Wie "gut" ist ein Algorithmus? l Speicherverbrauch, benötigte Zeit (Effizienz) l Aufwandsabschätzungen - 7 -
n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 8 -
2. Syntax & Semantik von Programmiersprachen Ein erstes Java-Programm: public class Rechnung { } public static void main (String [] arguments) { } int x, y; x = 10; y = 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println (x + y); - 9 -
Programmiersprachen n Die Programmiersprache bildet die Schnittstelle zwischen Mensch und Rechner Programmiersprache Rechner Beide haben unterschiedliche Anforderungen l Mensch w w w Erlernbarkeit Lesbarkeit Ausdrucksstärke l Rechner w einfaches Übersetzen in Maschinensprache w Höhere Programmiersprachen Generierung von effizientem Code Maschinensprachen - 10 -
Kenntnis verschiedener Sprachen n Eigene Ideen bei der Software-Entwicklung können besser ausgedrückt werden n Nötig, um in konkreten Projekten geeignete Sprache auszuwählen n Erleichtert das Erlernen weiterer Programmiersprachen n Nötig für den Entwurf neuer Programmiersprachen - 11 -
Übersicht Imperative Sprachen Deklarative Sprachen l Folge von nacheinander ausgeführten Anweisungen l Spezifikation dessen, was berechnet werden soll l Festlegung, wie Berechnung verläuft durch Compiler n Prozedurale Sprachen l Variablen, Zuweisungen, Kontrollstrukturen n Funktionale Sprachen l keine Seiteneffekte l Rekursion n Objektorientierte Sprachen l Objekte und Klassen l ADT und Vererbung n Logische Sprachen l Regeln zur Definition von Relationen - 13 -
Wichtige Programmiersprachen 1950 1960 Fortran Cobol Algol 60 Lisp 1970 1980 1990 PL/1 Pascal Ada Algol 68 C Modula-3 Simula Smalltalk C++ Ada-95 Java Eiffel Python Scheme ML Miranda Haskell Prolog 2000 Scala prozedural objektorientiert funktional logisch - 14 -
Populäre Programmiersprachen Quelle: www.tiobe.com, Oct. 2015-15 -
Programmiersprachen - Definition n Programmiersprachen sind Sprachen, deren Syntax und Semantik genau festgelegt ist. n Syntax: l Definition aller zulässigen Wörter / Programme, die in einer Sprache formuliert werden können n Semantik: l Bedeutung der zulässigen Wörter / Programme l Syntaktisch falsche Wörter / Programme haben keine Semantik - 16 -