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



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

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

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

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

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 -

1.3 Geschichte der Programmiersprachen

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

Programmieren in Haskell Einführung

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

Stichworte zur Ideengeschichte der Programmiersprachen

Programmiersprachen Proseminar

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

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

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

1 Programmiersprachen 1.1 1

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

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

Einführung in die Funktionale Programmierung

Höhere Programmiersprachen

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

10. Programmierungs-Phase: Objektorientierung Software Engineering

Software-Entwicklung

Programmierung Paradigmen und Konzepte

Inhalte des Moduls Programmieren 1

Konzepte der Programmiersprachen

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Paradigmen zur Algorithmenbeschreibung

Vorlesung Programmieren

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

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

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

Softwaretechnik. Wesentliche Inhalte der Vorlesung

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

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

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

Programmieren in Haskell Einführung

Konzepte von Programmiersprachen

Ziele der Vorlesung: Entwurfsalternativen von Programmiersprachen erkunden Deklarative Programmierung am Beispiel von Haskell erlernen

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

Funktionale Programmierung (in Clojure)

Liste MI / Liste I Programmieren in C++

Objektorientiertes Programmieren

Beispiel: Hamming-Folge Erzeuge eine Folge X = x 0,x 2,... mit folgenden Eigenschaften: 1. x i+1 > x i für alle i

Programmiersprachenkonzepte

1 Inhalt der Vorlesung B-PS1

Inhalt. Einführung in die Strukturierte Programmierung 15

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

4 Ausklang. ALP 2, Hannes Federrath, Sommersemester 2001

Einführung (29. Oktober 2007)

Historischer Abriss Fortran Backus (IBM) Formula Translator Algol 60 Naur et al. Algorithmic Language

Propädeutikum Programmiersprache C und Mathematik 2014

Java als erste Programmiersprache

Semantik von Programmiersprachen

!"#$"%&&'()*+,-./($ 0123'-)#"+'()+'")'4!"#$"%&&+'"/($5

Inhaltsverzeichnis. Lothar Piepmeyer. Grundkurs funktionale Programmierung mit Scala ISBN:

Geschichte der Programmiersprachen

ALGOL 68 im Aspekt einer modernen Programmiersprache???

Einführung in die Informatik I (autip)

Grundlagen der Programmierung

Anwendungen der Logik: Deklarative bzw. Logik-Programmierung in PROLOG

Einführung in die Programmierung mit Java

Funktionales Programmieren

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2015/16

Paradigmen zur Algorithmenbeschreibung

Funktionale Programmiersprachen

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2017/18

Logische Programmierung

12. Rekursion Grundlagen der Programmierung 1 (Java)

Multiparadigmen- Programmiersprachen

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

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

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

Einführung in die Programmierung mit Java

Java-Grundkurs für Wirtschaftsinformatiker

Programmieren 2 - Java

Info B VL 1: Einführung p.1

Grundlagen der Programmiersprachen

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen

Programmierparadigmen

Programmiertechnik II WS 2017/18

BINDUNG. Umgebung. Benennbare Größen. Blockstruktur. Bindung eine Bezeichnung für eine Größe (entity) vereinbaren (deklarieren)

1. Organisatorisches, Aufbau eines Computers, Erstellung eines Programmes, Algorithmen und Programme, Grundlagen der Zahlendarstellung

Praktische Informatik 3: Funktionale Programmierung Vorlesung 13 vom : Scala Eine praktische Einführung

Programmiertechnik II SS Fakultät Informatik Bachelor Angewandte Informatik

Grundlagen der Programmierung 2 (1.A)

Sprachen und Programmiersprachen

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

Programmiersprachen und ihre Übersetzer

Praktische Informatik 3

Vorlesung Programmierung

Objektorientiertes Software-Engineering

Vorlesung Informatik 2

Grundlagen der Modellierung und Programmierung, Übung

Transkript:

Organisation und Einführung Studiengang Informatik Universität Bremen Sommersemester 2010 (Vorlesung am Montag, der 12. April 2010)

(Montag, der 12. April 2008) 1 Vorstellung 2 Organisation 3 Einführung

Gestatten? wissenschaftlicher Mitarbeiter Arbeitsgruppe Krieg-Brückner Kordinaten Büro: Cartesium 2.48 Telefon: 218-64 222 Email: hof@inf... men.de www.inf...men.de/~hof Interessen Übersetzer visuelle Sprachen Graphtransformation Diaplan

Der Inhalt in der Nußschale Prinzipien von Was ist allen Sprachen gemeinsam? Konzepte und ihre Eigenschaften Was prägt den Stil einer Sprache? Paradigmen Was macht guten Sprachentwurf aus? Prinzipien Aspekte von [Programmier-] Sprachen Syntax: die äußere Form (wie?) Semantik: die Bedeutung (was?) Pragmatik: der Zweck (wozu?)

