Unconventional Programming Paradigms
"Challenges, Visions and Research Issues for New
Programming Paradigms"
15 - 17 September 2004, Mont Saint-Michel,
France
Rationale
The imperative,
functional, object and logical programming paradigms still do not have
met the high expectations of the 80's and the 90's in terms of
reusability, modularity, correctness,
expressivity, evolution, encapsulation,
portability and, at last but not least, ease of programming.
For example, there is still no clear agreement on
a model for parallel programs or on a programming model best suited
to develop provably correct code.
At the same time, a program is no more a monolithic entity
conceived, produced and finalized before being used. A program is
now seen as an opened and adaptive frame, which has to face the proliferation
of the hardware and software environments, the integration of the
functions within the same interfaces and to incorporate dynamically
services not foreseen by the initial designer. This new requirements
calls for new control structures and program interactions.
Unconventional approaches of programming have long
been developed in various niches and constitute a reservoir of alternative
avenues to face the programming languages crisis. These new models
of programming are also currently experiencing a renewed period of
growth to face specific needs and new application domains. Examples
are given by artificial chemistry, declarative flow programming, L-systems,
P-systems, amorphous computing, visual programming systems, musical
programming, multi-media interaction, etc.
These
approaches provide new abstractions and new notations or develop
new ways of interacting with programs. They are
implemented by embedding new and sophisticated data structures in
a classical programming model (API), by extending an existing language
with new constructs (to handle concurrency, exceptions, open environment,
...), by conceiving new software life cycles and program execution
(aspect weaving, run-time compilation) or by relying on an entire new
paradigm to specify a computation.
The practical applications of these new programming
paradigms prompt researches into the expressivity, semantics
and implementation of programming languages and systems architectures,
as well as into the algorithmic complexity and optimization of programs.