Zurück
Development
Tools
Pricing
information
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:
checking mode with special warnings
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.
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.