Lehrziele / Lernziele Was können Sie (kennen) lernen? andere Sprachen, andere Sprachkulturen Erlernen und Vergleichen von Sprachen Entwurf von Sprachen Nicht-Lehrziele / Nicht-Lernziele Programmiermethodik Programme in einer Sprache X entwickeln Aber: viele Konzepte und Stile sind methodisch motiviert

Inhalt Einführung Geschichte Konzepte Werte Speicher Bindung Abstraktion Kapselung Typsystem Steuerung Paradigmen imperativ (Ada, C) objektorientiert (Eiffel, Java) funktional (ML, Haskell) logisch (Prolog) Skriptsprachen (?) Spachentwurf Entwurfsprinzipien Sprachauswahl

Lehrziele Konzepte Werte Datentypen, Ausdrücke, Typisierung Speicher Variablen, Zeiger, Befehle Bindung Vereinbarungen, Blöcke Abstraktion Prozeduren, Parameter, Kapselung Module, Klassen, generische Module Typsystem Überladen, Polymorphie, Vererbung Steuerung Sprünge, Auswege, Ausnahmen

(Montag, der 12. April 2008) 1 Vorstellung 2 Organisation 3 Einführung

Material zur Veranstaltung www.inf...men.de/agbkb/lehre/programmiersprachen/ Lehrbuch zur Veranstaltung: David A Watt Konzepte und Paradigmen. München: Hanser, 1996. (Deutsch von B. Hoffmann) Folienkopien Hinweise zu Aufgaben Hintergründe

Geschichte (Montag, der 12. April 2008) 1 Vorstellung 2 Organisation 3 Einführung Geschichte

Geschichte Wozu brauchen wir? Zum Programmieren natürlich Aber wer muss eigentlich noch programmieren? Und weshalb reicht nicht eine einzige Sprache? verschiedene Anwendungen (kommerziell, KI, verteilte Systeme, Internet...) verschiedene Plattformen (Windows, Unix, Mainframes, Vektorrechner...) verschiedene Anforderungen (sicherheitskritisch, eingebettet, interaktiv, effizient, kostengünstig, wiederverwendbar)

Geschichte Was macht eine Programmiersprache aus? Computersprachen / formale Sprachen implementierbar für eindeutige Beschreibung von Algorithmen universell: alle berechenbaren Funktionen müssen beschreibbar sein höhere Sprachen Plattformunabhängigkeit Pragmatik natürlich effizient

Geschichte Was erwarten wir von? erwünschte Eigenschaften unerwünschte Eigenschaften

Geschichte Geschichte der

Geschichte imperative Sprachen in Stichworten ab 1957 Fortran Ausdrücke, Felder und Unterprogramme Cobol Strukturen und Dateien Algol-60 Blöcke und rekursive Prozeduren PL/1 Datentypen, Ausnahmen und Nebenläufigkeit (low level) Algol-68 Datenstrukturen, Kontrollstrukturen, Nebenläufigkeit (low level) Pascal Kontrollstrukturen, Datenstrukturen C? Ada (parametrisierte) Module, Ausnahmen und Nebenläufigkeit

Geschichte Objektorientierte Sprachen in Stichworten ab 1967 Simula erweiterbare Strukturen, Klassen, Untertypen Smalltalk Zugriffsschutz, Nebenläufigkeit, Speicherbereinigung C++ Mehrfachvererbung, generische Klassen Eiffel Mehrfachvererbung, generische Klassen, Zusicherungen Oberon? Java Plattformunabhängigkeit C#.NET, Interoperativität zwischen Sprachen

Geschichte Funktionale / logische Sprachen in Stichworten funktional (ab 1956) Lisp Listen, Speicherbereinigung, Rekursion Ml pattern matching, Funktionale, Polymorphie und Module Miranda verzögerte Auswertung, Listenumschreibungen Haskell Typklassen, Monaden logisch (ab 1972) Prolog Variablen, Resolution, backtracking Kombinationen funktionaler und logischer Sprachen Curry Haskell plus Prolog Oz objektorientiert, funktional, logisch, nebenläufig

(Montag, der 12. April 2008) 1 Vorstellung 2 Organisation 3 Einführung

Zusammenfassung Inhalt: Prinzipien von Konzepte Paradigmen Entwurfsprinzipien Syntax Semantik Pragmatik kaum Methodik kaum Implementierung ( Übersetzer, Sommer 2009) Referenzsprachen Ada Eiffel Ml Prolog

Nächstes Mal Werte Datentypen und Datenstrukturen Ausdrücke Typisierung

Weitere Lehrbücher beamericonbook David A. Watt. Programming Language Design Concepts. Chichester: Wiley & Sons, 2004 beamericonbook Robert W. Sebesta. Concepts of Programing Languages, 5/e. Hemel Hampstead: Addison-Wesley, 2003 beamericonbook Es geht aber auch ohne Buch! (bzw. mit der Übersetzung von D.A. Watt s Buch im Netz)