  When algorithmic skeletons were first introduced by Cole in late 1980 the
idea had an almost immediate success. The skeletal approach has been proved to
be effective when application algorithms can be expressed in terms of skeletons
composition. However, despite both their effectiveness and the progress made in
skeletal systems design and implementation, algorithmic skeletons remain absent
from mainstream practice. Cole and other researchers, focused the problem. They
recognized the issues affecting skeletal systems and stated a set of principles
that have to be tackled in order to make them more effective and to take
skeletal programming into the parallel mainstream. In this thesis we propose
tools and models for addressing some among the skeletal programming
environments issues. We describe three novel approaches aimed at enhancing
skeletons based systems from different angles. First, we present a model we
conceived that allows algorithmic skeletons customization exploiting the macro
data-flow abstraction. Then we present two results about the exploitation of
meta-programming techniques for the run-time generation and optimization of
macro data-flow graphs. In particular, we show how to generate and how to
optimize macro data-flow graphs accordingly both to programmers provided
non-functional requirements and to execution platform features. The last result
we present are the Behavioural Skeletons, an approach aimed at addressing the
limitations of skeletal programming environments when used for the development
of component-based Grid applications. We validated all the approaches
conducting several test, performed exploiting a set of tools we developed.
