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 Pentium,
the Athlon
the Sony
Playstation 3 Emotion Engine see report here
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.
To download the latest binary version of Vector Pascal
you should click on install.jar.
The release is as
at SVN revision 159.
For a source version click on source release
Vector Pascal is an extended Pascal incorporating:
- 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
A comparison with other languages and implementation
details are given in Vector
Pascal an Array Language .
.pdf
version of full manual
The code generator technology used to retarget the
compiler to different platforms is documented in: Direct compilation of high
level languages to multi media instructionsets . Covers use of MMX, 3DNOW and SIMD instructions to
obtain parallelism. Also available as HTML
SIMD Programming Manual for Linux
The book is a programming manual for SIMD processors
with special emphasis on the use of Vector Pascal
Similar vectorisation transformations for a C compiler
have been done by Aart Bi
k whose web page contains
useful articles on vectorisation.
Vector Pascal now comes with the VIPER IDE , which supports:
Syntax
highlighting
Project
management
Compiling
and linking
Automatic
translation of Pascal to
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.
Java, gcc
– for windows this should be the djgpp release, Nasm assembler and for the
literate programming tool you need Latex
Since the system is in Java
one binary jar file will work with either Linux or Windows Latest binary
release covering all systems is in http://www.dcs.gla.ac.uk/~wpc/reports/compilers/compilerindex/install.jar
An
earlier version is:
Installation procedure
for binary version
1.
Unpack the jar file into a directory preferably called
mmpc. This is done using the command:
jar -xf install.jar
2.
Define an environment variable mmpcdir to point at this
directory.
3.
Within the mmpc directory unpack the file viper.jar
4.
Make the files vpc and vp executable for linux, the
corresponding windows files are vpc.bat and viper.bat.
5. Put the mmpc directory on your path.
src.jar
the most recent source package to be released
Create a
directory for Vector Pascal and place the src.jar file in this directory. then
unpack the archive using the command
jar -xf
src.jar
Then type
make install.jar
to create the installation jar file. You then proceed as for the binary install procedure using the install.jar file you have created. Since the works of the compiler are all in Java and since the C code of the run-time library is portable, the same version of the source will work under both Windows and Linux.
The old Linux only releases start with the name linstall
in directory http;//www.dcs.gla.ac.uk/~wpc/reports/compilers/compilerindex
A release of the runtime library on its own is in
rtl.jar
Windows only releases start with then name winstall
Keywords: Pascal, free Compiler, MMX, Vector, SSE, 3Dnow!,APL, SIMD compiler, Matrix
Compiler
Page |
wpc@dcs.gla.ac.uk |
Teaching exercises |