Next:
1. Introduction
Up:
The XSB System Version
Previous:
The XSB System Version
Index
Contents
1. Introduction
1.1 Using This Manual
2. Getting Started with XSB
2.1 Installing XSB under UNIX
2.1.1 Possible Installation Problems
2.2 Installing XSB under Windows
2.2.1 Using Cygnus Software's CygWin32
2.2.2 Using Microsoft Visual C++
2.3 Invoking XSB
2.4 Compiling XSB programs
2.5 Sample XSB Programs
2.6 Exiting XSB
3. System Description
3.1 Entering and Exiting XSB
3.2 The System and its Directories
3.3 File Names and XSB
3.4 The Module System of XSB
3.5 Standard Predicates in XSB
3.6 The Dynamic Loader and its Search Path
3.6.1 Changing the Default Search Path and the Packaging System
3.6.2 Dynamically loading predicates in the interpreter
3.7 Command Line Arguments
3.8 Memory Management
3.9 Compiling, Consulting, and Loading
3.10 The Compiler
3.10.1 Invoking the Compiler
3.10.2 Compiler Options
3.10.3 Specialization
3.10.4 Compiler Directives
3.10.5 Inline Predicates
3.11 A Note on ISO Compatibility
4. Syntax
4.1 Terms
4.1.1 Integers
4.1.2 Floating-point Numbers
4.1.3 Atoms
4.1.4 Variables
4.1.5 Compound Terms
4.1.6 Lists
4.2 From HiLog to Prolog
4.3 Operators
5. Using Tabling in XSB: A Tutorial Introduction
5.1 XSB as a Prolog System
5.2 Definite Programs
5.2.1 Call Variance vs. Call Subsumption
5.2.2 Table Scheduling Strategies
5.2.3 Interaction Between Prolog Constructs and Tabling
5.2.4 Potential Pitfalls in Tabling
5.3 Normal Programs
5.3.1 Stratified Normal Programs
5.3.2 Non-stratified Programs
5.3.3 On Beyond Zebra: Implementing Other Semantics for Non-stratified Programs
5.4 Tabled Aggregation
5.5 Incremental Table Maintenance
5.5.1 Examples
5.5.2 Predicates for Incremental Table Maintenance
5.5.3 Shorthand for Complex Table and Dynamic Declarations
6. Standard Predicates
6.1 Input and Output
6.1.1 I/O Stream Implementation
6.1.2 ISO Streams
6.1.3 DEC-IO Style File Handling
6.1.4 Character I/O
6.1.5 Term I/O
6.1.6 Special I/O
6.2 Interactions with the Operating System
6.2.1 The path_sysop/2 interface
6.3 Evaluating Arithmetic Expressions through is/2
6.3.1 Evaluable Functors for Arithmetic Expressions
6.4 Convenience
6.5 Negation and Control
6.6 Unification and Comparison of Terms
6.6.1 Sorting of Terms
6.7 Meta-Logical
6.8 Manipulation of Atomic Terms
6.9 All Solutions and Aggregate Predicates
6.9.1 Tabling Aggregate Predicates
6.10 Meta-Predicates
6.11 Information about the System State
6.12 Execution State
6.13 Asserting, Retracting, and Other Database Modifications
6.13.1 Reading Dynamic Code from Files
6.13.2 The storage Module: Associative Arrays and Backtrackable Updates
6.14 Tabled Predicate Manipulations
6.14.1 Declaring and Modifying Tabled Predicates
6.14.2 Predicates for Table Inspection
6.14.3 Deleting Tables and Table Components
7. Multi-Threaded Programming in XSB
7.1 Getting Started with Multi-Threading
7.2 Communication among Threads
7.3 Thread Statuses: Joinable and Detached Threads
7.4 Thread Cancellation
7.5 Performance and other Considerations
7.6 Configuring the Multi-threaded Engine under Windows
7.7 Predicates for Multi-Threading
7.7.1 Predicates for Thread Synchronization and Communication
8. Hooks
8.1 Adding and Removing Hooks
8.2 Hooks Supported by XSB
9. Debugging
9.1 High-Level Tracing
9.2 Low-Level Tracing
10. Definite Clause Grammars
10.1 General Description
10.2 Translation of Definite Clause Grammar rules
10.2.1 Definite Clause Grammars and Tabling
10.3 Definite Clause Grammar predicates
10.4 Two differences with other Prologs
11. Exception Handling
11.1 Representations of ISO Errors
11.2 Predicates to Throw and Handle Errors
11.2.1 Predicates to Throw Errors
11.2.2 Predicates to Handle Errors
11.3 Convenience Predicates
11.4 Backtraces
12. Restrictions and Current Known Bugs
12.1 Current Restrictions
12.2 Known Bugs
A. GPP - Generic Preprocessor
A.1 Description
A.2 Syntax
A.3 Options
A.4 Syntax Specification
A.5 Evaluation Rules
A.6 Meta-macros
A.7 Examples
A.8 Advanced Examples
A.9 Author
Bibliography
Index
Terrance Swift 2007-10-05