Programmierkurs Prolog, SS 1998

Ähnliche Dokumente
Programmieren in Haskell Debugging

Visual Basic Editor CATIA V5

Programmierkurs Prolog, SS 1998

Kompilieren und Linken

Teil 1: Ein motivierendes Beispiel

Kurzanleitung Eclipse

Debugging mit ddd (Data Display Debugger)

Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch

M I K R O P R O Z E SS O R P R A K T I K U M SS2018. Termin1. C-Programmierung für eingebettete Systeme

Eclipse kann kostenlos unter dem folgenden Link herunter geladen werden:

Visual Basic Express Debugging

Prolog 2. Kapitel: Matching und Beweisführung

Teil 4: Rekursion und Listen

Mapra: C++ Teil 3. Felix Gruber. 29. April IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 3 29.

2Binden 3. und Bibliotheken

Systemprogrammierung

Grössere Programme. Nachträge Weitere nützliche Prädikate Programmiertechniken und Debugging Tokenizer Programm I

Prolog 2. Kapitel: Matching und Beweisführung

Grundlagen von Datenbanken

Einrichten einer Debug- Umgebung in Eclipse

Dirk Louis. Markt&Technik Buch- und Software- Verlag GmbH. Delphi 2 Delphi 2. Delphi 2. Delphi 2

Programmiermethodik 1. Klausur

Inhaltsverzeichnis. Vorwort

SimpleOOP Opensource OOP Plugin

C/C++ Debugging mit CDT unter Eclipse

Manipulation der Datenbasis und Aufsammeln von Lösungen

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

(Logik und) Logikprogrammierung

Crashkurs Kommandozeile

Einführung in PROLOG. Christian Stocker

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

Exceptions. CoMa-Übung VII TU Berlin. CoMa-Übung VII (TU Berlin) Exceptions / 1

Elementare Programmiertechniken

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Lokale Installation von DotNetNuke 4 ohne IIS

1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Konzepte von Betriebssystemkomponenten

Entwicklungsumgebung

Übersicht. C Modularisierung. Präprozessor, Compiler, Linker. Präprozessor, Compiler, Linker. Präprozessor, Compiler und und Linker Linker

Entwicklung mit mehreren Dateien

Grundlagen der OO- Programmierung in C#

Teil I Debuggen mit gdb

Einführung: Debugging

8.1 Vom Quellcode zur ausführbaren Programm

Ergänzungen zum Manual OS V 2.05/2.06

Programmierkurs Prolog, SS 1998

Variable. Interaktive Skripte

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Das Build Tool Ant. Sebastian Mancke,

XCOM 2: SDK Schnellstartanleitung

Excel Funktionen durch eigene Funktionen erweitern.


... Trigger - Fehlersuche (Debugging)

Einführung in die C-Programmierung

1 logische Programmierung Beilage 4 FFHS/Zn. Das folgende Diagramm gibt einen Überblick über die Teile eines Autos: Auto

Maschinencode Dateiformat und Stackframes

Agenda. Informatik I WS05/06 Folien von Tobias Dezulian

Folgen Sie diesen Anweisungen Schritt für Schritt, um das ZETA IEC Terminal zu installieren und in Betrieb zu nehmen.

Hinweise C-Programmierung

Softwarepraktikum: Einführung in gcc / g++

Vorlesung Programmieren

Erste Schritte mit Eclipse

Rekursion. rekursive Prädikate. deklarative vs. prozedurale Bedeutung von Prädikaten. Programmierkurs Prolog p.1

Programmieren in C++

Algorithmen und Datenstrukturen

Ein Prolog-Interpreter beantwortet Anfragen bezüglich seiner Wissensbasis. Anfrage Interpreter Antwort

check_cisco_voice Dokumentation

4D Server v12 64-bit Version BETA VERSION

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

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

Unterprogramme. Unterprogramme

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1

3D Programmierpraktikum: Einführung in C++ - Teil 1

Grammatiken in Prolog

Grundlagen der Informatik Vorlesungsskript

Debugging mit Python

Bestandteile von Prolog-Programmen. Syntax und Datenstrukturen. Legende Syntaxdiagramme. Lesen von Syntaxdiagrammen. Ein Programm besteht aus

Dateien und Module. Heute: Ein- und Ausgabe. Module. Programmierkurs Prolog p.1

Unix Grundlagen. - ii - Ambit Professional Seminar Series. Autor: Prof. J. Anton Illik Diplom-Informatiker

Software-Engineering Grundlagen des Software-Engineering

Wiederholung und Vertiefung. Programmieren in C. Pointer und so... thoto. /dev/tal e.v. 6. April 2013 (Version vom 11. April 2013) Programmieren in C

C++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14

1 Native C Code in C# Umgebung mit Visual Studio 2010

Einführung in Prolog. Literatur

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Praktikum: Paralleles Programmieren für Geowissenschaftler

Hochschule für Technik und Architektur Bern Digital Signal Processing

Übungen zu Kognitive Systeme I

