Developing Applications with ECLiPSe

TECHNICAL REPORT IC-PARC-03-2

Developing Applications with ECLiPSe
H. Simonis
email: Helmut.Simonis@crosscoreop.com

> Abstract: In this tutorial we provide a methodology for developing large scale applications with the ECLiPSe system. This methodology follows a top-down approach from the original problem specification to detailed implementation aspects of the resulting code. We concentrate on general design and programming aspects, and largely ignore specific problem solving techniques, which can be found in other tutorials. This current report is intended for programmers developing applications with ECLiPSe as well as those tasked with the maintenance of such programs.

> This tutorial is based on an earlier version restricted to internal Parc Technologies use, and contains numerous corrections and improvements suggested by the ECLiPSe team.

- Contents
- Introduction
  - Intended audience
  - Related work
  - Structure of tutorial
- High Level Design
  - Application structure
  - Queries
  - API
  - High level structure
  - Modules
  - Naming schemes
  - Documentation
- Data Structures
  - External data representation
  - Internal data representation
- 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
  - Good and bad data formats
  - Report generation
- If it doesn’t Work
  - Understanding failure
  - Checking program points
  - Debugger
- Correctness and Performance
  - Testing
  - Profiling
  - Reviewing
  - Issues to check for
- 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
  - I/O
  - Arrays
  - Hash Tables
  - Arithmetic
  - Terms and structures
  - List Handling
- Index

> This document was translated from LATEX by HEVEA.