Semantik von Programmiersprachen
|
|
- Maximilian Stieber
- vor 6 Jahren
- Abrufe
Transkript
1 Semantik von Programmiersprachen 1. Einführung Werner Struckmann Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Sommersemester 2017
2 1. Einführung 1.1 Sprachen und Paradigmen 1.2 Definition von Programmiersprachen 1.3 Implementierung von Programmiersprachen 1.4 Beispiele für semantische Fragen 1.5 Einführung in die formale Semantik von Programmiersprachen 1.1 Sprachen und Paradigmen 2/41
3 Sprachen Sprache ist ein sich stets weiterentwickelndes, komplexes System von Lauten und Zeichen zum Zwecke der Kommunikation. Jedem Zeichen des Systems wird eine feststehende Bedeutung zugeordnet. Sprache wirkt im Prozess der Kommunikation als Medium zwischen dem Sender (Sprecher, Schreiber) und Empfänger (Hörer, Leser). Es werden natürliche und künstliche Sprachen unterschieden. aus Basiswissen Deutsch, Dudenverlag 1.1 Sprachen und Paradigmen 3/41
4 Natürliche, künstliche und formale Sprachen Natürliche Sprachen sind historisch gewachsen. Hierzu zählen z. B. Deutsch, Englisch und Französisch. Sie sind Ausdruck menschlichen Denkens, Fühlens und Wollens und weisen im Unterschied zu künstlichen Sprachen Mehrdeutigkeiten auf. Künstliche Sprachen sind Zeichensysteme, die der Verständigung in einem eng begrenzten Fachgebiet dienen, zum Beispiel Programmiersprachen. Sprachen wie Esperanto sind ebenfalls künstliche Sprachen, die sich durch leichtere Schreibung und Grammatik gegenüber natürlichen Sprachen auszeichnen. Formale Sprachen sind künstliche Sprachen, die mithilfe mathematischer Methoden definiert sind. 1.1 Sprachen und Paradigmen 4/41
5 Sprachen der Informatik Um Sachverhalte mit Rechensystemen zu behandeln, müssen sie in eindeutigen also künstlichen Sprachen beschrieben werden. Einige Beispiele sollen dies verdeutlichen: Algorithmen: Programmiersprachen (Java) Dokumente: Markup-Sprachen (Html, XML), Seitenbeschreibungssprachen (Postscript) Modelle, Systeme: Modellierungssprachen (UML), Spezifikationssprachen (Z) Datenbanken: Anfragesprachen (SQL) Mathematische Objekte: Symbolische Sprachen (Maple) Abläufe: Simulationssprachen (GPSS) 1.1 Sprachen und Paradigmen 5/41
6 Sprachen der Informatik In der Informatik hat man es mit einer Vielzahl von künstlichen Sprachen zu tun. Sie alle beschreiben Sachverhalte in einem relativ kleinen Kontext, dafür aber (hoffentlich) präzise, widerspruchsfrei und vollständig. 1.1 Sprachen und Paradigmen 6/41
7 Paradigmen höherer Programmiersprachen Jeder Programmiersprache liegt ein bestimmtes Denkschema zugrunde. Auf der Basis dieser Konzepte unterteilt man die höheren Programmiersprachen in folgende Kategorien: Imperative Programmiersprachen, Funktionale (applikative) Programmiersprachen, Prädikative (deduktive, logische) Programmiersprachen, Objektorientierte Programmiersprachen. 1.1 Sprachen und Paradigmen 7/41
8 Imperative Programmiersprachen Bei diesen Sprachen besteht ein Programm aus einer Folge aus Befehlen an den Rechner. Wesentlich ist das Variablenkonzept. Variable können verschiedene Werte annehmen. Die Menge aller Variablen und ihrer Werte sowie der Programmzähler beschreiben den Zustand zu einem bestimmten Zeitpunkt. Die Ausführung eines Programms bewirkt eine Zustandstransformation. 1.1 Sprachen und Paradigmen 8/41
9 Funktionale Programmiersprachen Bei diesen Sprachen berechnen Programme Funktionen, die Eingabedaten auf Ausgabedaten abbilden. Ein funktionales Programm beschreibt die Beziehungen zwischen Ein- und Ausgabe mithilfe mathematischer Gleichungen. Ausgehend von elementaren Ausdrücken werden die Beziehungen durch Ausdrücke steigender Komplexität festgelegt. Das wichtigste Konstruktionsprinzip ist hierbei die Rekursion. Außerdem spielen Funktionen höherer Ordnung, sogenannte Funktionale, eine wichtige Rolle. 1.1 Sprachen und Paradigmen 9/41
10 Prädikative Programmiersprachen Bei diesen Sprachen wird Programmierung als Beweisen in einem System von Tatsachen und Schlussfolgerungen aufgefasst. Der Anwender gibt eine Menge von Fakten und Regeln vor. Die Aufgabe des Rechners ist es festzustellen, ob eine eingegebene Tatsache zutrifft oder nicht. Alternativ können alle Fakten, die bestimmte Kriterien erfüllen, ermittelt werden. Die Fakten werden durch Prädikate formuliert, den Schlussfolgerungen liegt ein logischer Kalkül zugrunde. 1.1 Sprachen und Paradigmen 10/41
11 Objektorientierte Programmiersprachen Bei diesen Sprachen werden alle zum Lösen eines Problems notwendigen Informationen als Objekte aufgefasst. Objekte besitzen Eigenschaften, die als Attribute bezeichnet werden. Objekte können durch Nachrichten an andere Objekte Informationen austauschen. Dieser Vorgang kann zum Beispiel durch Aufruf von Methoden realisiert werden. Gleichartige Objekte werden durch Klassen beschrieben. Von jeder Klasse können Objekte gemäß der Beschreibung erstellt und über die Methoden manipuliert werden. Klassen können untereinander in vielfältigen Beziehungen stehen. 1.1 Sprachen und Paradigmen 11/41
12 Paradigmen höherer Programmiersprachen Aus einer übergeordneten Sichtweise werden die folgenden Kategorien unterschieden: Prozedurale Programmiersprachen: Es wird exakt angegeben, wie die Lösung eines Problems ermittelt werden kann. Imperative Programmiersprachen fallen in diese Kategorie. Deklarative Programmiersprachen: Im Gegensatz zum prozeduralen Paradigma fragt man in der deklarativen Programmierung danach, was berechnet werden soll. Es wird also nicht der Lösungsweg programmiert, sondern angegeben, welches Ergebnis gewünscht ist. Deklarative Paradigmen beruhen auf mathematischen, rechnerunabhängigen Theorien. Beispiele hierfür sind prädikative und bis zu einem gewissen Grade auch funktionale Programmiersprachen. 1.1 Sprachen und Paradigmen 12/41
13 Entwicklung der Programmiersprachen Edsger W. Dijkstra: Jeder Programmierer weiß, dass es nur eine einzig wahre Programmiersprache gibt. Jede Woche eine neue. Albrecht Weinert: Java für Ingenieure, 2001, Seite 7: Die Zahl der Programmiersprachen, die die Informatik in den letzten fünfzig Jahren hervorgebracht hat, ist Legion. Ernst zu nehmende Schätzungen sprechen von mehr als Wenn Weinerts Schätzung zutrifft, sind es 7,7 Sprachen pro Woche! 1.1 Sprachen und Paradigmen 13/41
14 Entwicklung der Programmiersprachen JAVA SCHEME Standard C++ OCCAM ADA SMALLTALK80 CSP MODULA2 SCHEME C PROLOG PASCAL LOGO ALGOL68 SIMULA PL/I BASIC COBOL LISP ALGOL FORTRAN Programmiersprachen in der Informatikausbildung Algol Algol68 Modula-2 Scheme Java...? 1.1 Sprachen und Paradigmen 14/41
15 Paradigmen und Programmiersprachen Einige Programmiersprachen: imperativ: Algol, Algol68, Pascal, Ada, C,... funktional: Lisp, Scheme, ML, Haskell,... prädikativ: Prolog objektorientiert: Smalltalk, Eiffel, Java, C++, C#,... In der Regel lassen sich die Sprachen nicht eindeutig einem bestimmten Paradigma zuordnen. Zum Beispiel gibt es in Scheme Variable und Zuweisungen, d. h. imperative Konzepte. Java sollte besser als imperativ-basierte objektorientierte Programmiersprache (hybrides Paradigma) bezeichnet werden. Java 8 geht Schritte in die Richtung, das hybride Paradigma um das funktionale Paradigma zu erweitern. C++ hingegen besitzt einen vollständigen imperativen Kern, während Smalltalk eine strikt objektorientierte Programmiersprache ist. 1.1 Sprachen und Paradigmen 15/41
16 Skriptsprachen Bei Skriptsprachen handelt es sich um übergeordnete Sprachen, um vorhandene Programme oder Prozeduren kontrolliert ablaufen zu lassen. Skriptsprachen haben ihren Ursprung in den Kommandosprachen (Job Control Language, JCL) von Betriebssystemen. Einfache Skriptsprachen sind die Shell-Skripts von Unix. Mächtigere Skriptsprachen sind beispielsweise Perl, PHP, Python oder JavaScript. Skriptsprachen werden in der Regel interpretiert, nicht kompiliert. 1.1 Sprachen und Paradigmen 16/41
17 Datenstrukturen und Typsysteme Programmiersprachen bieten die Möglichkeit, aus elementaren Datenbereichen mithilfe von Konstruktoren komplexe Datenbereiche aufzubauen. Datenbereiche werden häufig Datenstrukturen genannt. Elementare Datenbereiche boolean, char, cardinal, integer, real, enumeration,... Konstruktoren array, record, set, pointer,... Operationen Typäquivalenz, Typanpassung, Typkompabilität,... Alle Aspekte, die die Datenbereiche einer Programmiersprache betreffen, werden als deren Typsystem bezeichnet. 1.1 Sprachen und Paradigmen 17/41
18 Paradigmenübergreifende Konzepte (Auswahl) Die folgende Liste enthält einige paradigmenübergreifende Konzepte. Nicht jeder Punkt ist für jedes Paradigma relevant. Beispielsweise benötigt die prädikative Sprache Prolog keine Ablaufsteuerung. Ablaufsteuerung Unterprogramme, Module, abstrakte Datentypen Ausnahme- und Ereignisbehandlung Annotationen Programmierung randomisierter Algorithmen Programmierung nichtdeterministischer Algorithmen Programmierung paralleler und verteilter Algorithmen GUI-, Echtzeit-, Netzwerk-, Datenbank-,... -programmierung 1.1 Sprachen und Paradigmen 18/41
19 Prinzipien des Sprachentwurfs Effizienz Allgemeingültigkeit Orthogonalität (Kombinierbarkeit unabhängiger Konzepte) Uniformität Einfachheit Ausdruckskraft Genauigkeit Maschinenunabhängigkeit Sicherheit Konsistenz mit anerkannten Konventionen Erweiterbarkeit Einschränkbarkeit 1.1 Sprachen und Paradigmen 19/41
20 1. Einführung 1.1 Sprachen und Paradigmen 1.2 Definition von Programmiersprachen 1.3 Implementierung von Programmiersprachen 1.4 Beispiele für semantische Fragen 1.5 Einführung in die formale Semantik von Programmiersprachen 1.2 Definition von Programmiersprachen 20/41
21 Definition von Programmiersprachen Bestandteile einer Programmiersprache: Lexik, Syntax, Semantik. Die Pragmatik einer Programmiersprache untersucht ihre Anwendbarkeit und Nützlichkeit. Sie gehört nicht zur Definition der Sprache. 1.2 Definition von Programmiersprachen 21/41
22 Lexik Im Lexikon findet man: Lexem (griechisch) das, Sprachwissenschaft: kleinste semantische Einheit, Träger der lexikalischen Bedeutung; das Lexem tritt als Einzelwort (z. B. Wald), als Teil eines Wortes (z. B. wald- in waldig) und als Wortverbindung auf (z. B. Waldbrand). Lexik die, der Wortschatz einer Sprache. Die Lexik einer Programmiersprache bestimmt die textuellen Grundbausteine der Programme. Solche Bausteine sind etwa Schlüsselwörter, Literale und Bezeichner. Sie werden z. B. durch Aufzählung oder reguläre Ausdrücke angegeben. Lexeme einer Programmiersprache können aus mehr als einem Zeichen bestehen. In Programmiersprachen werden Lexeme auch Token genannt. 1.2 Definition von Programmiersprachen 22/41
23 Syntax Die Syntax einer Programmiersprache beschreibt, wie aus den Grundbausteinen vollständige Programme gebildet werden können. In den meisten Fällen wird die Syntax durch eine kontextfreie Grammatik festgelegt. Eine kontextfreie Grammatik G = (V N, V T, P, S) besteht aus einem Nichtterminalalphabet V N, einem Terminalalphabet V T, einer Produktionenmenge P und dem Startsymbol S. Mit L(G) bezeichnen wir die von der kontextfreien Grammatik G erzeugte Sprache. Kontextfreie Grammatiken können durch Syntaxdiagramme grafisch dargestellt werden. 1.2 Definition von Programmiersprachen 23/41
24 Syntax Programmiersprachen sind i. Allg. kontextsensitiv und nicht kontextfrei. Beispielsweise kann durch eine kontextfreie Grammatik nicht ausgedrückt werden, dass jeder Bezeichner vor seiner Benutzung deklariert werden muss. Andere Formalismen, zum Beispiel zweischichtige oder attributierte Grammatiken, ermöglichen es, kontextsensitive Aspekte in die Definition der Syntax einer Programmiersprache einzubeziehen. 1.2 Definition von Programmiersprachen 24/41
25 Semantik Die Bedeutung der syntaktisch korrekten Programme ist durch die Semantik der Sprache gegeben. Sie kann beispielsweise mithilfe von Zuständen definiert werden. Man spricht dann von einer operationellen Semantik. In der denotationalen Semantik werden den syntaktischen Einheiten Funktionen zugeordnet. Hier spielen vollständige Halbordnungen, stetige Abbildungen und Fixpunkte eine wichtige Rolle. Weitere Möglichkeiten sind die axiomatische Semantik (Programmverifikation, Hoare-Kalkül, Spezifikationssprachen) und die algebraische Semantik. 1.2 Definition von Programmiersprachen 25/41
26 Beispiel: Lexik Eine Programmiersprache enthält endlich viele Schlüsselwörter. Sie können durch Aufzählung angegeben werden: while, do, od,... Die Menge der Bezeichner einer Programmiersprache kann zum Beispiel durch die folgenden regulären Ausdrücke definiert werden: Ziffer = {0, 1,..., 9} Buchstabe = {a, b, c,..., y, z} Bezeichner = Buchstabe (Buchstabe Ziffer) 1.2 Definition von Programmiersprachen 26/41
27 Beispiel: Syntax Die folgenden Zeilen enthalten einige Produktionen einer kontextfreien Grammatik G zur Beschreibung einer kleinen Programmiersprache in der sog. Backus-Naur-Form: <Anweisungsfolge> ::= <Anweisung> ; <Anweisungsfolge> <Anweisung> <Anweisung> ::= <Zuweisung> <While-Anweisung>... <Zuweisung> ::= <Bezeichner> := <arithmetischer Ausdruck> <While-Anweisung> ::= while <logischer Ausdruck> do <Anweisungsfolge> od 1.2 Definition von Programmiersprachen 27/41
28 Beispiel: Operationelle Semantik Zunächst werden Zustände z Z definiert. Hierbei kann es sich um die Zustände eines abstrakten Automaten handeln. In unserem Beispiel ist Z = {z z : V Z}, wobei V die Menge aller Variablen ist. Die Semantik ordnet jedem syntaktisch korrektem Programm P L(G) eine partielle Funktion M [P ] : Z p Z als seine Bedeutung zu. Das heißt, M ist eine Abbildung der Form M : L (Z Z). p Die Bedeutung eines Programms ist also eine Zustandstransformation. 1.2 Definition von Programmiersprachen 28/41
29 Beispiel: Algorithmus von Euklid Der folgende in der obigen imperativen Sprache formulierte Algorithmus von Euklid (ca. 300 v. Chr.) berechnet den größten gemeinsamen Teiler der Zahlen x, y N mit x 0 und y > 0: a := x; b := y; while b # 0 do r := a mod b; a := b; b := r od Nach Ausführung des Programmfragments gilt a = ggt(x, y). 1.2 Definition von Programmiersprachen 29/41
30 Beispiel: Algorithmus von Euklid Es seien x = 36 und y = 52: Variable z 0 z 1 z 2 z 5 z 8 z 11 z 14 r a b Das Zeichen bedeutet, dass der Wert dieser Variablen im betreffenden Zustand irrelevant ist. ggt(36, 52) = 4 Durchlaufene Zustände: Es gilt M [P ](z 0 ) = z 14. z 0, z 1, z 2,..., z 14 Z 1.2 Definition von Programmiersprachen 30/41
31 Sprachreport Die Definition einer Programmiersprache erfolgt oft in Form eines sog. Sprachreports. Dieser enthält in der Regel eine kontextfreie Grammatik zur Beschreibung der Lexik und der Syntax. Die Produktionen werden häufig in der Backus-Naur-Form oder einer Varianten davon angegeben. Darüber hinaus werden die Produktionen meistens grafisch in der Form eines Syntaxdiagramms veranschaulicht. Die Semantik wird in der Regel informell, in einigen Fällen auch halbformal oder sogar formal definiert. 1.2 Definition von Programmiersprachen 31/41
32 1. Einführung 1.1 Sprachen und Paradigmen 1.2 Definition von Programmiersprachen 1.3 Implementierung von Programmiersprachen 1.4 Beispiele für semantische Fragen 1.5 Einführung in die formale Semantik von Programmiersprachen 1.3 Implementierung von Programmiersprachen 32/41
33 Klassifikation der Programmiersprachen Die Programmiersprachen lassen sich grob in drei Klassen einteilen: Maschinensprachen Bits und Bytes, für den menschlichen Leser kaum verständlich Maschinenorientierte Sprachen (Assembler) stellen die Befehle in einem Mnemo-Code dar ADDIC 23, R0 STO R0, #12004 Problemorientierte Sprachen imperative, funktionale, objektorientierte, logische Sprachen, Spezialsprachen Ein Computer versteht nur Maschinensprachen! 1.3 Implementierung von Programmiersprachen 33/41
34 Implementierung von Programmiersprachen Compiler übersetzen Quellprogramme aus problemorientierten Sprachen in äquivalente Zielprogramme in Maschinensprachen: cc -o prog prog.c prog input output Interpreter lesen das Programm zusammen mit den Eingabedaten ein und führen es aus: scm prog.scm input output Mischverfahren übersetzen das Programm zunächst mit einem Compiler in eine Zwischensprache. Das übersetzte Programm wird anschließend interpretiert: javac prog.java java prog input output 1.3 Implementierung von Programmiersprachen 34/41
35 Implementierung von Programmiersprachen Interpreter müssen das Programm bei jedem Lauf erneut analysieren. Dies bedeutet einen gewissen Effizienzverlust. Typisch, aber nicht zwingend: Compiler: C Interpreter: Scheme Mischverfahren: Java Näheres zu Aufbau und Arbeitsweise dieser Programme erfahren Sie in den Veranstaltungen Compiler I, Compiler II sowie im Compilerbaupraktikum. 1.3 Implementierung von Programmiersprachen 35/41
36 Verarbeitung von Java-Programmen java VM für Windows Java Quellprogramm javac Java Bytecode java VM für Linux Zuerst wird ein Quellprogramm vom Compiler in Bytecode übersetzt. Im zweiten Schritt wird der Bytecode vom Interpreter ausgeführt. Der Bytecode kann als Maschinencode der sogenannten virtuellen Java-Maschine (JVM) angesehen werden. Bytecode ist portabel. Der Compiler ist maschinenunabhängig, der Interpreter muss für jede Plattform neu entwickelt werden. 1.3 Implementierung von Programmiersprachen 36/41
37 Verarbeitung von Java-Programmen Interpretierter Code ist langsamer in der Ausführung als kompilierter Code, selbst wenn dieser als Bytecode vorliegt. Prinzipiell können Java-Programme auch in Maschinensprache übersetzt werden. Dann geht allerdings die Portierbarkeit verloren. Eine Alternativlösung bieten Just-in-Time-Compiler (JIT). Ein JIT ist ein Programm, das den Bytecode einzelner Methoden während der Ausführung in Maschinencode der jeweiligen Plattform übersetzt. So kann die Methode beim nächsten Aufruf deutlich schneller ausgeführt werden. Vorteilhaft ist, dass der Bytecode nicht verändert wird und damit das übersetzte Programm portabel bleibt. 1.3 Implementierung von Programmiersprachen 37/41
38 1. Einführung 1.1 Sprachen und Paradigmen 1.2 Definition von Programmiersprachen 1.3 Implementierung von Programmiersprachen 1.4 Beispiele für semantische Fragen 1.5 Einführung in die formale Semantik von Programmiersprachen 1.4 Beispiele für semantische Fragen 38/41
39 Beispiele für semantische Fragen Diese Beispiele sehen wir uns jetzt an. 1.4 Beispiele für semantische Fragen 39/41
40 1. Einführung 1.1 Sprachen und Paradigmen 1.2 Definition von Programmiersprachen 1.3 Implementierung von Programmiersprachen 1.4 Beispiele für semantische Fragen 1.5 Einführung in die formale Semantik von Programmiersprachen 1.5 Einführung in die formale Semantik von Programmiersprachen 40/41
41 Einführung in die formale Semantik von Programmiersprachen Wir sehen uns jetzt zuerst grundlegende Begriffe der Semantik von Programmiersprachen an. 1.5 Einführung in die formale Semantik von Programmiersprachen 41/41
Semantik von Programmiersprachen
Semantik von Programmiersprachen 1. Einführung Werner Struckmann Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Sommersemester 2013 1. Einführung 1.1 Sprachen und
MehrProgrammieren für Fortgeschrittene
Programmieren für Fortgeschrittene 1. Einführung Werner Struckmann Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Wintersemester 2016/2017 1. Einführung 1.1 Sprachen
MehrProgrammieren für Fortgeschrittene
Programmieren für Fortgeschrittene 1. Einführung Werner Struckmann Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Wintersemester 2013/2014 1. Einführung 1.1 Sprachen
Mehr1. 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 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Mehr1. 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 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Werner Struckmann Wintersemester 2005/06 1. Der Algorithmenbegriff 1.1 Der intuitive Algorithmenbegriff 1.2 Ein Beispiel: Sortieren durch Einfügen 1.3 Programmiersprachen:
MehrSemantik von Programmiersprachen
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 14. Juli 2017 Semantik von Programmiersprachen Übersicht Art der Veranstaltung: Vorlesung mit
Mehrn 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -
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
MehrIII.1 Prinzipien der funktionalen Programmierung - 1 -
1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung
Mehr1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog. IV.1 Grundkonzepte der logischen Programmierung - 1 -
1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 - Übersicht Imperative Sprachen Deklarative Sprachen Folge von
Mehrn 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 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 - Übersicht Imperative Sprachen Deklarative Sprachen l
Mehr2. JAVA-Programmierung. Informatik II für Verkehrsingenieure
2. JAVA-Programmierung Informatik II für Verkehrsingenieure Problem-Algorithmus-Umsetzung Problemstellung Algorithmus Umsetzung 2 Beispiele für Algorithmen 3 Definitionsversuch Algorithmus Anleitung, wie
MehrInhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms.
Inhalt Algorithmus Euklidscher Algorithmus Sortieren Programmiersprachen Entwicklungsschritte eines Programms Algorithmen 1 Algorithmus Eindeutige Beschreibung eines allgemeinen Verfahrens unter Verwendung
MehrAlgorithmus und Programm: Vom Algorithmus zum Programm
Algorithmus und Programm: Vom Algorithmus zum Programm 1.1 Vom Algorithmus zum Programm 1.2 Programmiersprachen 1.3 Korrektheit, Komplexität und Entscheidbarkeit 1.4 Software-Grundlagen 1.1 Vom Algorithmus
MehrEinführung in die Programmierung
Einleitung Gliederung Einführung in die Programmierung Wintersemester 2017/18 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering
MehrGliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung
Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung
MehrDefinitionen/Vorarbeit zum Thema Java
Definitionen/Vorarbeit zum Thema Java Programmiersprachen: System von Wörtern und Symbolen, die zur Formulierung von Programmen für die elektronische Datenverarbeitung verwendet werden. Arten: z.b. Javascript
MehrKapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren
Kapitel 1: Einleitung Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Gliederung Zum Begriff Informatik
MehrInfo B VL 1: Einführung p.1
Info B VL 1: Einführung Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 1: Einführung p.1 Programmier-Paradigmen
MehrEinführung in die Programmierung
Einleitung Gliederung Einführung in die Programmierung Wintersemester 08/09 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering
MehrEIGENSCHAFTEN VON SPRACHEN
Vorlesung und Übung Universität Paderborn Wintersemester 2016/2017 Dr. Peter Pfahler EIGENSCHAFTEN VON SPRACHEN EWS, WS 2016/17, Pfahler C-1 Einführung Sprachen in der Informatik werden für bestimmte Zwecke
MehrProgrammiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen
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
MehrParadigmen zur Algorithmenbeschreibung
Paradigmen zur Algorithmenbeschreibung In einem objektorientierten Algorithmus werden Datenstrukturen und Methoden zu einer Klasse zusammengefasst. Von jeder Klasse können Objekte gemäß der Datenstruktur
MehrEs gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus.
1 Einführung Programmiersprachen: Ermöglichen formale Beschreibung von Problemlösungsverfahren, die auf einem Computer oder Computersystemen ausführbar sind. Bilden die Basis zur Entwicklung von Software
MehrAlgorithmus und Programm: Vom Algorithmus zum Programm
Algorithmus und Programm: Vom Algorithmus zum Programm 1.1 Vom Algorithmus zum Programm 1.2 Programmiersprachen 1.3 Korrektheit, Komplexität und Entscheidbarkeit 1.4 Software-Grundlagen 1.1 Vom Algorithmus
MehrEinführung in die Programmierung Wintersemester 2016/17
Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Einleitung Gliederung Zum Begriff Informatik Zum
Mehr1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Ein Zitat zu Beginn Vor der Wahl, ein theoretischer Physiker oder ein Programmierer
MehrProgrammiersprache. Emily & rica
Programmiersprache Emily & rica inhaltsangabe Programmiersprache Def inition/funktion Arten Gängige Algorithmus/Syntax Compiler, Interpreter Def inition Unterscheidung Vor- und Nachteile Compiler/ Interpreter
Mehr1.3 Geschichte der Programmiersprachen
50er Jahre erste Definition höherer Programmiersprachen Effizienz maßgebliches Designziel FORTRAN (Backus) als Sprache für wissenschaftliches Rechnen (komplexe Berechnungen, einfachen Daten), Arrays, Schleifen,
MehrInformatik Vorkurs Sommersemester 2015
Informatik Vorkurs Sommersemester 2015 Vom Algorithmus zum Programm Werner Struckmann / Marvin Priedigkeit, Stephan Mielke 31. März 10. April 2015 Kann ein Computer rechnen? Ist das Programm korrekt? Wiederholung:
MehrEinführung in die Informatik I (autip)
Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
MehrHöhere Programmiersprachen
Höhere Programmiersprachen Prof. Dr. Dr. h.c. Gerhard Goos Dipl.-Inform. Sebastian Hack (ggoos hack)@ipd.info.uni-karlsruhe.de Institut für Programmstrukturen und Datenorganisation Universität Karlsruhe
MehrEinführung: Vom Algorithmus zum Programm
Einführung: Vom Algorithmus zum Programm 1.1 Vom Algorithmus zum Programm 1.2 Programmiersprachen 1.3 Korrektheit, Komplexität und Entscheidbarkeit 1.4 Hard- und Software-Grundlagen 1.1 Vom Algorithmus
MehrEinführung in die Informatik. Programming Languages
Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
MehrProgrammierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen
Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2005 1-1 Inhalt (1) Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke 4. Ablaufsteuerung (Kontrollstrukturen)
MehrProgrammierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen
Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2005 1-1 Inhalt (1) Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke 4. Ablaufsteuerung (Kontrollstrukturen)
Mehr1 Programmiersprachen 1.1 1
1 Programmiersprachen 1.1 1 Meilensteine imperativer Programmiersprachen (teilweise objektorientiert) Fortran 1960 Cobol Algol 60 PL/I Algol W Simula 67 Algol 68 1970 Pascal C Smalltalk Modula 1980 Ada
MehrAllgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>
Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include int main() { printf( hello world\n ); return 0; } Peter Sobe 1 Verschiedene Sprachkonzepte
MehrVon der Chomsky-Hierarchie
Von der Chomsky-Hierarchie zur Backus-Naur-Form Ein Beitrag der Theoretischen Informatik zum Siegeszug des Computers Referat von Helmut Schnitzspan Im Rahmen des Seminars Von der EDV zu Facebook Alexander
MehrParadigmen zur Algorithmenbeschreibung
Paradigmen zur Algorithmenbeschreibung In einem objektorientierten Algorithmus werden Datenstrukturen und Methoden zu einer Klasse zusammengefasst. Von jeder Klasse können Objekte gemäß der Datenstruktur
MehrProgrammieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff
Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrProgrammierkurs II. C und Assembler
Programmierkurs II C und Assembler Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2003 1-1 Inhalt Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke
MehrInhalte des Moduls Programmieren 1
Inhalte des Moduls Programmieren 1 Einführung: Algorithmus und Programm, Programmiersprache Erste Schritte in Java Grundlagen der Sprache: Datentypen, Ausdrücke und Anweisungen, imperative Programmierung
MehrProgrammiersprachen: Klassifizierung und Methoden. Programmier-Paradigmen. Grundlagen der Programmierung 2 (1.C) - 1 -
Programmiersprachen: Klassifizierung und Methoden Programmier-Paradigmen Grundlagen der Programmierung 2 (1.C) - 1 - Programmiersprachen: Begriffe Syntax Beschreibung der Programme als Texte let xyz =
MehrComputergrundlagen Programmiersprachen, Interpreter, Compiler, Linker
Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Was sind Programme? In dieser Vorlesung: Python,
MehrWerkzeuge zur Programmentwicklung
Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul
MehrSprachen und Programmiersprachen
Sprachen und Programmiersprachen Natürliche Sprachen versus Programmiersprachen / Spezifikationssprachen Syntax legt die grammatikalische Korrektheit fest. Semantik legt die Bedeutung von syntaktisch korrekten
MehrAusblick: Entwurfsmuster (Design Pattern) 12.1 Entwurfsmuster (Design Pattern) 12.2 Programmierparadigmen und -sprachen und Veranstaltungen
Ausblick: Entwurfsmuster (Design Pattern) 12.1 Entwurfsmuster (Design Pattern) 12.2 Programmierparadigmen und -sprachen und Veranstaltungen 12.1 Entwurfsmuster (Design Pattern) 12-1 Entwurfsmuster (Design
Mehr2. Einführung. Informatik II für Verkehrsingenieure
2. Einführung Informatik II für Verkehrsingenieure Überblick ZIEL DER EINFÜHRUNG Was ist Informatik Historische Entwicklung von Programmiersprachen 2 Was ist Informatik? 3 Was ist Informatik? FRANZÖSISCH
MehrFunktionale Programmiersprachen
Funktionale Programmiersprachen An den Beispielen Haskell und Erlang Übersicht Programmiersprachen λ-kalkül Syntax, Definitionen Besonderheiten von funktionalen Programmiersprache, bzw. Haskell Objektorientierte
MehrEinführung in die Informatik. Programming Languages
Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Cyrill Stachniss 1/15 Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens
MehrLösungsvorschlag Serie 2 Rekursion
(/) Lösungsvorschlag Serie Rekursion. Algorithmen-Paradigmen Es gibt verschiedene Algorithmen-Paradigmen, also grundsätzliche Arten, wie man einen Algorithmus formulieren kann. Im funktionalen Paradigma
MehrComputergrundlagen Programmiersprachen, Interpreter, Compiler, Linker
Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Was sind Programme? In dieser Vorlesung: Python,
MehrEinführung in die Informatik
Einführung in die Informatik Klaus Knopper 09.11.2004 Inhaltsverzeichnis Programmiersprachen Eine Programmiersprache ist eine formale Sprache zur Darstellung (Notation) von Computerprogrammen. Sie vermittelt
MehrEinführung in die Programmierung mit VBA
Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen
MehrObjektorientierte Programmierung. Kapitel 3: Syntaxdiagramme
Stefan Brass: OOP (Java), 3. 1/31 Objektorientierte Programmierung Kapitel 3: Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/
MehrKapitel 5: Syntaxdiagramme und Grammatikregeln
5. Syntaxdiagramme und Grammatikregeln 5-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 5: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Lehrstuhl Prof. Plödereder Eduard Wiebe Institut für Softwaretechnologie Abteilung Programmiersprachen und Übersetzerbau Sommersemester 2007 Programm-Ausführung Programmiersprachen
MehrEinführung in die Programmiertechnik
Einführung in die Programmiertechnik Formale Beschreibung von Programmiersprachen Lexikalische Regeln Definition von Wörtern (Lexem, Token) Gruppierung von Zeichen Lexikalische Kategorien: Klassen ähnlicher
MehrProgrammieren lernen mit Perl
Xpert.press Programmieren lernen mit Perl Bearbeitet von Joachim Ziegler 1. Auflage 2002. Buch. XIV, 400 S. Hardcover ISBN 978 3 540 42685 1 Format (B x L): 15,5 x 23,5 cm Gewicht: 783 g Weitere Fachgebiete
MehrComputergrundlagen Turingmaschinen und Programmierung
Computergrundlagen Turingmaschinen und Programmierung Jens Smiatek und Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2016/17 Was ist ein Computer? Ein Computer (Rechner oder
Mehr1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi
1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung in
MehrEinführung in die Programmierung mit Java
Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Geschichte der OO-Programmiersprachen Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen, übersetzen und
MehrSyntax von Programmiersprachen
"Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang WS 07/08
MehrSyntax von Programmiersprachen
"Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen
MehrGrundlagen der Informatik II. Teil I: Formale Modelle der Informatik
Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 21. Oktober 2015 Automat versus Computer Ein Automat ist eine Maschine,
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 1. Einführung und Grundbegriffe
1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare
MehrÜbersicht Formale Semantik. Übersicht Axiomatische Semantik. Inhaltsübersicht HPS WS 2003/04. Vorlesung Höhere Programmiersprachen,
Vorlesung Höhere Programmiersprachen, WS 2003/04 Teil 2: Formale Semantik Axiomatische Semantik Inhaltsübersicht - Grundlagen (1,2) - Konzepte imperativer Programmiersprachen (2,3) - Deklarative Programmiersprachen
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrInformatik-Seminar. Auftakt. Informatik. Grundlagen
Informatik-Seminar Auftakt Informatik Grundlagen Vorstellung M. Sc. Jan Christoph Peters 27 Jahre alt Promotionsstudent an der TU Kaiserslautern wohne derzeit auch in KL Kontakt: j_peters10@cs.uni-kl.de
Mehr1 Funktionale vs. Imperative Programmierung
1 Funktionale vs. Imperative Programmierung 1.1 Einführung Programme einer funktionalen Programmiersprache (functional programming language, FPL) bestehen ausschließlich aus Funktionsdefinitionen und Funktionsaufrufen.
MehrDas diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen
Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser
MehrKapitel 2. Methoden zur Beschreibung von Syntax
1 Kapitel 2 Methoden zur Beschreibung von Syntax Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt 2 Ziele Zwei Standards zur Definition der Syntax von
MehrInhalt. Einführung in die Strukturierte Programmierung 15
Inhalt Einführung in die Strukturierte Programmierung 15 1.1 Was bedeutet Programmieren? 17 1.2 Was bedeutet Strukturierte Programmierung? 18 1.3 Was ist Pascal? 19 1.4 Was ist PS/k? 20 1.5 Warum wird
Mehr1 Einleitung. 1.1 Höhere Programmiersprachen
1 Einleitung 1.1 Höhere Programmiersprachen Programme werden heute zumeist in sogenannten problemorientierten, höheren Programmiersprachen geschrieben. Diese Programmiersprachen abstrahieren (in verschiedenem
MehrAlgorithmus Beispiele: Algorithmen als Programme Sind Programme korrekt? Gibt es Algorithmen? FAZIT
Algorithmusbegriff Ein Algorithmus ist eine Berechnungsvorschrift. Die Aufgabe, die der Algorithmus lösen soll, wird durch eine Spezifikation festgelegt. Die Berechnungsvorschrift wird durch einen endlichen
MehrKonzepte von Programmiersprachen
Konzepte von Programmiersprachen 1. Einführung Ziele der Vorlesung: Entwurfsalternativen von Programmiersprachen erkunden deklarative Programmierung am Beispiel von Haskell erlernen Programmiertechniken
MehrZiele der Vorlesung: Entwurfsalternativen von Programmiersprachen erkunden Deklarative Programmierung am Beispiel von Haskell erlernen
Konzepte von Programmiersprachen 1. Einführung Ziele der Vorlesung: Entwurfsalternativen von Programmiersprachen erkunden Deklarative Programmierung am Beispiel von Haskell erlernen Programmiertechniken
MehrCompilerbau für die Common Language Run-Time
Compilerbau für die Common Language Run-Time Syntax und Semantik von Programmiersprachen 2 Compilerbau Sprachbeschreibung vs. Implementierung Beschreibung: formale oder informale (engl.) Lexik, Syntax,
MehrGrundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
MehrProgrammieren in Haskell Einführung
Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 17.10.2008 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:
Mehr5.1 Algorithmen Der Algorithmenbegriff
5.1 Algorithmen 5.1.1 Der Algorithmenbegriff Duden: Algorithmus nach einem bestimmten Schema ablaufender Rechenvorgang Brockhaus: Algorithmus systematisches Rechenverfahren, das zu einer Eingabe nach endlich
MehrGrammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen
Grammatiken Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken eignen sich besonders zur Modellierung beliebig tief geschachtelter,
Mehr