2 Logikprogrammierung am Beispiel Prolog

Größe: px
Ab Seite anzeigen:

Download "2 Logikprogrammierung am Beispiel Prolog"

Transkript

1 2 Logikprogrammierung am Beispiel Prolog 2.1 Logikprogrammierung mit einfachen Daten 2.2 Variablenumbenennung 2.3 Syntax 2.4 Komplexe Daten 2.5 Der Cut 2.6 Negation als Fehlschlag 2.7 Literaturhinweise 2.8 Übungsaufgaben 2 Logikprogrammierung am Beispiel Prolog 1

2 2.1 Logikprogrammierung mit einfachen Daten maennlich(paul). maennlich(fritz). maennlich(steffen). weiblich(karin). weiblich(lisa). weiblich(maria). weiblich(sina). vater(steffen, paul). vater(fritz, karin). vater(steffen, lisa). vater(paul, maria). mutter(karin, maria). mutter(sina, paul). % Paul ist männlich % Fritz ist männlich % Steffen ist männlich % Karin ist weiblich % Lisa ist weiblich % Maria ist weiblich % Sina ist weiblich % Steffen ist der Vater von Paul % Fritz ist der Vater von Karin % Steffen ist der Vater von Lisa % Paul ist der Vater von Maria % Karin ist die Mutter von Maria % Sina ist die Mutter von Paul tochter(y, X) : vater(x, Y), weiblich(y). 2 Logikprogrammierung am Beispiel Prolog 2

3 2.1.7 Rekursiv definierte Prädikate - Motivation Eltern und weitere Vorfahren elternteil(e, Kind) : vater(e, Kind). elternteil(e, Kind) : mutter(e, Kind). vorfahre(alt, Jung) : elternteil(alt, Jung). % Eltern vorfahre(alt, Jung) : elternteil(alt, X), % Großeltern elternteil(x, Jung). vorfahre(alt, Jung) : elternteil(alt, X), % Urgroßeltern elternteil(x, Y), elternteil(y, Jung) Logikprogrammierung am Beispiel Prolog 3

4 Ein rekursiv definiertes Prädikat Eltern und weitere Vorfahren elternteil(e, Kind) : vater(e, Kind). elternteil(e, Kind) : mutter(e, Kind). vorfahre(alt, Jung) : elternteil(alt, Jung). vorfahre(alt, Jung) : elternteil(alt, X), vorfahre(x, Jung). Die Reihenfolge der Teilziele ist wichtig! vorfahre1(alt, Jung) : elternteil(alt, Jung). vorfahre1(alt, Jung) : vorfahre1(x, Jung), elternteil(alt, X). 2 Logikprogrammierung am Beispiel Prolog 4

5 Variablenumbenennung Geltungsbereich einer Variablen: vorfahre(alt, Jung) : elternteil(alt, Jung). vorfahre(alt, Jung) : elternteil(alt, X), vorfahre(x, Jung). Indizierung X i bzw. i. 2 Logikprogrammierung am Beispiel Prolog 5

6 2.3 Syntax: Terme, Konstantensymbole und Atome Terme sind Konstantensymbole, Variable oder zusammengesetzte Terme. Konstantensymbole sind Atome oder Zahlen. Atome sind Folgen von alphanumerischen Zeichen, die mit einem kleinen Buchstaben beginnen (a, a12, steffen), eine Folge von Sonderzeichen ([ ]) oder eine Folge von Zeichen in einfachen Anführungszeichen ( Schule ist doof ). 2 Logikprogrammierung am Beispiel Prolog 6

7 Syntax: Zahlen, Variable und zusammengesetzte Terme Zahlen sind ganze Zahlen (1, 2) oder reelle Zahlen (1.7, 3.14). Variable sind Folgen von alphanumerischen Zeichen, die mit einem großen Buchstaben oder mit beginnen (X, Y4w 13, G124). Zusammengesetzte Terme sind Zeichenreihen der Form f(t1,..., tn) und bestehen aus einem Funktor f/n und n 1 Termen t1,..., tn. Die Terme t1,..., tn werden auch Argumente genannt. Ein Funktor f/n ist definiert durch seinen Namen f und seine Stelligkeit n. Funktoren mit gleichen Namen aber verschiedenen Stelligkeiten werden als verschieden betrachtet. f(a12, X, 1.7), f(a, f(1.3, [ ])). 2 Logikprogrammierung am Beispiel Prolog 7

8 Syntax: Prolog-Programme Ein Prolog-Programm ist eine Folge von Programmklauseln. Eine Programmklausel ist eine Zeichenreihe der Form t : t1,..., tn. wobei t, t1,..., tn Atome oder zusammengesetzte Terme sind und n 0 ist. t heißt Kopf, t1,..., tn heißt Rumpf der Programmklausel. Wenn n = 0 ist, dann schreiben wir kurz t. Programmklauseln dieser Form heißen Fakten. Programmklauseln, für die n > 0 gilt, heißen Regeln. 2 Logikprogrammierung am Beispiel Prolog 8

9 Syntax: Anfragen bzw. Ziele Eine Anfrage oder Ziel ist eine Zeichenreihe der Form? t1,..., tn. wobei die t1,..., tn Atome oder zusammengesetzte Terme sind und n 0 ist. Die t1,..., tn heißen Teilziele. Wenn n = 0 ist, dann wollen wir von einer leeren Anfrage oder einem leeren Ziel sprechen. Eine leere Anfrage ist immer erfüllt. 2 Logikprogrammierung am Beispiel Prolog 9

