Parallel C++ User Guide
Version 2.1 - November 1991
© 3L Ltd
This User Guide accompanies 3L's Parallel C++ product, and is intended for anyone who wants to use Parallel C++ to program a transputer system, whether writing a conventional sequential program or using the full support for concurrency which the transputer processor has to offer.
Parallel C++ is a "sister" of 3L Parallel C, and this manual should be read in conjunction with the User Guide for that product.
Parallel C++ can be used with a large variety of target transputer systems. This manual makes the simplifying assumption that the target hardware will be an Inmos IMS B004 transputer evaluation board, or a transputer system which is largely compatible with a B004. This board is a single plug-in card for the standard IBM PC bus, with one transputer and either 1MB or 2MB of RAM.
Similarly, the assumption is made here that the host computer for the B004 will be an IBM PC with a hard disk drive, or one of the many personal computers compatible with the original IBM machines.
There are four main divisions within this document, as follows:
- Part I: Getting Started covers installing Parallel C++ on your machine and verifying that it is operating correctly.
- Part II: Tutorial introduces you to the operation of the compiler and the other tools supplied with Parallel C++.
- Part III: Reference contains detailed technical information about the compiler and Parallel C++ class libraries.
- The appendices at the end of this manual contain supplementary information in a condensed form.
This User Guide does not attempt to teach the C++ language itself. Instead, we suggest that the reader should consult one of the many introductory texts now available, such, for example, Teach Yourself C++, by Al Stevens, or Programming in C++, by Stephen C. Dewhurst and Kathy T. Stark. The classic description of C++ is, of course, Bjarne Stroustrup's The C++ Programming Language, although the language has changed significantly since its publication. A thorough description of the language as it now stands can be found in The Annotated C++ Reference Manual by Margaret A. Ellis and Bjarne Stroustrup.
The reader is also assumed to be reasonably familiar with the operating system of the host computer being used. For personal computers made by IBM, this will usually be PC-DOS, which is supplied with a manual called Disk Operating System Reference. For compatible machines made by other manufacturers, the operating system will usually be MS-DOS, described in Microsoft MS-DOS User's Reference. These two operating systems are largely compatible, and their documentation is very similar. We will refer to "MS-DOS" in this manual to mean the operating system used on your machine. The term DOS Reference Manual will be used to refer to the appropriate manual.
References to these and other documents mentioned in this manual are collected in a bibliography, which can be found on page 147.
Throughout this manual, text printed in this typeface represents direct verbatim communication with the computer: for example, pieces of C++ text, commands to MS-DOS and responses from the computer.
In examples, text printed in this typeface is not to be used verbatim: it represents a class of items, one of which should be used. For example, this is the format of one kind of compilation command:
This means that the command consists of:
- The word "t8cc", typed exactly like that.
- A source-file: not the text source-file, but an item of the source-file class, for example "myprog.cpp".
Introduction Intended Audience Hardware Assumptions Document Structure Further Reading Conventions
I Getting Started
1 Installing the Compiler 1.1 Installing the Software 1.2 The Search Path 2 Confidence Testing
3 Developing C++ Programs 3.1 Compiling 3.2 Linking 3.2.1 Linking More than One Object File 3.2.2 Indirect Files 3.2.3 Calling the Linker Directly 3.2.4 Libraries 3.3 Running 3.3.1 Using C++ Programs as MS-DOS Commands 3.3.2 Command-Line Arguments 3.3.3 I/O Redirection and Piping 3.4 Memory Use 3.4.1 Default Memory Mapping 3.4.2 Alternative Memory Mapping 3.4.3 Limit on Program Memory 3.5 Parallel Programming 3.5.1 Building Parallel Programs 3.5.2 Synchronising Access to the Libraries
4 C++ Compiler Reference 4.1 Running the Compiler 4.2 Compiler Switches 4.2.1 Controlling the Object File 4.2.2 Controlling Object Code 4.2.3 Controlling Code Patch Sizes 4.2.4 Controlling Debugging 4.2.5 Controlling #include Processing 4.2.6 Macro Definitions 4.2.7 Information from the Compiler 4.3 Predefined Macros 4.4 Handling of #include Files 5 The C++ Complex Mathematics Library 5.1 Introduction to the complex class 5.1.1 The complex Class 5.2 Error Handling 5.2.1 Default Error Handling 5.2.2 Trapping Errors 5.3 Operators 5.4 Cartesian/Polar Functions 5.5 Mathematical Functions 5.6 Trigonometric and Hyperbolic Functions 6 The Parallel C++ Stream Library 6.1 Introduction 6.1.1 Buffers and Streams 6.1.2 Classes 6.1.3 Predefined Streams 6.1.4 Header Files 6.2 Stream Input and Output 6.2.1 Constructors and Assignment 6.2.2 Input and Output 6.2.3 Input 6.2.4 Output 6.3 Formatted Input and Output 6.3.1 The Formatting State 6.3.2 Extraction: The >> Operator 6.3.3 Insertion: The << Operator 6.3.4 Manipulators 6.3.5 User Extensions 6.4 Operations on Files 6.4.1 Constructors 6.4.2 Stream Operations 6.4.3 Buffer Operations 6.5 In-Store Operations 6.5.1 Constructors 6.5.2 Stream Operations 6.5.3 Buffer Operations 6.6 Operations on FILE Structures 6.6.1 Constructor 6.6.2 Other Members 6.7 Interfaces to streambuf 6.7.1 Constructors 6.7.2 The Public Interface 6.7.3 The Protected Interface
A Distribution Kit A.1 Directory \tc2v2 A.2 Directory \tc2v2\cc A.3 Directory \tc2v2\examples B Summary of Option Switches Bibliography Index