MOVES: Software Modeling and Verification
Home Page of the Skil Project
The Skil Project
What is Skil?
Skil is an imperative, C-based language enhanced with a series of
functional features. It aims to provide a high programming level, which allows
the integration of algorithmic skeletons (Skil stands for
Skeleton Imperative Language). At the same time,
because of the base language, which is imperative, and because of the
instantiation technique used in the Skil compiler to translate the
functional features, Skil programs reach a higher performance than
their functional counterparts, approaching the efficiency of direct C
implementations. The main goals in the design of Skil were on the one
hand to provide it with constructs supporting polymorphism, the definition and
use of distributed data structures and higher-order functions, and on the other
hand, to simplify the base language (C) by eliminating some of its redundancies
and some of its features of lesser importance.
Give me more information
- The enhancements, restrictions and grammar of Skil are given
- Some papers on Skil and related topics can be found
An Skil example
are the headers of the skeletons working on
distributed arrays that have been implemented so far.
- Some examples of parallel Skil programs based on the array skeletons:
The Skil prototype version was
debugged and extended by some C elements like const or enum.
Now you can include all header files from the C-Compiler instead of
designing your own.
You can download the Skil-Compiler source or the pre-compiled executables
for Linux (Kernel 2.2.x) or Windows.
Working on and with Skil
Currently the Skil compiler is in use for implementation of Algorithmic
Skeletons for Parallel Adaptive Multigrid Methods by
More information you will find on the Pamusk
Adriano Gaeta has debugged and improved the compiler.
If you are interested in improving Skil,
developing new features or intend to write a Master Thesis
(Diplomarbeit) in this context, please contact
Last modified: Thu Jun 7 11:20:01 CEST 2001