ZurückZurück Development Tools Pricing information

Prospero Extended Pascal 32-bit Edition

Compiler features

The fast one-pass compiler generates 32-bit flat model code, and provides a choice of language levels, giving compatibility with both the Pascal and Extended Pascal standards. Other compile-time options include:

Run-time support

Programs produced with Prospero Extended Pascal can take advantage of a 32-bit address space and efficient arithmetic, as well as features of OS/2 such as long file names (with HPFS), processes and threads.

There is an extensive range of support routines available to the programmer. In the first place, there are those with definitions built into the compiler as part of the language, and implemented in the Pascal library. Then there is a further set whose definitions are provided in a module interface ready to be imported; a major purpose of this set is to ease the transfer of existing code, but it also includes access to a number of OS/2 features such as subdirectories and threads. Finally, there are definitions which give access from Pascal code directly to the 32-bit functions of OS/2 itself, and to bindings to a range of the KBD and VIO calls.

Language features

Below is a brief summary of Extended Pascal features and how they are implemented.

Modules
Extended Pascal modules supply definitions of constants, types, variables, procedures and functions by means of named "interfaces". One or more interfaces are exported by a module, and may then be imported by other modules or main programs. A compiled interface takes the form of a file, which is a self-contained representation of the exported entities; it can be used to convey definitions within a large program, or together with the compiled code can form a library for use by others.

Data types
The integer type is 32 bits; there are additional predeclared subranges for bytes and 16-bit words. The real type is 8 bytes (IEEE double precision), with an additional 4-byte shortreal. The complex type is 16 bytes. Dynamic strings may have up to 32K characters, a distinct shortstring type allowing up to 255 characters. Arrays may be of any size that can be accommodated at run-time. Sets can be of any ordinal base type, including negative integers, provided that the range of values in one set is not excessive.

Operators
In addition to the familiar set of arithmetic and relational operators, there are exponentiation operators ** and POW, an operator >< for set symmetric difference, a REM operator (remainder), and shift and additional logical operators SHL, SHR and XOR. The + operator is used to indicate string concatenation; the forms AND_THEN and OR_ELSE indicate Boolean operations which are evaluated no further than needed to obtain the result.

Procedures and functions
There are procedures and functions in the Extended Pascal library, some of which are predefined within the compiler, and some whose definitions are held in a prepared interface file. In addition, OS/2 functions can be called directly.

Predefined procedures and functions:
get, put, update, reset, rewrite, extend, bind, unbind, SeekWrite, SeekRead, SeekUpdate, read, readln, write, writeln, readstr, writestr, page, new, dispose, pack, unpack, GetTimeStamp, halt, setlength, close, connect, echo, inc, dec, newmem, dispmem, insert, delete, assert, move, exit, seed, abs, sqr, sin, cos, exp, ln, sqrt, arctan, arg, re, im, trunc, round, card, cmplx, polar, ord, chr, succ, pred, odd, eof, eoln, empty, position, LastPosition, binding, length, index, substr, trim, eq, lt, gt, ne, le, ge, date, time, concat, copy, pos, max, min, tan, arcsin, arccos, sinh, cosh, tanh, handle, OpenRead, OpenWrite, fresult, addrof, taddrof, sizeof, ltrim, random, rand, pi, HeapUsed, StackUsed, memavail, stkavail, IsDigit, IsAlpha, UpperCase, LowerCase, testbit, setbit, clearbit, flipbit

Procedures and functions defined in the library interface:
GetEnvS, CmdTail, PgmName, ExecPgm, Command, ArgC, ArgV, ParamCount, ParamStr, GetDrive, SetDrive, GetDir, ChDir, MkDir, RmDir, FileDelete, FileRename, DupHandle, AttHandle, KeyPressed, EscapeKey, KbdChar, ReadKey, GetKeyboard, KeyFlags, SetCursorShape, SetCursorOn, SetCursorOff, CursorVisible, InitScreen, Adaptor, SetText, TextMode, Paper, TextBackground, Ink, TextColor, GotoXY, WhereX, WhereY, PutChar, PutChattr, TextWindow, Window, PutCXY, PutString, CharXY, AttrXY, ClrEol, ClrScr, ScrollUp, ScrollDown, DelLine, InsLine, TextFrame, StartMessage, EndMessage, ScreenFile, AssignCrt, Delay, Wait, Sound, Beep, Prompt, CreateSem, RequestSem, ReleaseSem, CloseSem, StartThread


Pricing and Contact information.


Diese Seite wurde seit dem mal abgerufen.

ZurückZurück Development Tools Pricing information