10 2.4 Komplexe Daten person(lisa, geb(3, 12, 1910)). person(maria, geb(1, 10, 1990)). person(steffen, geb(4, 5, 1919)). % Lisa wurde am geboren % Maria wurde am geboren % Steffen wurde am geboren rentner(x) : person(x, geb(t, M, J)), % Frauen werden mit weiblich(x), % 60 in den Ruhestand J < % versetzt, rentner(x) : person(x, geb(t, M, J)), % Männer erst maennlich(x), % mit 65 J < Logikprogrammierung am Beispiel Prolog 10

11 2.4.1 Listen Sei [ ] ein Atom und./2 ein Funktor. [ ] ist eine Liste. Wenn K ein Term und R eine Liste ist, dann ist.(k, R) eine Liste. [ ] wird häufig als leere Liste, K als Kopf und R als Rumpf bezeichnet. Abkürzungen:.(t1,.(t2,.(... (tn, t)...))) [t1, t2,..., tn t]..(t1,.(t2., (... (tn, [])...))) [t1, t2,..., tn]. liste([ ]). % [ ] ist eine Liste. liste([kopf Rest]) : liste(rest). % [Kopf Rest] ist eine Liste, % wenn Rest eine Liste ist. 2 Logikprogrammierung am Beispiel Prolog 11

12 2.4.2 Listenoperationen Das Prädikatszeichen member/2: member(x, [X ]). member(x, [ Rest]) : member(x, Rest). Das Prädikatszeichen append/3: append([ ], L, L). append([kopf Rest], L, [Kopf Rest1]) : append(rest, L, Rest1). Das Prädikatszeichen naive reverse/2: naive reverse([ ], [ ]). naive reverse([kopf Rest], X) : naive reverse(rest, Y), append(y, [Kopf], X). 2 Logikprogrammierung am Beispiel Prolog 12

13 2.4.3 Operatoren Ziel: Wir wollen Operatoren auch infix oder postfix schreiben dürfen; Operatoren sollen auch assoziativ sein dürfen. +(2, 5) 2 + 5, +(3, +(5, 7)) Operatordeklaration: : op(500, yfx, +). Einstellige Operatoren: fx Präfix nicht assoziativ fy Präfix rechtsassoziativ xf Postfix nicht assoziativ yf Postfix linksassoziativ Zweistellige Operatoren: xfx Infix nicht assoziativ yfx Infix linksassoziativ xfy Infix rechtsassoziativ Präzedenzzahl: niedere Präzedenzzahl höhere Priorität. 2 Logikprogrammierung am Beispiel Prolog 13

14 2.4.4 Arithmethik Ein Term ist grundinstantiiert, wenn in ihm keine Variablen mehr vorkommen. Der Operator is/2: X is 7 8. Vergleichsoperatoren: 4 12 =:= 100 (60 8) Gleichheit =:= /2 Ungleichheit = \ = /2 Kleiner < /2 Größer > /2 Kleiner oder gleich =< /2 Größer oder gleich >= /2 2 Logikprogrammierung am Beispiel Prolog 14

15 Eine Klassenhierarchie der Prolog-Terme Variablen Atome Terme Konstantensymbole Ganze Zahlen Nicht Variablen Zahlen Zusammengesetzte Terme Gleitkommazahlen 2 Logikprogrammierung am Beispiel Prolog 15

16 2.4.5 Strukturprädikate Typbestimmung var(x) X ist eine Variable. nonvar(x) X ist keine Variable. atomic(x) X ist ein Konstantensymbol. atom(x) X ist ein Atom. number(x) X ist eine Zahl. integer(x) X ist eine ganze Zahl. float(x) X ist eine Gleitkommazahl. compound(x) X ist ein zusammengesetzter Term. Analyse und Synthese von Termen Das Systemprädikatszeichen functor/3: Zugriff auf Funktor. Das Systemprädikatszeichen arg/3: Zugriff auf Argumente. Der Systemoperator =.. /2: Terme Listen. 2 Logikprogrammierung am Beispiel Prolog 16

17 2.4.6 Vergleich von Termen Der Systemoperator = = /2: Syntaktische Gleichheit. Der Systemoperator \ = = /2: Syntaktische Ungleichheit. 2 Logikprogrammierung am Beispiel Prolog 17

18 2.4.7 Unifikation von Termen Ein Unifikationsproblem wird durch zwei Terme s und t beschrieben und ist die Frage, ob es eine Ersetzung (oder Substitution) der in s und t vorkommenden Variablen gibt, so dass die entsprechenden Instanzen von s und t syntaktisch identisch sind. Gibt es eine solche Substitution, dann sind s und t unifizierbar. Der Systemoperator = /2: Unifikation. Unterschied = /2 und = = /2. Zeichenreihen der Form X = a werden Bindung genannt. Eine Menge von Bindungen ist eine Substitution. Eine leere Menge von Bindungen wird leere Substitution genannt. Fehlschlagende Unifikationsprobleme Verschiedene Funktoren: f(x, a) = g(y, a). Verschiedene Stelligkeiten: f(x) = f(x, Y). Occurs Check Problem: X = f(x). 2 Logikprogrammierung am Beispiel Prolog 18

19 Ein Unifikationsalgorithmus ohne Occurs Check unify(x, Y) : var(x), X = Y. unify(x, Y) : nonvar(x), var(y), Y = X. unify(x, Y) : nonvar(x), nonvar(y), X =.. [F L1], Y =.. [F L2], unify list(l1, L2). unify list([ ], [ ]). unify list([x1 L1], [X2 L2]) : unify(x1, X2), unify list(l1, L2). 2 Logikprogrammierung am Beispiel Prolog 19

