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

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

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

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

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

II.1.1. Erste Schritte - 1 -

! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -

5.1 Algorithmen Der Algorithmenbegriff

Einführung in die Programmierung

Einführung in die Programmierung Wintersemester 2016/17

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

Grundlagen der Modellierung und Programmierung, Übung

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 1. Einführung und Grundbegriffe

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

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

1.3 Geschichte der Programmiersprachen

II.1.1. Erste Schritte - 1 -

Sprachen und Programmiersprachen

Software-Entwicklung

Ein erstes Java-Programm

10. Programmierungs-Phase: Objektorientierung Software Engineering

Klassenvariablen, Klassenmethoden

Vorlesung Programmieren

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

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

Informatik Vorkurs Sommersemester 2015

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Modellierung und Programmierung 1

Programmieren I. Methoden-Spezial Heusch --- Ratz 6.1, Institut für Angewandte Informatik

Programmieren I. Methoden-Special Heusch --- Ratz 6.1, Institut für Angewandte Informatik

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Einführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

JAVA als erste Programmiersprache Semesterkurs

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

Grundlagen der Programmierung UE

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

6. Programmiersprachen im Überblick. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Grundlagen der Programmierung UE

Einführung in die Programmierung WS 2014/ Algorithmus, Berechenbarkeit und Programmiersprachen 2-1

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

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Einleitung und Begriffliches. Einleitung. Programmiersprachen. Software-Komplexität ist inhärent und hat vor allem folgende Ursachen

Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker

Definition: (Kette, noethersche Ordnung)

6. Funktionen, Parameterübergabe

12. Rekursion Grundlagen der Programmierung 1 (Java)

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Algorithmen und Datenstrukturen

Info B VL 1: Einführung p.1

Programmierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen

Programmierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen

Konzepte der Programmiersprachen

Funktionale Programmiersprachen

Einführung in die Programmierung mit Java

Programmierkurs II. C und Assembler

Stichworte zur Ideengeschichte der Programmiersprachen

Einführung in die Informatik Turing Machines

2 Grundlagen der Programmierung

Grundlagen der Informatik für Ingenieure I

Einstieg in die Informatik mit Java

Der Begriff Informatik

2. Unterprogramme und Methoden

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

Funktionale Programmierung (in Clojure)

Softwaretechnik. Wesentliche Inhalte der Vorlesung

Einführung in die Informatik Turing Machines

Vorkurs Informatik WiSe 17/18

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker

ALP I Geschichtliche Einführung in die Programmiersprachen

EIGENSCHAFTEN VON SPRACHEN

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

Semantik von Programmiersprachen

Algorithmus. Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion.

Definition: (Kette, noethersche Ordnung) Definition: (Kette, noethersche Ordnung) (2) Lemma: Terminierungskriterium:

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Einführung in die Informatik

Funktionale Programmierung Einführung

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Einführung in die Informatik 1

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Einführung in die Programmiertechnik

Informatik 1. Teil 1 - Wintersemester 2012/2013. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

4. Komponentenarten. Java-Beispiele:

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1

In den weiterführenden Vorlesungen

Informatik. Teil 1 Wintersemester 2011/2012. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

Einführung in die Informatik I (autip)

Die Programmiersprache C Eine Einführung

7. Syntax: Grammatiken, EBNF

Informatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 -

Werkzeuge zur Programmentwicklung

Objektorientierte Programmierung

Vom Algorithmus zum Programm

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

6. Iteration (Schleifenanweisungen)

Programmierkurs Python I

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax

4 Ausklang. ALP 2, Hannes Federrath, Sommersemester 2001

Transkript:

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 -