Modernes C++ Compilation Firewall Exception-Safe Function Calls. Philippe Lieser

Programmieren in Python

1. Übung zu "Numerik partieller Differentialgleichungen"

Managed VPSv3 Was ist neu?

Rechnerarchitektur, Einführung in die Laborübungen

Menue Vorher Nachher Bemerkungen

Access [basics] Debugging im VBA-Editor, Teil 1. Was ist Debugging? Debugging im Fehlerfall. VBA-Grundlagen Debugging im VBA-Editor

9.4 Grundlagen des Compilerbaus

DAP2 Praktikum Blatt 2

Transkript:

Programmierkurs Prolog SS 1998 Universitaet Dortmund LS VIII - Prof. K. Morik

Compiler Kommandos Compiler-Modes Mode-Deklarationen Debugger Erweitertes Box-Modell Tracing Interaktive Kommandos Compiler/Debugger

Compiler Kompiliert in virtuellen Code, der von einer abstrakten Prolog-Maschine ausgeführt wird. Direktiven: beginnen mit :-/1 oder?-/1 werden beim kompilieren ausgeführt Klauseln der Rest werden kompiliert Prädikate mit mehreren Klauseln sollten immer zusammenhängend im File stehen Klauseln werden static kompiliert, wenn nicht explizit durch dynamic/1 anders gewünscht

Compiler Kommandos compile(file) Kompiliert den Inhalt des Files. compile(file,modul) Kompiliert den Inhalt des Files in das Modul. compile_stream(stream) Kompiliert aus Eingabestrom bis EOF compile_term(clauses) Kompiliert Liste von Klauseln und Direktiven. dump(file) Schreibt Dump der Klauselbasis in File. ensure_loaded(file) Kompiliert File, falls die noch nicht in der neuesten Version kompiliert ist. make Rekompiliert alle zur Zeit geladenen Files, die zwischenzeitlich geändert wurden. lib(file) Lädt die angegebene Library (aus library-path) assert(clause)

Compiler Modes Modes werden durch Flags gesetzt. Flags setzt man mit set_flag(+flag,on/off). Modes: debug_compile: Erzeugt Code zur Inspektion durch den Debugger (on/off). occur_check: Schaltet den Occur-Check ein/aus (on/off). dfid_compile: Kompiliert, so daß die dfid- Library zur Iterative-Deepening Suche benutzt werden kann (on/off). float_precision: Fließkomma-Genauigkeit (single/double). all_dynamic: Alle Prädikate werden dynamisch kompiliert (on/off). variable_names: Merkt sich die Namen der Variablen für das Debugging (on/off).

Mode-Deklarationen Mode-Deklarationen geben dem Compiler zusätzliche Informationen zur Optimierung des Codes. :- mode p(+), q(-), r(++,?). + Das Argument ist instantiiert (also keine Variable). ++ Das Argument ist grundinstantiiert. - Das Argument ist nicht instantiiert (also eine freie Variable, die in keinem anderen Argument auftaucht).? sonst

Boxen-Modell CALL REDO UNIFY REENTER erste Klausel EXIT FAIL UNIFY REENTER zweite Klausel EXIT FAIL UNIFY REENTER letzte Klausel EXIT FAIL EXIT FAIL S+(4) 2 *EXIT module:foo(one,x,two) (dbg)?- 12 3 4 5 6 7 8 9

Format der Trace-Zeilen S+(4) 2 *EXIT module:foo(one,x,two) (dbg)?- 12 3 4 5 6 7 8 9 1. C: externe Prozedur S: skipped Prozedur N: Prozedur, die nicht in Debug-Modus komp. ist 2. Das + zeigt an, daß auf die Prozedur ein Spy- Point gesetzt ist. 3. Invocation-Number (fortlaufend pro Box) 4. Tiefe 5. Der * zeigt an, daß noch Choice-Points existieren. 6. Port-Name 7. Modul-Name 8. Goal 9. Debugger-Prompt

trace/0 Aufruf des Debuggers Alle nachfolgenden Ziele werden im Creep- Modus ausgeführt debug/0 spy/1 Alle nachfolgenden Ziele werden in Leap-Modus ausgeführt Setze Spy-Point. nospy/1 Entferne Spy-Point. notrace/0 Schaltet trace aus. nodebug/0 Schaltet debug aus.

c s l Interaktive Kommandos creep: Gehe zum nächsten Port (Einzelschritt). skip: Gehe zum nächsten Exit Port dieser Box. leap: Gehe zum nächsten Port einer Prozedur mit Spy-Point. i V variable skip: Gehe bis zur Instantiierung von V. + Setze Spy-Point auf aktuelles Ziel. - Entferne Spy-Point von aktuellem Ziel. A B C D R n up: Gehe zum Vater des aktuellen Ziels. down: Gehe zum Sohn des aktuellen Ziels. right: Gehe zum nächsten Teilziel nach rechts. left: Gehe zum nächsten Teilziel nach links. retry: Führe das aktuelle Ziel erneut aus. nodebug: Debugging ausschalten.