Occam 2 toolset language and library reference manual
March 1993
INMOS document number: 72-TDS-368-01
186 Pages
© INMOS Limited 1993.
About this manual
This manual is the Language and Libraries Reference Manual to the occam 2 toolset and provides a language reference for the toolset and implementation data.
The larger part of the manual is contained in one chapter which introduces and describes the occam libraries. Each library is described in a separate section. For each library, a summary of the procedures it provides, is followed by a detailed description of each procedure.
Appendices provide:
- a description of the language extensions that are supported by the occam 2 compiler.
- implementation details of the Dx305 occam 2 toolset.
- details of the alias and usage checking rules adopted by the toolset.
Contents
Contents overview Preface Host versions About this manual About the toolset documentation set Other documents FORTRAN toolset Documentation conventions
Libraries
1 The occam libraries 1.1 Introduction 1.2 Using the occam libraries 1.2.1 Linking libraries 1.2.2 Listing library contents 1.2.3 Library constants 1.3 Compiler libraries 1.3.1 Using compiler library routines 1.3.2 Maths functions 1.3.3 2D block moves 1.3.4 Bit manipulation functions 1.3.5 CRC functions 1.3.6 Floating point arithmetic support functions 1.3.7 Dynamic code loading support 1.3.8 Transputer-related procedures 1.3.9 Miscellaneous operations 1.4 Maths libraries 1.4.1 Introduction and terminology 1.4.2 Single and double length elementary function libraries 1.4.3 IMS T400/T414/T425/T426 elementary function library 1.5 Host file server library 1.5.1 Errors and the server run time library 1.5.2 Inputting real numbers 1.5.3 Procedure descriptions 1.5.4 File access 1.5.5 General host access 1.5.6 Keyboard input 1.5.7 Screen output 1.5.8 File output 1.5.9 Miscellaneous Time processing Buffers and multiplexors Buffering procedures Multiplexing procedures 1.6 Streamio library 1.6.1 Naming conventions 1.6.2 Stream processes 1.6.3 Stream input 1.6.4 Stream output 1.7 String handling library 1.7.1 Character identification 1.7.2 String comparison 1.7.3 String searching 1.7.4 String editing 1.7.5 Line parsing 1.8 String conversion library Procedure definitions 1.9 Block CRC library 1.9.1 Example of use 1.9.2 Function definitions 1.10 Extraordinary link handling library 1.10.1 Procedure definitions 1.11 Debugging support library 1.11.1 Procedure definitions 1.12 DOS specific hostio library 1.12.1 Procedure definitions
Appendices
A Language extensions A.1 Syntax A.1.1 Compiler keywords A.1.2 Compiler directives A.1.3 String escape characters A.1.4 Tabs A.1.5 Relaxations on syntax A.2 Channel operations A.2.1 Retyping channels A.2.2 Channel constructors A.2.3 'Anarchic' protocols A.3 Low level programming A.3.1 ASM A.3.2 PLACE statements A.3.3 INLINE keyword A.4 Counted array input A.5 Retyping arrays A.6 Obsolescent features B Implementation of occam on the transputer B.1 Memory allocation by the compiler B.1.1 Procedure code B.1.2 Compilation modules B.1.3 Workspace B.1.4 Vectorspace B.2 Type mapping B.3 Implementation of channels B.4 Transputer timers (clocks) B.4.1 TIMER variables B.4.2 TIMERs as formal parameters B.5 CASE statement B.6 ALT statement B.7 Formal parameters B.8 Hardware dependencies B.9 Summary of implementation restrictions C Alias and usage checking rules C.1 Alias checking C.1.1 Introduction C.1.2 Rules Scalar variables Arrays C.1.3 Alias checking disabled VAL abbreviations Non-VAL abbreviations Multiple assignment Procedure parameters Interaction with usage checking C.2 Usage checking C.2.1 Introduction C.2.2 Usage rules of occam C.2.3 Checking of non-array elements C.2.4 Checking of arrays of variables and channels C.2.5 Arrays as procedure parameters C.2.6 Abbreviating variables and channels C.2.7 Channels C.2.8 Usage checking disabled Index