Programmiersprachen I F B

Slides:



Advertisements
Ähnliche Präsentationen
Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL
Advertisements

PL/SQL - Kurze Einführung -.
Lösung 7.1 Syntax und Semantik
Datenbankzugriff im WWW (Kommerzielle Systeme)
Design by Contract with JML - Teil 2
Rethinking Linguistic Relativity John A. Lucy. Gliederung Einführung in das Problem Kritik an bisherigen Untersuchungen der Anthropologen Psycholinguisten.
Java: Grundlagen der Sprache
Entwicklung der Programmiersprachen
Welcome DTD. Document Type Definition Graphic Services/Everything you already know about presentations Was ist eine DTD? DTD ist eine Schemasprache.
Zhaohan Chen SS061 SIMULA-an Algol Based Simulation Language geschrieben von: Zhaohan Chen Betreuer: Prof. Dr. Rainer Manthey.
Seminar SE: MDE 1 FG Software Engineering Software Engineering Seminar Model Driven Engineering Seminar des Fachgebiet Software Engineering Ruben Jubeh,
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Einführung und Überblick
Einführung Inhalte dieses Kurses Generationen der Programmiersprachen
Dependence Analysis Eugen Kuss. Research proposal Interprocedural Dependence Analysis and Parallelization Problembeschreibung Dependece Analysis: Abhängigkeitsbeziehungen.
Frank Fischer Manager Evangelism and Marketing Microsoft Deutschland GmbH.
Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts.
Seite 1 Abwehren statt Sortieren. Seite 2 NoSpamProxy Abwehren statt Sortieren –der andere Ansatz für die Spam Behandlung Wir finden die Guten –Lernfähigkeit.
Die Denkweise der Kinder, das Lernen und Lehren.
Medien zwischen Technologie und Gesellschaft Dozent: Herr Prof. Dr. Manfred Thaller SS 13 Referent: Christian Braun.
RoniKolli7 Herstellbarkeitsanalyse Biegesimulation
Grundlagen der Programmierung
Ein Rechensystem ist ein aus Hard- und Software bestehendes System zur Speicherung und Verarbeitung von Informationen.
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Hauptgebiete der Informatik
Globalisierung bedeutet Verantwortung übernehmen…
Server.
Turingmaschine als Akzeptor
Anwendungsentwicklung. … überlegen sie mal… Wir beschäftigen uns mit dem Aufbau der Arbeitsweise und der Gestaltung von betrieblichen Informationssystemen.
Maschinen Versuch einer Definition:
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Betriebliche Aufgaben effizient erfüllen
Künstliche Intelligenz
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 14: Mehrfachvererbung.
Dateien Datei = File (engl.) Mögliche Inhalte einer Datei
Basisinformationstechnologie HK-Medien
Smalltalk-Anbieter Helge K. Nowak
VHDL-Synthese für Fortgeschrittene
Entwicklung der Programmiersprachen
Cooperation unlimited © Zühlke August 2008 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Software-Entwicklung & Programmiersprachen
Algorithmen und Datenstrukturen Übungsmodul 6
CGI (Common Gateway Interface)
Allgemeines zu Datenbanken
Historische Entwicklung und ihre Einteilung
Programmieren in C Einführung
Programmierung 1. Einführung Seite 1
Programmiersprachen Proseminar Grundlagen wissenschaftlichen Arbeitens
Grundlagen Wissenschaftlichen Arbeitens Hilal Tekoglu
SQL Server 2005 CLR Integration Sebastian Weber Microsoft Deutschland GmbH
Einführung Dateisystem <-> Datenbanksystem
Objektorientierte (OO) Programmierung
Sprachen und Programmiersprachen
Seminar Softwareproduktlinien Domänenspezifische Sprachen Sascha Draffehn von.
Tobias Sammet 8DY1 Programmieren Tobias Sammet 8DY2 Programmierung ● = das Schreiben eines Computerprogramms ● Dient zur Lösung eines.
© Tenbusch Oberstufenzentrum Informations- und Medizintechnik Objektorientierte Programmierung mit Java.
Praktische Informatik 1
Praktische Informatik 1
Eine Präsentation von Sandro Schluep und Leon Wink.
Einführung in die Programmierung
Von Wietlisbach, Lenzin und Winter
Einführung in die Programmierung
Mögliche Stoffverteilung im Grundkurs
Objects first mit BlueJ und Greenfoot
Von Wietlisbach, Lenzin und Winter
Einführung in die Programmierung
 Präsentation transkript:

Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP I F B Referat zur Veranstaltung „Informatik VI“ (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar 2001

Sprache Eine Sprache besteht aus der Gesamtheit aller möglichen Aussagen und deren Bedeutungen Syntax Regeln zum formalen Aufbau der Sätze Semantik Regeln über die Bedeutung der Sätze „Dieser Satz hat vier Wörter.“ syntaktisch korrekt - semantisch falsch x:=y syntaktisch korrekte Zuweisung, aber semantisch nur korrekt, wenn x und y vom gleichen Datentyp sind

Programmiersprachen Computerunterstützte Problemlösungen basieren auf Algorithmen Algorithmen stellen den Zusammenhang zwischen Ein- und Ausgabedaten dar und sind eindeutig und ausführbar sowie endlich bezüglich Ausführungzeit und Beschreibung Das Problem der Übertragung von Algorithmen auf Maschinen führte zur Entwicklung von Programmiersprachen

Frühe Programmiersprachen Schickard (1623), Leibniz (1679) und Babbage (1837) befassten sich bereits mit den Möglichkeiten einer „Programmierung“ Turing (1936) beschrieb eine theoretische Maschine mit zugehöriger Steuerungssprache Zuse (1938) entwickelte ein sog. Plankalkül mit wesentlichen Elementen moderner Programmiersprachen

Maschinensprachen Programmiersprachen 1. Generation (1GL) alle Befehle direkt in der Sprache der CPU das Programm ist eine Folge aus 0 und 1 bei fester Wortlänge enthält ein Befehl einen Operationsteil und einen Adressteil bessere Lesbarkeit durch Hexadezimalsystem

Assemblersprachen Programmiersprachen 2. Generation (2GL) für Operationskodes werden kurze Abkürzungen, die Mnemoniks eingeführt LDA lade den Akkumulator ADD Addition ein Assembler als Übersetzer wird notwendig weitere Flexibilität durch symbolische Adressen, die eine Verschiebung von Programmteilen im Speicher erleichtern

Sprachen der 3. Generation ein Mnemonik beschreibt mehr als einen Maschinenbefehl Verwendung besser lesbarer Schlüsselwörter while not eof(f) do read(f,datensatz) end; typische Sprachen FORmular TRANslating system 1954 COmmon Business Oriented Language 1959 Beginners All purpose Symbolic Instruction Code 1962

Softwarekrise Mitte der 60er Jahre erkennt man die Notwendigkeit bei Software auf Korrektheit, Zuverlässigkeit, Benutzerfreundlichkeit, Wartungsfreundlichkeit, Effizienz und Portabilität zu achten Konsequenz: Entwicklung von blockorientierten Sprachen, die diese Qualitätskriterien unterstützen Blöcke sind kleinere Programmeinheiten, die für sich alleine verifizierbar sind ALGOrithmic Language 1960 (Hoare, Wirth)

Merkmale von ALGOL Blockstruktur strenge Deklarationspflicht Gültigkeitsbereiche von Variablen zwei Arten der Parameterübergabe rekursive Prozeduren formatfreie Syntax Muttersprache der ALGOL-Familie Pascal  Modula  Oberon ALGOL68  Ada  C

Modulkonzept Sammlung von Datenstrukturen und Zugriffsoperationen in Bausteinen mit Datenabstraktion und Information-Hiding getrennten Definitions- und Implementationsteilen strenger Schnittstellenüberwachung bereits zur Übersetzungszeit der Möglichkeit parallele Prozesse zu programmieren Das Modulkonzept unterstützt die strukturierte Programmierung im Software-Engineering

Systemprogrammierung Für die Programmierung von Betriebsystemen sind Sprachen wie Pascal nicht besonders geeignet, da sie hardwarenahe Zugriffe abschirmen (virtuelle Maschine) Im Zusammenhang mit der Entwicklung von UNIX entstand die Sprache C , in der eine assemblerähnliche Programmierung möglich ist, ohne auf die Vorteile einer höheren Programmiersprache verzichten zu müssen

C geringer Sprachumfang beliebig ineinander konvertierbare Datentypen übliche Kontrollstrukturen Unterstützung von Nebeneffekten für eine kompakte Formulierung und effiziente Kodierung. Deshalb oft unverständlich: while(*ziel++ = *quelle++) ; Zahlen aus quelle ins ziel schieben bis 0 auftritt

Sprachen der 4. Generation Schlüsselworte beschreiben komplexe Vorgänge readeach  lese alle vorhandenen Datensätze oft Bestandteil einer Software-Produktions-Umgebung oder eines CASE-Tools vielfach herstellerabhängig typische Sprachen SQL und R/3 (SAP)

Sprachen der KI LISt Prozessing language Logo PROgramming in LOGic bereits 1959 entwickelt, noch heute im Gebrauch Prototyp einer funktionalen Sprache besonders geeignet zur Symbolverarbeitung das CAS-Systeme Derive ist in einer auf LISP basierenden Sprache (muLISP) geschrieben Logo um 1970 von Pappert aus LISP entwickelt enthält Kontrollsstrukturen Turtle-Graphik PROgramming in LOGic Edinburgh um 1970

Sprachparadigmen Den Programmiersprachen liegen bestimmte Konzepte oder Denkschemata zu Grunde, nach denen man sie in Sprachparadigmen einordnet: imperative Sprachen funktionale Sprachen prädikative Sprachen objektorientierte Sprachen

Imperative Sprachen Programme bestehen aus Befehlssequenzen (imperare = befehlen) Der Programmentwurf orientiert sich an der Arbeitsweise einer hypothetischen Maschine Das Variablenkonzept orientiert sich an Operationen auf Speicherzellen typische Sprachen FORTRAN – ALGOL – BASIC – Pascal – C – Ada

Funktionale Sprachen Problemrelevante Abhängigkeiten zwischen einer gegebenen Ausgangssituation und einer gewünsch-ten Endsituation werden mit Hilfe von Funktionen erfasst Ein funktionales Programm besteht aus Funktions-definitionen und relevanten Funktionsaufrufen typische Sprachen LISP – Logo – APL – CAML AG-Material: Funktionale Programmierung informatikag.bildung-rp.de

Prädikative Sprachen Programmierung wird als Beweisen in einem System von Tatsachen und Schlussfolgerungen angesehen Es wir spezifiziert, was die Maschine tun soll, aber nicht, wie sie dies tun soll: deklaratives statt prozedurales Programmieren typische Sprachen PROLOG – Trilogy – CLP AG-Material: Wissenverarbeitung mit PROLOG informatikag.bildung-rp.de

Objektorientierte Sprachen Daten, Anweisungen und Regeln werden als Objekte angesehen und als solche geeignet zusammengefasst. Objekte tauschen Informationen über Nachrichten aus können auf Nachrichten mit verschiedenen Methoden reagieren können dem Sender mit einem anderen Objekt antworten erben Fähigkeiten durch Zugehörigkeit zu einer Objektklasse Klassenhierarchien erlauben eine bequeme Behandlung von Sonderfällen eine weitgehende Wiederverwendbarkeit von Programmkode typische Sprachen SIMULA – Smalltalk – C++ – Delphi – Java

Literatur Ludewig, J. Claus,V. – Schwill, A. Schalowski, R. Sprachen für die Programmierung BI Mannheim, 1985 Claus,V. – Schwill, A. Schülerduden „Die Informatik“ BI Mannheim, 1986 Schalowski, R. Programmiersprachen Deutsche Telekom, Unterrichtblätter, 52/1999 S.634-641

Unterrichtsmaterial Drumm, H. – Stimm, H. Becker, K. Noll, G. Wissensverarbeitung mit PROLOG Handreichung zum Lehrplan Informatik LMZ Koblenz, 1995 Becker, K. Funktionale Programmierung Materialien zum Lehrplan Informatik LMZ Koblenz, 1999 Noll, G. Einführung in PROLOG Referat zum Weiterbildungslehrgang Informatik IFB Speyer, 2001