20 Ein Unifikationsalgorithmus mit Occurs Check unify with occurs check(x, Y) : var(x), var(y), X = Y. unify with occurs check(x, Y) : var(x), nonvar(y), not occurs in(x, Y), X = Y. unify with occurs check(x, Y) : nonvar(x), var(y), not occurs in(y, X), Y = X. unify with occurs check(x, Y) : nonvar(x), nonvar(y), X =.. [F L1], Y =.. [F L2], unify list with occurs check(l1, L2). unify list with occurs check([ ], [ ]). unify list with occurs check([x1 L1], [X2 L2]) : unify with occurs check(x1, X2), unify list with occurs check(l1, L2). not occurs in(x, Y) : var(y), X \ = = Y. not occurs in(x, Y) : nonvar(y), Y =.. [F L], not occurs in list(x, L). not occurs in list(x, [ ]). not occurs in list(x, [Kopf Rest]) : not occurs in(x, Kopf), not occurs in list(x, Rest). 2 Logikprogrammierung am Beispiel Prolog 20

21 2.5 Der Cut Das Systemprädikatszeichen!/0, genannt Cut. max1(x, Y, X) : X >= Y. max1(x, Y, Y) : X < Y. max2(x, Y, X) : X >= Y,!. max2(x, Y, Y) : X < Y,!. max3(x, Y, X) : X >= Y,!. max3(x, Y, Y). max4(x, Y, X) : X >= Y. max4(x, Y, Y). max5(x, Y, Z) : X >= Y,!, Z = X. max5(x, Y, Y). 2 Logikprogrammierung am Beispiel Prolog 21

22 Das Abschneiden von Ästen in einem Ableitungsbaum? max1(7, 5, Z). {X = 7, Y = 5, Z = 7} {X = 7, Y = 5, Z = 5}? 7 >= 5? 5 < 7 e f 2 Logikprogrammierung am Beispiel Prolog 22

23 Rote und grüne Cuts Grüne Cuts: schneiden keine Lösungen ab. Rote Cuts: schneiden Lösungen ab. Setzen Sie einen Cut sobald Sie wissen, dass dies die richtige Programmklausel ist nicht später, aber auch nicht früher. Verzögern Sie Ausgabe-Unifikationen bis nach dem Cut. 2 Logikprogrammierung am Beispiel Prolog 23

24 Die Familiendatenbank maennlich(paul). maennlich(fritz). maennlich(steffen). weiblich(karin). weiblich(lisa). weiblich(maria). weiblich(sina). vater(steffen, paul). vater(fritz, karin). vater(steffen, lisa). vater(paul, maria). mutter(karin, maria). mutter(sina, paul). % Paul ist männlich % Fritz ist männlich % Steffen ist männlich % Karin ist weiblich % Lisa ist weiblich % Maria ist weiblich % Sina ist weiblich % Steffen ist der Vater von Paul % Fritz ist der Vater von Karin % Steffen ist der Vater von Lisa % Paul ist der Vater von Maria % Karin ist die Mutter von Maria % Sina ist die Mutter von Paul 2 Logikprogrammierung am Beispiel Prolog 24

25 2.6 Negation als Fehlschlag Wie können wir in Prolog testen, dass die 1 in der Liste [2,3,4] nicht vorkommt? Der Systemoperator \ + /1. Das Systemprädikatszeichen fail/0. Implementation von \+: \ + X : X,!, fail. \ + X. Negation als Fehlschlag ist keine klassische Negation. cross(x) : \ + train(x). 2 Logikprogrammierung am Beispiel Prolog 25

Einführung in das Programmieren Prolog Sommersemester 2006. Teil 2: Arithmetik. Version 1.0

Einführung in das Programmieren Prolog Sommersemester 2006. Teil 2: Arithmetik. Version 1.0 Einführung in das Programmieren Prolog Sommersemester 2006 Teil 2: Arithmetik Version 1.0 Gliederung der LV Teil 1: Ein motivierendes Beispiel Teil 2: Einführung und Grundkonzepte Syntax, Regeln, Unifikation,

Mehr

Logische Programmierung

Logische Programmierung Logische Programmierung B-82 Deklaratives Programmieren in Prädikatenlogik: Problem beschreiben statt Algorithmus implementieren (idealisiert). Grundlagen: Relationen bzw. Prädikate (statt Funktionen);

Mehr

Binäre Suchbäume (binary search trees, kurz: bst)

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

8. Logische Programmierung. Prolog Sprachkonstrukte: Fakten. Prolog Übersicht

8. Logische Programmierung. Prolog Sprachkonstrukte: Fakten. Prolog Übersicht 8. Logische Programmierung GPS-8-1 Übersicht zur logischen Programmierung GPS-8-2 Themen dieses Kapitels: Deklaratives Programmieren: Problem beschreiben statt Algorithmus implementieren (idealisiert).

Mehr

5 Logische Programmierung

5 Logische Programmierung 5 Logische Programmierung Logik wird als Programmiersprache benutzt Der logische Ansatz zu Programmierung ist (sowie der funktionale) deklarativ; Programme können mit Hilfe zweier abstrakten, maschinen-unabhängigen

Mehr

Prolog = Programmierung in Logik (Roussell, Colmerauer, 1973/74)

Prolog = Programmierung in Logik (Roussell, Colmerauer, 1973/74) Logikprogrammierung Historie: Philosophie / Mathematik Künstliche Intelligenz Praktische Programmiersprache: Prolog = Programmierung in Logik (Roussell, Colmerauer, 1973/74) Grundidee: Ein Programm ist

Mehr

Wissensrepräsentation und -verarbeitung in Logiken. bereinigt Pränex Skolem ( -Eliminierung) Klausel (Menge von Klauseln, Notation ohne Quantoren)

