Semantik von Programmiersprachen

Ähnliche Dokumente
Grundlagen der Programmierung 2. Operationale Semantik

Übersicht Formale Semantik. Übersicht Axiomatische Semantik. Inhaltsübersicht HPS WS 2003/04. Vorlesung Höhere Programmiersprachen,

Einführung IMP-Syntax Reduktionssemantik Maschinen-Semantik. Teil IV. Semantik imperativer Sprachen

Einführung in die funktionale Programmierung 2

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Semantische Modelle nebenläufiger Programmiersprachen. Einleitung

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 -

Grundlagen der Programmierung 3 A

EIGENSCHAFTEN VON SPRACHEN

Theoretische Informatik I

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

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

Theoretische Informatik I

Einführung Grundbegriffe

Programmierkurs II. C und Assembler

Theoretische Informatik Kap 2: Berechnungstheorie

Grundlagen der Programmierung 3 A

Stackmaschine; Speicheradressierung

Semantik. Semantik von Programmiersprachen. Prof. Tobias Nipkow, Ph. D. Erstellt von Benjamin Gufler. Erstellt mit L A TEX

Kapitel 4: Formale Verifikation

Einführung in die Programmierung

Einführung in die Programmierung

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Einführung in die Programmierung Wintersemester 2016/17

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

Einführung (1/3) Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (1) Vorlesungen zur Komplexitätstheorie.

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme

Semantics of a Call-by-Need Lambda Calculus with McCarthy s amb for Program Equivalence

Operationale Semantik: Haskell

/26

Grundlagen der Programmierung 2 (Comp-A)

Systemtheorie 1. Formale Systeme 1 # WS 2006/2007 Johannes Kepler Universität Linz, Österreich

Compiler; Übersetzungsprogramme. Grundlagen der Programmierung 3 A. Compiler für Programmiersprachen. Phasen eines Compilers

Satz 1.18 (Kompaktheitssatz der Aussagenlogik)

Semantik von Programmiersprachen

Formale Programmverifikation. Referentin: Kirsten Hradek

7. Syntax: Grammatiken, EBNF

Programmiersprachen und Übersetzer

Interdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der Informatik. SS 2016: Grossmann, Jenko

Grundlagen der Programmierung 2 (Comp-A)

Semantik von Programmiersprachen

KV Software Engineering Übungsaufgaben SS 2005

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Formale Verifikation. KV Software Engineering Prof. Dr. Martin Glinz. Kapitel 4. Universität Zürich Institut für Informatik

Theoretische Informatik II

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Praktische Informatik I

1 Funktionale vs. Imperative Programmierung

Semantik von Programmiersprachen

(Prüfungs-)Aufgaben zu formale Sprachen

Semantik von Programmiersprachen

Verifizierende Testverfahren

Vorname Name Matrikelnummer 1. a) Benennen Sie die übrigen 6 Komponenten einer nicht-deterministischen Turingmaschine (TM): (3 Punkte)

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Einführung in die Informatik Algorithms

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.

Logik für Informatiker

Theoretische Informatik I

Inhalte des Moduls Programmieren 1

Konzepte der Programmiersprachen

1 Vom Problem zum Programm

R a i n e r N i e u w e n h u i z e n K a p e l l e n s t r G r e v e n T e l / F a x / e

L 3. L a 3. P a. L a m 3. P a l. L a m a 3. P a l m. P a l m e. P o 4. P o p 4. L a. P o p o 4. L a m. Agnes Klawatsch

S o n n t a g, 2 6. N o v e m b e r

F r e i t a g, 3. J u n i

S o n n t a g, 5. A u g u s t

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri

1 Vom Problem zum Program

Es gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus.

7 Axiomatische Semantik

Theoretische Grundlagen der Informatik

Semantik von Programmiersprachen

Ausdrücke (1) Grundlegende Eigenschaften

Semantik von Programmiersprachen SS 2017

Martin Stiller, Fakultät Informatik, Institut für Technische Informatik. LLVA: Eine virtuelle Befehlssatzarchitektur

Einführung in die Informatik I (autip)

3 Exkurs: Der λ-kalkül

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2007/08. Universität Freiburg, Germany

Theoretische Grundlagen des Software Engineering

Didaktik der Informatik. Abschnitt 4 Lernziele Dr. Nicole Weicker

Korrektheit durch modulare Konstruktion. Wie kann man die Korrektheit reaktiver Systeme gewährleisten?

Formale Systeme Logik: Verifikation von Aussagen über Algorithmen. Ana Sokolova statt Robert Elsässer

5. Die syntaktische Analyse

Wie kann man die Korrektheit reaktiver Systeme gewährleisten?

Korrekte Software: Grundlagen und Methoden Vorlesung 11 vom : Funktionen und Prozeduren

Was bisher geschah Modellierung in Logiken: klassische Prädikatenlogik FOL(Σ, X) Spezialfall klassische Aussagenlogik AL(P)

Stratego/XT und ASF+SDF Meta-Environment. Paul Weder Seminar Transformationen Datum:

Berechenbarkeit und Komplexität Vorlesung 10

Electronic Design Automation (EDA) Systementwurf

Was ist mathematische Logik?

