Vector Pascal is an extended Pascal incorporating:
- Unicode support – New in version 4
· Programs may be input in Unicode, allowing Chinese, Greek, Japanese and Russian characters in variable names.
· Strings can contain Unicode.
· Characters are 16 bit.
· Conversion to and from UTF-8 performed on input and output.
· Mathematical operators √ , ∏, ∑, ≤, ≥, ∈, ÷ can now be entered in Unicode rather than as ASCII surrogates
- Vector Pascal extensions aimed at vector processing. These are derived from APL and similar to the extensions provided in Fortran90. These extensions translate to the SIMD instructions of the Athlon and P4 etc.
· All operators extended to arrays eg: a:=a +b where a,b:array[y] of t;
· All monadic functions map over arrays eg: p:=sin(q); where p,q:array[1..n] of real;
· TRANS transposes a matrix
· The reduction functional \ can perform array summation etc
· Array slices of the form A[ i..j]:= K[i+1..j+1]
· Read and write operate on multidimensional arrays
- New operator extensions
· User defined operators allowed
· Operators +: and -: perform saturated arithmetic
· MIN and MAX
- Type system extensions
· Type pixel predefined as fixed point number in range –1 .0 to 1.0
· Sets of strings, reals, etc allowed. – New in version 4
· Dimensioned reals allow distinct and incompatible types for time, distance, mass etc
· Generic Units allow the writing of polymorphic functions
- Many of the features of ISO extended Pascal (see http://www.dcs.gla.ac.uk/~wpc/reports/compilers/compilerindex/iso10206.ps ) in particular
· Schematic array types
· Extended formats of Pred and Succ
· Any type can be returned by a function
· Operators ** and POW for exponentiation and Power
· >< for set symmetric difference
· Complex numbers
· Protected parameters
· Sets of arbitrary cardinality
· For x in y do for set iteration
- Turbo Pascal features
o Units, Strings, Turbo Pascal style file operations
A comparison with other languages and implementation details are given in Vector Pascal an Array Language .