\input texinfo  @c -*-texinfo-*-
@comment %**start of header
@setfilename icp.info
@settitle ICP ][ @value{edition}
@setchapternewpage odd
@paragraphindent 0
@comment %**end of header

@set edition 0.96
@set update-date 28 September 1993
@set prolog

@ifinfo
This file documents the IC Prolog ][ system version @value{edition},
dated @value{update-date}.

Copyright @copyright{} 1992,1993 Imperial College, London.  All rights reserved.
@end ifinfo

@iftex
@finalout
@end iftex

@tex
% LaTeX "sloppy"
\global\tolerance=10000
\global\hfuzz=.5pt
\global\vfuzz=.5pt

% Adjust for a4
\advance\voffset by-1.3truecm
\vsize=9.4truein
\hsize=6.25truein

% \global\pageheight=\vsize
% \global\hoffset-0.125cm
@end tex

@tex
% backslash
\gdef\\{{\tt\char"5C}}
\gdef\at{{\tt\char"40}}
@end tex

@titlepage

@title IC Prolog ][
@subtitle Version @value{edition}, for Sun Workstations
@subtitle @value{update-date}
@subtitle Department of Computing, Imperial College, London

@author by Yannis Cosmadopoulos and Damian Chu

@end titlepage

@ifinfo
@node Top, Overview, (dir), (dir)
@comment  node-name,  next,  previous,  up
@top ICP

IC Prolog ][ is an implementation of Prolog whose major features include
multiple threads, Parlog, TCP primitives and Mailboxes. It is designed
for the development of distributed applications.  This info file documents
version @value{edition}, last updated on @value{update-date}.
@end ifinfo

@defindex up

@menu
* Overview::                    Introduction
* Builtin Predicates::          Reference for builtin predicates
* Tcp::                         TCP/IP inter-process communication
* Mailboxes::                   Mailbox inter-process communication
* Foreign Interface::           How to interface to C code
* Tracer::                      Guide to using the Tracer
* Operators::                   Table of pre-defined operators
* Error Codes::                 Error numbers and what they mean
* Low Level::                   Internal primitives (not useful !)
* PredicateIndex::              Index of system predicates
* UserPredicateIndex::          Index of user-definable predicates
* ConceptIndex::                Index of concepts


 --- The Detailed Node Listing ---

Overview 

* Introduction::                Introduction 
* CommandLine::                 Command line Options 
* Startup::                     Startup 
* Syntax::                      Syntax 
* Notation::                    Notation 

Syntax 

* Integers::                    Integers 
* FloatingPoint::               Floating Point Numbers 
* Atoms::                       Atoms 
* Variables::                   Variables 
* Tuples::                      Tuples 
* Lists::                       Lists 
* CharacterEscaping::           Character Escaping 

Builtin Predicates 

* Control::                     Control 
* Loading::                     Loading, Consulting and Compiling 
* IO::                          Input and Output Primitives 
* Arithmetic::                  Arithmetic
* TypePrimitives::              Type Primitives 
* Term Comparison::             Term Comparison 
* ProgramState::                Examining the Program State 
* ExecutionAndError::           Execution and Error Handling 
* ModifyingDatabase::           Modifying the Database 
* Properties::                  Property Management 
* Metalogical::                 Metalogical Primitives 
* GrammarRules::                Grammar Rules 
* ListHandling::                List Handling
* StringsAndAtoms::             String and Atom Handling 
* Threads::                     Threads 
* Parlog::                      Prolog - Parlog Interface 
* Miscellaneous::               Miscellaneous Primitives 

Loading, Consulting and Compiling 

* LoadIntro::                   Introduction 
* Style::                       Style Warnings
* LoadingDynamic::              Loading Dynamic Code 
* LoadingStatic::               Loading Static Code 

Introduction 

* SearchPath::                  The Search Path 
* DynamicCode::                 Dynamic Code 
* StaticCode::                  Static Code 

Input and Output Primitives 

* IOTerms::                     Input and Output of Terms
* IOChars::                     Input and Output of Characters
* StreamHandling::              File and Stream Handling

Arithmetic

* ArithmeticComparison::        Arithmetic Comparison 

Term Comparison 

* StandardOrderTerms::          The Standard Order on Terms
* TermComparisonPreds::         Term Comparison Predicates 

Transformations on Reading

* Dcg::                         Definite Clause Grammars 
* FileTrans::                   File Transformations

TCP Interface 

* TcpIntro::                    Introduction to TCP/IP
* TcpConnected::                Connection Oriented Protocol
* TcpConnectionless::           Connectionless Oriented Protocol
* TcpMisc::                     Miscellaneous TCP Predicates
* TcpLow::                      Low Level TCP primitives
* TcpEg::                       Simple TCP Examples

Simple TCP Examples

* TcpEgConnected::              Connected Sockets
* TcpEgConnectionless::         Connectionless Sockets
* TcpEgBroadcast::              Broadcast Sockets

Mailbox-based communication model

* MbxIntroduction::             Introduction to Mailboxes
* MailboxServer::               Mailbox Server
* RestrictedAccess::            Restricting Access
* StartingMailboxes::           Starting Mailboxes
* MailboxPrimitives::           Mailbox Primitives

Introduction to Mailboxes

* MessagePeeking::              Message Peeking
* TwowayCommunication::         Two-way Communication
* MultiwayCommunication::       Multi-way Communication

Mailbox Server

* RegisteringMailboxNames::     Registering Mailbox Names

Mailbox Primitives

* MbxInit::                     Opening, Modifying and Closing Mailboxes
* MbxIO::                       Reading and Writing from Mailboxes
* MbxMisc::                     Miscellaneous Mailbox Predicates

Foreign Language Interface 

* ForeignPredicates::           Foreign Language Predicates 

Foreign Language Predicates 

* ForeignComp::                 
@end menu

@include overview.texi
@include builtin.texi
@include tcp.texi
@include mailbox.texi
@include foreign.texi
@include tracer.texi
@include operators.texi
@include errors.texi
@include low.texi
@comment @include debugger.texi
@comment @include lowforeign.texi
@comment @include changes.texi
@include pindex.texi
@include uindex.texi
@include cindex.texi

@page

@shortcontents
@contents
@bye
