Next:
Introduction
Up:
No Title
Previous:
No Title
Contents
Introduction
What is ECLiPSe ?
Overview
ECLiPSe Features
Metaterms
Incremental Compiler
Source Variable Names
Flexibility
User Interface
Full Word Size
Few Limits
Occur Check and Complete Search Rule
Strings
Arrays and Global Variables
Indexed Database
Modules
Event Handling
Coroutining
Debugger
Stream I/O
Macros
Blocks
External Predicates
Compatibility
Autoloading Libraries
Profiling Tools
Portability
On-line Documentation
Extensions
Further Informations
Reporting Problems
Terminology
Getting started with ECLiPSe
Entering the ECLiPSe System
Starting ECLiPSe in teletype mode
ECLiPSe Command Line Options
The .eclipserc file
Interaction with the Toplevel Loop
Entering Goals
Exiting from the Toplevel
Entering Programs from the Terminal
Querying Programs
Syntax errors
Interrupting the execution
History Mechanism
Getting Help
Global Flags and Settings
More about compilation
Optimised Compilation
Compiling from a File
File Queries and Directives
Compiling Procedures as Dynamic or Static
Altering Programs
Using Libraries
Redefining Built In Predicates
Porting Applications to ECLiPSe
Using the compatibility packages
Compiler versus Interpreter
Name clashes with global ECLiPSe builtins
Porting Programs to plain ECLiPSe
Exploiting ECLiPSe Features
The Compiler
Program Source
Procedure Types
Compiler Modes
Compiler Input
Libraries
Module Compilation
Mode Declarations
Compiler Pragmas
Writing Efficient Code
Special Primitives
Soft Cut
Matching Clauses
Abstract Code Listing
Parallel Execution
Using the Parallel System
Parallel Programming Constructs
Parallel Annotation
Built-In
Utility Libraries
Controlling and Analysing the Execution
Which worker executes this code?
Measuring Runtimes
Amount of Parallelism
Adding and Removing Workers
Parallelism and Side Effects
Parallel Cuts
Restrictions
Troubleshooting
No Space
Process structure
Crash recovery
Module System
Terminology
Basic Properties
Modules and the Top Level Loop
Modules and Source Files
The Module Interface
Creating and Erasing Modules at Runtime
Visibility of Predicates
Access rule for predicates as goal name
Access rules for predicates as arguments of built-ins
Defining and modifying the visibility
Tools
System Tools
Libraries
Other Modular Items
Privacy
Dynamic Procedures
Event handlers
Debugger
Arithmetic
Built-Ins to Evaluate Arithmetic Expressions
Numeric Types and Type Conversions
Integers
Rationals
Floating Point Numbers
Type Conversions
Arithmetic Functions
Predefined Arithmetic Functions
Evaluation Mechanism
User Defined Arithmetic Functions
Runtime Expressions
Low Level Arithmetic Builtins
The Multi-Directional Predicates plus/3 and times/3
Arithmetic and Coroutining
Arrays and Global Variables
Introduction
Global Variables
Arrays
Global References
Visibility
Input and Output
Streams in ECLiPSe
System Streams
Opening New Streams
Communication with Streams
Character I/O
Token I/O
Term I/O
String Streams
Modifying the Output
The printf/2, 3 Predicate
The output_mode flag
The syntax_option flag
The print/1, 2 Predicate
ECLiPSe Macros
Introduction
Using the macros
Definite Clause Grammars --- DCGs
Simple DCG example
Mapping to Prolog Clauses
Parsing other Data Structures
Exceptions
Errors
Error Handlers
Arguments of Error Handlers
User Defined Errors
Note:
Using Tools in Error Handlers
Interrupts
The block/3 Predicate
The String Data Type
Introduction
Choosing The Appropriate Data Type
Strings vs. Character Lists
Strings vs. Atoms
Conclusion
Builtin Support for Strings
Entering Strings
Memory Organisation And Garbage Collection
Introduction
The Code Heap
The General Heap
The Local Stack
The Control Stack
The Global Stack
The Trail Stack
Garbage collection
Saving States
Concepts
Saved Program States
Creating Saved States With The -s Option
Saved Execution States
Invoking Saved States Directly
Limitations
Operating System Interface
Introduction
Environment Access
Command Line Arguments
Environment Variables
Exiting ECLiPSe
Time and Date
Host Computer
Calling C Functions
File System
Current Directory
Looking at Directories
Checking Files
Renaming and Removing Files
Filenames
Creating Communicating Processes
Process creation
Process control
Interprocess Signals
Internal Signals
Interprocess Communication
Socket Domains
Stream Connection on a Single Machine
Datagram Connection on a Single Machine
Stream Connection Between Two Machines
Datagram Connection with Multiple Machines
External Language Interface
External Procedures
Mapping between C and Prolog
Data Structures
Argument Mapping
Adding Externals
User Initialisation
Interface to Externals
Argument Passing
Exit
Type Testing
Unification and Binding
Creating Compound Terms
Creating and Decomposing Lists
Strings
I/O in External Predicates
Arrays
Memory Management
Calling Prolog from C
Nondeterministic Externals
Suspending with External Predicates
Profiling Prolog Execution
Introduction
Using the Profiling Tool
Using the Statistics Facility
Exhaustive Collection
Selective Collection
Obtaining mode information
The Built-in Predicates of ECLiPSe
Logic and Control Built-ins
Database Built-ins
Internal Indexed Database Built-ins
Type Testing Built-ins
Term Comparison Built-ins
Term Manipulation Built-ins
All Solutions Built-ins
Arithmetic Built-ins
Strings and Atoms Built-ins
Module handling Built-ins
Stream I/O Built-ins
Character I/O Built-ins
Term I/O Built-ins
Event Handling Built-ins
Debugging Built-ins
Arrays and Global Variable Built-ins
Coroutining Built-ins
External Interface Built-ins
Prolog Environment Built-ins
Compiler Directives
Operating System Built-Ins
Lists Library Predicates
Sorts Library predicates Built-ins
String Library Predicates
Libraries
Advanced Programming Examples
answer
custom
module_autoload
pretty_print
quintus_util
Apply Macros
CIO
Crossreference Checking
Checking of Loaded Predicates
Checking Files
Bounded Depth-First Search
Depth-First Iterative Deepening
Depth-First Search with Limited Depth
Foreign C Interface
Graphic Libraries
Meter
Perfmeter
Conditional Compilation
C-Prolog Compatibility Package
Using the C-Prolog compatibility package
C-Prolog compatibility predicates
C-Prolog Predicates not available in ECLiPSe
Differences Between C-Prolog and ECLiPSe
Syntax differences
I/O Redirection
The Mode Analyser
Parallel Utilities
Ptags
Quintus Prolog Compatibility Package
Using the Quintus Prolog compatibility package
The Quintus compatibility predicates
Syntax differences
Scattered
SICStus Prolog Compatibility Package
Using the SICStus Prolog compatibility package
The SICStus compatibility predicates
Syntax differences
Structures with Field Names
Utility Libraries
Util
Define
Numbervars
Apply
Lips
Anti_unify
Spell
Rationals
Operators
Protected Procedures
Global Flags
Current Known Restrictions and Bugs
Index
References
About this document ...
Micha Meier
Mon Mar 4 12:11:45 MET 1996