Vector Pascal is a language targeted at SIMD
instruction-sets such as the MMX and the AMD 3d Now
It currently supports
the
486,
the
AMD Opteron
64 bit processor,
the Opteron compiler supports multi-core parallelism
the
Pentium,
the
Athlon
the
Sony
Playstation 2 Emotion Engine see report here
Compiler for the Cell ( used in PS3) now available in prototype
form
the
Intel P3 and
P4 processors.
It has a SIMD compiler which supports parallel vector
operations, loop unrolling, common sub expression removal etc. It is
implemented in Java, and is available for download in source or binary.
It is an open source project. Any volunteers to work
further on the project contact wpc@dcs.gla.ac.uk
for SVN access.
But if you just want the version for the International Summer School on Advances in Programming Languages
it is HERE! .
Overview
Vector Pascal is an extended Pascal incorporating:
- Unicode
support
-
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.
- New
operator extensions to support SIMD programming
- Type
system extensions to support scientific and image processing
- Many
of the features of ISO extended Pascal (see http://www.dcs.gla.ac.uk/~wpc/reports/compilers/compilerindex/iso10206.ps
) in particular
-
Turbo Pascal features: Units, Strings, Turbo Pascal style file
operations
SIMD Programming Manual
for Linux
The book is a programming manual for SIMD processors
with special emphasis on the use of Vector Pascal
Related Work
Similar vectorisation transformations for a C compiler
have been done by Aart Bi
k whose web page contains
useful articles on vectorisation.
Development
Environment
Vector Pascal now comes with the VIPER
IDE , which supports:
Syntax
highlighting
Project
management
Compiling
and linking
Automatic
translation of Pascal to Tex
using VPTEX
VPTeX
Both the command line
and the IDE compilers contain the facility to translate Pascal to Latex
to
provide a literate programming environment. Comments can contain Latex
which is
passed to the latex output, pascal code is translated using a literate
programming style.