Wissensrepräsentation und -verarbeitung in Logiken. bereinigt Pränex Skolem ( -Eliminierung) Klausel (Menge von Klauseln, Notation ohne Quantoren) Was bisher geschah Wissensrepräsentation und -verarbeitung in Logiken klassische Aussagenlogik klassische Prädikatenlogik: Wiederholung Syntax, Semantik Normalformen: bereinigt Pränex Skolem ( -Eliminierung)

Mehr

Auswahl von Klauseln und Atomen in Prolog

Auswahl von Klauseln und Atomen in Prolog 5.6 Prolog... ist die bekannteste Implementierung einer LP-Sprache; wurde Anfang der 1970er von Alain Colmerauer (Marseille) und Robert Kowalski (Edinburgh) entwickelt. konkretisiert den vorgestellten

Mehr

Listen. bersicht. Zweck. Listen allgemein Listen in Prolog. Programmiertechniken mit Listen. Erstellen von Prolog-Programmen mit Listen

Listen. bersicht. Zweck. Listen allgemein Listen in Prolog. Programmiertechniken mit Listen. Erstellen von Prolog-Programmen mit Listen Listen bersicht Listen allgemein Listen in Prolog Schreibweise Listen als rekursive Datenstruktur Unifikation Programmiertechniken mit Listen Zweck rekursive Suche Abbilden Erstellen von Prolog-Programmen

Mehr

Kopf und Rest einer Liste (head and tail): Trennung durch. Listenkopf: kann mehrere Elemente umfassen

