Next:
Introduction
Up:
Developing Applications with ECLiPSe
Previous:
Developing Applications with ECLiPSe
 
Index
Contents
Contents
Introduction
Intended audience
Related work
Structure of tutorial
High Level Design
Application structure
Queries
API
High level structure
Classical LSCO structure
Data transformation structure
Data flow considerations
Modules
Making predicates available
Using packaged functionality
Naming schemes
Modules and files
Predicates
Variables
Documentation
Comment directive
Documenting all interfaces
Mode declaration
Documentation query
Data Structures
External data representation
Internal data representation
Named structures
Placeholder variables
Nested structures vs. key lookup
Lists
Hash tables
Vectors and arrays
Multi-representation structures
Getting it to Work
Stubs
Argument checking
Early testing
Line Coverage
Heeding warnings
Keep it working
Programming Concepts
Overview
Alternatives
Iteration on lists
Iteration on terms
Iteration on array
Transformation
Filter
Combine
Minimum
Best and rest
Sum
Merge
Group
Lookup
Fill matrix
Cartesian
Ordered pairs
Input/Output
Reading input data into data structures
How to use DCGs
Creating output data files
Creating Prolog data
Simple tabular format
Using printf
Good and bad data formats
Report generation
If it doesn't Work
Understanding failure
Run-time errors
Environment limits
Failure
Wrong answer
Missing answer
Checking program points
Debugger
Tracing
Jumping to a program point
Correctness and Performance
Testing
Profiling
Reviewing
Issues to check for
Unwanted choicepoints
Open streams
Modified global state
Delayed goals
Style Guide
Style rules
Module structure
Predicate definition
Layout Rules
General guidelines
Predicates and clauses
If-then-elses
Disjunctions
Do loops
Comments
Core Predicates
Modules
Predicate definition
Control
Do Loops
I/O
Arrays
Hash Tables
Arithmetic
Terms and structures
List Handling
Index
Warwick Harvey
2004-08-07