The following is a summary of the language elements
found in VPascal. Data Types
Scalars (boolean, 32-bit integer, 64-bit floating-point, 128-bit complex, 48-bit RGB,
96-bit floating-point RGB), images & arrays (1-bit, 8-bit, 16-bit signed &
unsigned, 32-bit signed, single- & double-precision floating-point, single- &
double-precision complex, 24-bit RGB, 48-bit RGB & 96-bit RGB), strings and the null
type (uninitialized). Arrays may be 1, 2 or 3 dimensional.
Declarations
Constant declarations and variable declarations. User-defined procedure and function
declarations with local and parameter declarations. Declare variables or procedures as DDE
"shares". Declare procedures or entire programs as button or menu-activated.
Declare external DLL library functions.
Control Statements
Program flow control with if-then and if-then-else statements. For-loops for executing
statements a predefined number of times. Repeat-loops for executing statements until a
condition is true. While-loops for executing statements while a condition is true.
Expressions
Mathematical expressions of any complexity. Expression operators are arithmetic,
logical, or relational. Expression operands are scalars, images and function results. Full
support for complex and RGB numbers. Expressions may involve scalars, vectors, matrices,
images, sequences and combinations of these. Image expressions are treated identically to
scalar expressions.
Array Index Notation
Arrays and images are formally identical. Arrays may be indexed using scalars or
scalar expressions. Image sub-regions and sub-volumes may be addressed directly using
index range notation. Range checking occurs at runtime.
Arithmetic Operators
Addition (+), subtraction (-), multiplication (*) division (/) and modulo. Arithmetic
operations are defined for all scalar-scalar, image-scalar and image-image operands.
Floating-point to fixed-point conversion using rounding, truncation, ceiling or floor
functions.
Logical Operators
Bit-wise and boolean logical operators: AND, OR, XOR, NOT, NAND, NOR and XNOR. Logical
operations are defined for all fixed-point scalar-scalar, image-scalar and image-image
operands. Bit-wise shift operators: SHL, SHR and SAR. Bit-wise rotate operators: ROL and
ROR. Shift and rotate operations are defined for all fixed-point scalar-scalar and
image-scalar operands.
Relational Operators
Greater than (>), less than (<), equal to (=), greater than or equal to (>=),
less than or equal to (<=) and not equal to (<>). Relational operations are
defined for all scalar-scalar, image-scalar and image-image operands.
User-defined Routines
User-defined procedures and functions. Pass parameters (scalars, images and strings)
to routines. Functions can return any type, including images. Local constant and variable
declarations. Late-binding of parameters and function results provides for polymorphic
code.
Parameter Passing
Parameters are passed to procedures and functions by value (a copy is made prior to
entry) or by reference (address of parameter is passed).
Predefined Dialogs
Utility dialogs to simplify user interaction: error dialog, information dialog,
confirmation dialog, image selection dialog, string-selection dialog, number entry dialog,
string entry dialog and halt dialog.
External Code
Call external DLL functions written in any language. Call Windows API functions
directly. Execute external applications. Add support for specialised hardware.
Windows Interaction
Control size and position of image windows on desktop. Show and hide image windows.
Minimise, maximise and restore image icons and V for Windows application. Tile or cascade
desktop windows and arrange desktop icons. Print. Write to the status bar. Create custom
toolbars and menus. Call Windows API functions directly.
Built-in Functions
Over 400 standard functions built-in. Categories include: colour functions, data type
conversion, DDE (dynamic data exchange client and server), editor management (text
windows), file management, convolution and order-statistic filters, geometric functions,
image management, desktop-image management, user input & output, intensity (contrast
and histogram) functions, math functions, memory management functions, object analysis and
counting, graph plotting, image and text printing, serial communications, image and
sequence size functions, statistics (regular and ensemble), string functions, utilities
(e.g. timing functions, playing sounds), video capture, Windows interaction and much more.
|