Kopf und Rest einer Liste (head and tail): Trennung durch. Listenkopf: kann mehrere Elemente umfassen Prolog Syntax Liste, Variable [ Term Liste ] Listenelemente: Trennung durch Komma [1, pferd, klaus] Kopf und Rest einer Liste (head and tail): Trennung durch [K R] = [1, pferd, klaus] (K = 1, R = [pferd,

Mehr

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer:

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Formale Sprachen, reguläre und kontextfreie Grammatiken

Formale Sprachen, reguläre und kontextfreie Grammatiken Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache

Mehr

Tiramisu Deklarativ Aus Eigelb, Mascarpone und in Likör und Kaffee getränkten Biskuits hergestellte cremige Süßspeise

Tiramisu Deklarativ Aus Eigelb, Mascarpone und in Likör und Kaffee getränkten Biskuits hergestellte cremige Süßspeise Kapitel 3 Logik-Programmierung 3.1 Einführung Was statt Wie am Beispiel von Tiramisu Folie 145 Tiramisu Deklarativ Aus Eigelb, Mascarpone und in Likör und Kaffee getränkten Biskuits hergestellte cremige

Mehr

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache

Mehr

Logisches Programmieren

Logisches Programmieren Logisches Programmieren Allgemeines zu Prolog: 1. Idee des automatischen Beweisens von Fakten aus einer gegebenen Menge von Axiomen: (Eingeschränktes) Resolutionsprinzip als grundlegende Rechenmethode,

Mehr

6.1 Syntax und Semantik von Constraint-Logikprogrammen

6.1 Syntax und Semantik von Constraint-Logikprogrammen Kapitel 6 Logikprogrammierung mit Constraints Nachdem wir nun sowohl die reine Logikprogrammierung als auch ihre Implementierung in der Sprache Prolog betrachtet haben, wollen wir uns zum Schluss mit einer

Mehr

PROLOG. Eine Einführung. Sven Naumann

PROLOG. Eine Einführung. Sven Naumann PROLOG Eine Einführung Sven Naumann Sommersemester 2007 Inhaltsverzeichnis I Logikprogrammierung 7 1 Grundbegriffe 11 1.1 Prolog und Logikprogrammierung.................. 11 1.2 Terme.................................

Mehr

Programmierkurs Prolog, SS 1998

Programmierkurs Prolog, SS 1998 Programmierkurs Prolog SS 1998 Universität Dortmund LS VIII - Prof. K. Morik Inhalt Vergleiche von Termen Typtests auf Termen Zugriff auf den Termaufbau Zugriff auf Fakten und Regeln All-Solutions Prädikate

Mehr

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes) Prädikatenlogik Man kann den natürlichsprachlichen Satz Die Sonne scheint. in der Prädikatenlogik beispielsweise als logisches Atom scheint(sonne) darstellen. In der Sprache der Prädikatenlogik werden

Mehr

Einführung in PROLOG. Christian Stocker

Einführung in PROLOG. Christian Stocker Einführung in PROLOG Christian Stocker Inhalt Was ist PROLOG? Der PROLOG- Interpreter Welcher Interpreter? SWI-Prolog Syntax Einführung Fakten, Regeln, Anfragen Operatoren Rekursion Listen Cut Funktionsweise

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

Inhalt. SWP Logische Programme. Motivation. Formalisierung. Wissensbasis. Bsp (Bibel)Verwandtschaften. Motivation Sprache LP

Inhalt. SWP Logische Programme. Motivation. Formalisierung. Wissensbasis. Bsp (Bibel)Verwandtschaften. Motivation Sprache LP Inhalt SWP Logische Programme Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Motivation Sprache LP Resolution Unifikation Datenbanken und logische Programme Semantik 2 Motivation Bsp

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Einführung in Prolog. Literatur

Einführung in Prolog. Literatur Einführung in Prolog Literatur Clocksin/Mellish Programming in Prolog Skript aus dem Kurs Max Hadersbeck Skript aus dem Kurs Hans Leiss Bratko Prolog Programming for Artificial Intelligence Prolog Lexikon

Mehr

Logische Programmierung

Logische Programmierung Logische Programmierung Vorlesungsskript Uwe Petermann FB IMN, HTWK Leipzig G.-Freytag-Str. 42, Leipzig Mail: uwe@imn.htwk-leipzig.de WWW: www.imn.htwk-leipzig.de/~uwe 5. Juni 2006 Zur Beachtung: Dieser

Mehr

SWP Logische Programme

SWP Logische Programme SWP Logische Programme Alexander Felfernig, Stephan Gspandl Institut für Softwaretechnologie {alexander.felfernig,sgspandl}@ist.tugraz.at Institute for Software Technology Inhalt Motivation Logische Programme

Mehr

Datenstrukturen DCG Grammatiken. Tutorial I Operationen auf Datenstrukturen II Bäume DCGs und Semantik II

Datenstrukturen DCG Grammatiken. Tutorial I Operationen auf Datenstrukturen II Bäume DCGs und Semantik II Datenstrukturen DCG Grammatiken Tutorial I Operationen auf Datenstrukturen II Bäume DCGs und Semantik II Bäume Repräsentation von Mengen durch binäre Bäume: Eine häufige Anwendung von Listen ist es Mengen

Mehr

Wissensbasierte Systeme/ Expertensysteme. Teil 2

Wissensbasierte Systeme/ Expertensysteme. Teil 2 Wissensbasierte Systeme/ Expertensysteme Teil 2 BiTS, Sommersemester 2004 Dr. Stefan Kooths KOOTHS BiTS: Wissensbasierte Systeme/Expertensysteme Teil 2 1 Gliederung 1. Einführung und Einordnung 2. Entscheidungsunterstützung(ssysteme)

Mehr

Fixpunktsemantik logischer Programme Pascal Hitzler Juli 1997 Kurzuberblick im Rahmen der Vorlesung Einfuhrung in Prolog von T. Cornell im Sommersemester 1997 an der Universitat Tubingen. Beweise sind

Mehr

Wissensbasierte Systeme

Wissensbasierte Systeme WBS4 Slide 1 Wissensbasierte Systeme Vorlesung 4 vom 03.11.2004 Sebastian Iwanowski FH Wedel WBS4 Slide 2 Wissensbasierte Systeme 1. Motivation 2. Prinzipien und Anwendungen 3. Logische Grundlagen 4. Suchstrategien

Mehr

Logik und Mengenlehre. ... wenn man doch nur vernünftig mit Datenbanken umgehen können will?

Logik und Mengenlehre. ... wenn man doch nur vernünftig mit Datenbanken umgehen können will? Mengenlehre und Logik: iederholung Repetitorium: Grundlagen von Mengenlehre und Logik 2002 Prof. Dr. Rainer Manthey Informationssysteme 1 arum??? arum um alles in der elt muss man sich mit herumschlagen,......

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 9: Prädikatenlogik schulz@eprover.org Rückblick 2 Rückblick: Vor- und Nachteile von Aussagenlogik Aussagenlogik ist deklarativ: Syntaxelemente entsprechen

Mehr

y(p F x) gebunden und in den Formeln F xy

y(p F x) gebunden und in den Formeln F xy Wirkungsbereich (Skopus) eines Quantors i bzw. i nennen wir die unmittelbar auf i bzw. i folgende Formel. Wir sagen, eine IV i kommt in einer Formel A gebunden vor, wenn sie unmittelbar auf oder folgt

Mehr

Modellierung und Programmierung

Modellierung und Programmierung Modellierung und Programmierung Dr. Martin Riplinger 24.10.2012 IAM Institut für Angewandte Mathematik Literatur: Internet Skripte Erik Wallacher: Vorlesungsskript Modellierung/Programmierung Gerald Kempfer:

Mehr

1 Aussagenlogische Formeln

1 Aussagenlogische Formeln 1 Aussagenlogische Formeln Aufgabe 1.1 Transformieren Sie die Formel in disjunktive Normalform (DNF). ((:A! :B) ^ D)! ((A _ C) $ (:B ^ D)) Lösung 1.1 Schrittweise Transformation: Schritt 1: ((:A! :B) ^

Mehr

Kapitel 5: Applikative Programmierung

Kapitel 5: Applikative Programmierung Kapitel 5: Applikative Programmierung In der applikativen Programmierung wird ein Programm als eine mathematische Funktion von Eingabe-in Ausgabewerte betrachtet. Das Ausführen eines Programms besteht

Mehr

Entwicklung eines korrekten Übersetzers

Entwicklung eines korrekten Übersetzers Entwicklung eines korrekten Übersetzers für eine funktionale Programmiersprache im Theorembeweiser Coq Thomas Strathmann 14.01.2011 Gliederung 1 Einleitung

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 12: Termersetzungssysteme schulz@eprover.org Reduktionssysteme Definition: Reduktionssystem Ein Reduktionssystem ist ein Tupel (A, ) Dabei gilt: A ist eine

Mehr

SWP Prüfungsvorbereitung

SWP Prüfungsvorbereitung 20. Juni 2011 1 Grammatiken 2 LL(1) 3 EXP 4 Datentypen 5 LP Grammatiken Angabe Erstellen Sie First- und Follow-Mengen aller Non-Terminale der folgenden Grammatik. S a S S B y B A C A A b b A x A ɛ C c

Mehr

4. 4. Algorithmen und Datenstrukturen in deskriptiven Programmiersprachen

4. 4. Algorithmen und Datenstrukturen in deskriptiven Programmiersprachen Kapitel Kapitel 4 Deskriptive Programmierung SS 2008 4. 4. Algorithmen und Datenstrukturen in in deskriptiven Programmiersprachen Deskriptive Programmierung 1 Sprachverarbeitung in in Prolog Prolog Prolog

Mehr

2. Vorlesung. Slide 40

2. Vorlesung. Slide 40 2. Vorlesung Slide 40 Knobelaufgabe Was tut dieses Programm? Informell Formal Wie stellt man dies sicher? knobel(a,b) { Wenn a = 0 dann return b sonst { solange b 0 wenn a > b dann { a := a - b sonst b

Mehr

3 Logikprogrammierung

3 Logikprogrammierung 3 Logikprogrammierung PROLOG ermöglicht deklarative Programmierung kompakte Programme agile Softwareentwicklung, rapid Prototyping Die Auswertungsstrategie der SLDNF Resolution benutzt Tiefensuche Backtracking

Mehr

Prinzipielle Ausführungsvarianten I

Prinzipielle Ausführungsvarianten I Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Unser erstes Java Programm AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 39 Hello World!

Mehr

Aufgaben Theoretische Informatik

Aufgaben Theoretische Informatik Aufgaben Theoretische Informatik Elmar Eder 26. Dezember 2015 Lösungen der Aufgaben bitte abgeben auf dem Abgabesystem von Dominik Kaaser auf https://ti.cosy.sbg.ac.at/ als ASCII- oder UTF-8-Dateien mit

Mehr

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Operatoren? Ein Operator ist eine in die Programmiersprache eingebaute Funktion,

Mehr

3. Logik-Programmierung

3. Logik-Programmierung 3. Logik-Programmierung 3.1. Vorbemerkungen Idee: Ausführen eines Logik-Programms entspricht Herleitung leerer Klausel. Zusätzliche Verwendung einer Antworterzeugungskomponente (liefert Rechenergebnis).

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

1 Syntax von Programmiersprachen

1 Syntax von Programmiersprachen 1 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ): formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmier-Sprache Festlegung, wie Programme

Mehr

Genogramm erstellen Anleitung und Leitfaden

Genogramm erstellen Anleitung und Leitfaden Genogramm erstellen Anleitung und Leitfaden www.ergebnisorientiertes-coaching.de Inhalt WAS IST EIN GENOGRAMM? 3 WIE VIEL GENOGRAMM BRAUCHT EINE AUFSTELLUNG? 3 WER GEHÖRT ALLES IN DAS GENOGRAMM? 4 WELCHE

Mehr

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise:

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise: Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 5.4 Prädikatenlogik mit Gleichheit Resolution 192 Beispiel Bsp.: Betrachte Schlussweise in: 1 Wenn es regnet, dann wird die Straße nass. R N

Mehr

Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung;

Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung; Mehr Prolog Prolog bietet mehr an, z.b.: Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung; Mehr extra-logische Prädikate,

Mehr

Bioinformatik für Biochemiker

Bioinformatik für Biochemiker Bioinformatik für Biochemiker Oliver Kohlbacher, Steffen Schmidt SS 2010 3. Strings, Sequenzen und Python Abt. Simulation biologischer Systeme WSI/ZBIT, Eberhard Karls Universität Tübingen Übersicht Strings

Mehr

1. Erreichen Sie, dass im Feld KdNr (Kunden-Nummer) nur 4-stellige Zahlen eingetragen

1. Erreichen Sie, dass im Feld KdNr (Kunden-Nummer) nur 4-stellige Zahlen eingetragen Diverse Gültigkeitsregeln - Lösungshinweise 1998 Niko Becker Hilfedateien stehen Ihnen auf unserer Homepage Seite ACCESS Infos und Hilfe zur Verfügung 1. Erreichen Sie, dass im Feld KdNr (Kunden-Nummer)

Mehr

Teil IV. Grundlagen der Programmierung

Teil IV. Grundlagen der Programmierung Teil IV Grundlagen der Programmierung Überblick 1 Einleitung zu C und C++ Aufbau von Programmen/Dateien Steueranweisungen Funktionen Mehr zu Datentypen: Felder, Zeiger und Strukturen Arbeit mit Dateien

Mehr

Prädikatenlogik - Micromodels of Software

Prädikatenlogik - Micromodels of Software Prädikatenlogik - Micromodels of Software Philipp Koch Seminar Logik für Informatiker Universität Paderborn Revision: 30. Mai 2005 1 Inhaltsverzeichnis 1 Motivation 3 2 Modelle 3 2.1 Definition eines Modells.......................

Mehr

Modellierung und Programmierung

Modellierung und Programmierung Modellierung und Programmierung Dr. Martin Riplinger 19.12.2012 IAM Institut für Angewandte Mathematik Funktionszeiger: Vorüberlegungen Funktionsaufrufe sind bis jetzt im Code mit Name explizit angegeben

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

Ergänzungen zur Analysis I

Ergänzungen zur Analysis I 537. Ergänzungsstunde Logik, Mengen Ergänzungen zur Analysis I Die Behauptungen in Satz 0.2 über die Verknüpfung von Mengen werden auf die entsprechenden Regelnfür die Verknüpfung von Aussagen zurückgeführt.

Mehr

Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen

Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen Was bisher geschah Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen Syntax: Signatur Semantik: Axiome (FOL-Formeln, meist

Mehr

Proseminar "Grundlagen höherer Programmiersprachen" Wintersemester 2002/03 (Kröger, Rauschmayer) Logikprogrammierung

Proseminar Grundlagen höherer Programmiersprachen Wintersemester 2002/03 (Kröger, Rauschmayer) Logikprogrammierung Proseminar "Grundlagen höherer Programmiersprachen" Wintersemester 2002/03 (Kröger, Rauschmayer) Logikprogrammierung Verfasser: Bettina Hikele 3. Semester Informatik EMail: bettyx@arcor.de Einführung in

Mehr

Grammatiken in Prolog

Grammatiken in Prolog 12. Grammatiken in Prolog 12-1 Grammatiken in Prolog Allgemeines: Gedacht zur Verarbeitung natürlicher Sprache. Dort braucht man kompliziertere Grammatiken als etwa im Compilerbau, andererseits sind die

Mehr

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY. SELECT - Der Grundbefehl zur Auswahl von Daten Die SELECT-Anweisung fragt Daten aus einer Datenbank ab und stellt diese in einer virtuellen Tabelle zur Verfügung. Diese virtuelle Tabelle, eine Menge von

Mehr

Formale Methoden III - Tutorium

Formale Methoden III - Tutorium Formale Methoden III - Tutorium Daniel Jettka 19.06.06 Inhaltsverzeichnis 1. Logische Eigenschaften von Merkmalsstrukturen 1. Logische Eigenschaften von MS Ausgangspunkt: Unterscheidung von: Linguistische

Mehr

Prolog 1. Kapitel: Fakten, Regeln und Anfragen

Prolog 1. Kapitel: Fakten, Regeln und Anfragen Allgemeines Prolog 1. Kapitel: Fakten, Regeln und Anfragen Dozentin: Wiebke Petersen Kursgrundlage: Learn Prolog Now (Blackburn, Bos, Striegnitz) Prolog (aus dem franz. Programming en Logique) ist eine

Mehr

Grundprinzipien der funktionalen Programmierung

Grundprinzipien der funktionalen Programmierung Grundprinzipien der funktionalen Programmierung Funktionen haben keine Seiteneffekte Eine Funktion berechnet einen Ausgabewert der nur von den Eingabewerten abhängt: 12 inputs + output 46 34 2 Nicht nur

Mehr

Aufgaben Logische Programmierung

Aufgaben Logische Programmierung Aufgaben Logische Programmierung Elmar Eder 21. Mai 2015 Die Aufgaben sind auf dem Abgabesystem von Dominik Kaaser bis zu dem dort angegebenen Termin abzugeben. Alle Aufgaben, bei denen nichts gegenteiliges

Mehr

Multimedia Technologie II

Multimedia Technologie II Vorlesung / Übungen Multimedia Technologie II Prof. Dr. Michael Frank / Prof. Dr. Klaus Hering Sommersemester 2004 HTWK Leipzig, FB IMN Für die externe Vorhaltung der DTD werden sämtliche zwischen den

Mehr

Erste Schritte in SWI-Prolog

Erste Schritte in SWI-Prolog Die nachfolgenden Abschnitte sollen ein erster Einstieg in den Umgang mit Prolog sein, der sich explizit auf die in unserer Veranstaltung 'Prolog für Linguisten' verwendete Programmversion (SWI-Prolog

Mehr

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

Mehr

Constraint Logical Programming

Constraint Logical Programming Constraint Logical Programming Betreuer: Thomas Ströder Proseminar: Fortgeschrittene Programmierkonzepte in Java, Haskell und Prolog Rene Niewianda, Martin Breuer 15. Juni 2015 1 Einleitung: Das Ziel dieses

Mehr

Prolog. Vertiefungsmodul Programmiersprachen. VM Programmiersprachen - Prolog. Florian Kleene

Prolog. Vertiefungsmodul Programmiersprachen. VM Programmiersprachen - Prolog. Florian Kleene Prolog Vertiefungsmodul Programmiersprachen VM Programmiersprachen - Prolog Florian Kleene Entstehung und Geschichte Aufbau von Prolog Programmen Fakten Regeln Anfragen Funktionsweise des Interpreters

Mehr

Programmiersprachen 2 (SS 2013)

Programmiersprachen 2 (SS 2013) n Advanced 2 1. Juli 2013 Beispielprogramm pq(x,y) :- p(x,z), q(z,y). p(a,b). p(b,c). p(c,a). 2 q(a,a). q(b,d). Logisch gesehen Die Reihenfolge verändert nicht die logische Aussage p(x,z), q(z,y) äquivalent

Mehr

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3. Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Programmierung in Python

Programmierung in Python Programmierung in Python imperativ, objekt-orientiert dynamische Typisierung rapid prototyping Script-Sprache Funktionales und rekursives Programmieren P raktische Informatik 1, W S 2004/05, F olien P

Mehr

Wissensbasierte Systeme II

Wissensbasierte Systeme II Wissensbasierte Systeme II Peter Becker FH Bonn-Rhein-Sieg Fachbereich Informatik peter.becker@fh-bonn-rhein-sieg.de Vorlesung Wintersemester 2003/04 Sicherer Umgang mit Datenstrukturen und Algorithmen

Mehr

Kurzeinführung in C. Johannes J. Schneider 27.10.2004

Kurzeinführung in C. Johannes J. Schneider 27.10.2004 Kurzeinführung in C Johannes J. Schneider 27.10.2004 1 Einleitung C ist eine in vielen Bereichen sehr häufig verwendete Programmiersprache, die von der Betriebssystemprogrammierung bis hin zur Programmierung

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

Beschreibungslogiken. Daniel Schradick 1schradi@informatik.uni-hamburg.de

Beschreibungslogiken. Daniel Schradick 1schradi@informatik.uni-hamburg.de Beschreibungslogiken Daniel Schradick 1schradi@informatik.uni-hamburg.de Was sind Beschreibungslogiken? Definition: Formalisms that represent knowledge of some problem domain (the world ) by first defining

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

IT-Zertifikat: Allgemeine Informationstechnologien II PHP IT-Zertifikat: Allgemeine Informationstechnologien II PHP PHP ( PHP: Hypertext Preprocessor ) ist eine serverseitige Skriptsprache: Der PHP-Code wird nicht wie bei JavaScript auf dem Clientrechner ausgeführt,

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

JOHANNES BONNEKOH. Analysis. Allgemeine Hochschulreife und Fachabitur

JOHANNES BONNEKOH. Analysis. Allgemeine Hochschulreife und Fachabitur JOHANNES BONNEKOH Analysis Allgemeine Hochschulreife und Fachabitur Vorwort Vorwort Mathematik ist eine Sprache, die uns hilft die Natur und allgemeine naturwissenschaftliche Vorgänge zu beschreiben. Johannes

Mehr

Algorithmen und Datenstrukturen SS09

Algorithmen und Datenstrukturen SS09 Foliensatz 8 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 29 TU Ilmenau Seite / 54 Binärbäume TU Ilmenau Seite 2 / 54 Binäre Bäume Bäume und speziell

Mehr

Erster Kontakt mit Java und Pseudocode

Erster Kontakt mit Java und Pseudocode Erster Kontakt mit Java und Pseudocode CoMa-Übung II TU Berlin 23.10.2013 CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 1 / 27 Themen der Übung 1 Java auf meinem Rechner 2

Mehr

Statistische Thermodynamik I Lösungen zur Serie 1

Statistische Thermodynamik I Lösungen zur Serie 1 Statistische Thermodynamik I Lösungen zur Serie Zufallsvariablen, Wahrscheinlichkeitsverteilungen 4. März 2. Zwei Lektoren lesen ein Buch. Lektor A findet 2 Druckfehler, Lektor B nur 5. Von den gefundenen

Mehr

Erbrecht: Grundzüge und Neuerungen Di., 16. April 2013. Dr. jur. Marie-Theres Frick 1

Erbrecht: Grundzüge und Neuerungen Di., 16. April 2013. Dr. jur. Marie-Theres Frick 1 1 Erbrecht: Grundzüge und Neuerungen Dr. iur. Marie-Theres Frick Frick & Partner Rechtsanwälte AG, Vaduz 2 Themen Gesetzliche Erbfolge Pflichtteilsrecht Was erbt der/die überlebende PartnerIn? Was ist

Mehr

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden mitp Inhaltsverzeichnis Einleitung 19 Grundlagen 21 Entwicklung und Eigenschaften von C++ 22 Objektorientierte Programmierung 24 Erstellen

Mehr

3 Logikprogrammierung

3 Logikprogrammierung 3 Logikprogrammierung PROLOG ermöglicht deklarative Programmierung kompakte Programme agile Softwareentwicklung, rapid Prototyping Die Auswertungsstrategie der SLDNF Resolution benutzt Tiefensuche Backtracking

Mehr

Formale Methoden im Software Engineering

Formale Methoden im Software Engineering Formale Methoden im Software Engineering Eine praktische Einführung Dominik Haneberg, Florian Nafz, Bogdan Tofan 1 Organisatorisches Vorlesung: Mittwoch 12:15 Uhr - 13:45 Uhr (1058 N) Versuche: (Raum 3017

Mehr

Bitte lesen Sie vor der Installation und dem Gebrauch die hier aufgeführten Installationshinweise aufmerksam durch.

Bitte lesen Sie vor der Installation und dem Gebrauch die hier aufgeführten Installationshinweise aufmerksam durch. Seite 1 von 5 Dokumentation für MSA-search_replace Bitte lesen Sie vor der Installation und dem Gebrauch die hier aufgeführten Installationshinweise aufmerksam durch. Systemvoraussetzungen: - WYSIWYG Web

Mehr

Grundlagen der Theoretischen Informatik - Sommersemester 2012. Übungsblatt 1: Lösungsvorschläge

Grundlagen der Theoretischen Informatik - Sommersemester 2012. Übungsblatt 1: Lösungsvorschläge Lehrstuhl für Softwaretechnik und Programmiersprachen Professor Dr. Michael Leuschel Grundlagen der Theoretischen Informatik - Sommersemester 2012 Übungsblatt 1: Lösungsvorschläge Disclaimer: Bei Folgendem

Mehr

Logische und funktionale Programmierung

Logische und funktionale Programmierung Logische und funktionale Programmierung Vorlesung 1: Einführung in Prolog Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 1. Oktober 2015 1/54 ORGANISATORISCHES

Mehr

Sprachen/Grammatiken eine Wiederholung

Sprachen/Grammatiken eine Wiederholung Sprachen/Grammatiken eine Wiederholung Was sind reguläre Sprachen? Eigenschaften regulärer Sprachen Sprachen Begriffe Symbol: unzerlegbare Grundzeichen Alphabet: endliche Menge von Symbolen Zeichenreihe:

Mehr

Aufbau von Programmen/Dateien

Aufbau von Programmen/Dateien Aufbau von Programmen/Dateien Typen von Dateien Header-Dateien (.h): enthalten Deklarationen (auch Signatur, Prototyp, Rumpf) von Funktionen, Variablen, Konstanten und in C++ auch Klassendefinitionen eines

Mehr

Erfüllbarkeit und Allgemeingültigkeit

Erfüllbarkeit und Allgemeingültigkeit Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.3 Aussagenlogik Erfüllbarkeit 44 Erfüllbarkeit und Allgemeingültigkeit Def.: eine Formel ϕ heißt erfüllbar, wennesein I gibt, so dass I = ϕ

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Einheit 1 Mathematische Methodik 1. Problemlösen 2. Beweistechniken 3. Wichtige Grundbegriffe Methodik des Problemlösens Klärung der Voraussetzungen Welche Begriffe sind zum Verständnis

Mehr

L6. Operatoren und Ausdrücke

L6. Operatoren und Ausdrücke L6. Operatoren und Ausdrücke 1. Arithmetische Operatoren: +, -, *, /, %, --, ++ 2. Zuweisung-Operatoren: =, +=, -=, *=, /= 3. Vergleichsoperatoren: =, ==,!= 4. Logische Operatoren:!, &&, 5.

Mehr