Sudoku. Warum 6? Warum 6?

Transkript:

Semantik von Programmiersprachen Prof. Dr. Manfred Schmidt-Schauß SS 2013 Stand der Folien: 15. April 2013

Semantik von Programmen verschiedene Semantiken: operationale Semantik (Spezifikation eines Interpreters) Auswertungssemantik (Big-Step Semantik) Reduktionssemantik (Small-Step Semantik) abstrakte Maschine denotationale Semantik kontextuelle Semantik axiomatische Semantik (nicht in dieser Vorlesung) transformationsbasierte Semantik (teilweise) Semantik 15. April 2013 M. Schmidt-Schauß 2/6

Semantik von Programmen Zweck einer Semantik formale eindeutige Beschreibung des Verhalten eines Programms bzw Wirkung als Funktion formal zu beschreiben. Basis für korrekte Optimierungen, Programmtransformationen, Basis für Programm-Verifikationen Semantik 15. April 2013 M. Schmidt-Schauß 3/6

Annahmen für Semantiken Programm: eindeutig als Syntaxbaum dargestellt. die gesamte relevante Umgebung ist die Eingabe die veränderte Umgebung am Ende ist die Ausgabe. bei IMP: Umgebung ist die Belegung von Speicherzellen mit Werten. Abarbeitung soll störungsfrei sein, keine zufälligen Fehlfunktionen Die Abarbeitung soll nur durch die Eingabe bestimmt sein: deterministisch oder nichtdeterministisch. Semantik 15. April 2013 M. Schmidt-Schauß 4/6

Falsche Methodik Schlechte und unsystematische Vorgehensweisen und Sichtweisen: Ein (geschriebenes)programm ist ein abkürzende Schreibweise für den zu erzeugenden Maschinenkode. Jeder weiß doch, was gemeint ist informelle Festlegung der Übersetzung jedes Konstruktes variable Festlegungen, die plattform- bzw. compilerabhängig gemacht werden dürfen. Schlechte Konsequenz: ( der (benutzte) Compiler ist die Semantik ) Semantik 15. April 2013 M. Schmidt-Schauß 5/6

Falsche Methodik Schlechte und unsystematische Vorgehensweisen und Sichtweisen: Ein (geschriebenes)programm ist ein abkürzende Schreibweise für den zu erzeugenden Maschinenkode. Jeder weiß doch, was gemeint ist informelle Festlegung der Übersetzung jedes Konstruktes variable Festlegungen, die plattform- bzw. compilerabhängig gemacht werden dürfen. Schlechte Konsequenz: ( der (benutzte) Compiler ist die Semantik ) Semantik 15. April 2013 M. Schmidt-Schauß 5/6

Falsche Methodik Schlechte und unsystematische Vorgehensweisen und Sichtweisen: Ein (geschriebenes)programm ist ein abkürzende Schreibweise für den zu erzeugenden Maschinenkode. Jeder weiß doch, was gemeint ist informelle Festlegung der Übersetzung jedes Konstruktes variable Festlegungen, die plattform- bzw. compilerabhängig gemacht werden dürfen. Schlechte Konsequenz: ( der (benutzte) Compiler ist die Semantik ) Semantik 15. April 2013 M. Schmidt-Schauß 5/6

Falsche Methodik Schlechte und unsystematische Vorgehensweisen und Sichtweisen: Ein (geschriebenes)programm ist ein abkürzende Schreibweise für den zu erzeugenden Maschinenkode. Jeder weiß doch, was gemeint ist informelle Festlegung der Übersetzung jedes Konstruktes variable Festlegungen, die plattform- bzw. compilerabhängig gemacht werden dürfen. Schlechte Konsequenz: ( der (benutzte) Compiler ist die Semantik ) Semantik 15. April 2013 M. Schmidt-Schauß 5/6

Falsche Methodik Schlechte und unsystematische Vorgehensweisen und Sichtweisen: Ein (geschriebenes)programm ist ein abkürzende Schreibweise für den zu erzeugenden Maschinenkode. Jeder weiß doch, was gemeint ist informelle Festlegung der Übersetzung jedes Konstruktes variable Festlegungen, die plattform- bzw. compilerabhängig gemacht werden dürfen. Schlechte Konsequenz: ( der (benutzte) Compiler ist die Semantik ) Semantik 15. April 2013 M. Schmidt-Schauß 5/6

Gute Sichtweise Ein Programm beschreibt ein eigenständiges, maschinenunabhängiges Berechnungsverfahren. vorteilhafte Eigenschaften: Die Bedeutung der Quell-Programmiersprache ist unabhängig von der Zielprogrammiersprache beschreibbar. Idealerweise: Alle Effekte, die ein Programm haben kann, sind durch die Semantik erfasst Ein Kompiler kann (idealerweise) alleine anhand der Semantiken der Quell- und der Zielsprache konstruiert werden Die Korrektheit von vielen Transformationen und Optimierungen kann alleine aufgrund der Semantik der Quellsprache als korrekt nachgewiesen werden. Korrektheit des Übersetzungsprozesses für alle Plattformen / Betriebssysteme/ Prozessoren kann formal gezeigt werden. Semantik 15. April 2013 M. Schmidt-Schauß 6/6