LRDE
Seminar, Wednesday, June 19th 2002
14h, Le Premier LISP, Didier Verna
LISP, acronyme de «List Processor», est un langage de programmation
originellement développé vers la fin des années 50 au laboratoire
d'intelligence artificielle du MIT. John Mc Carthy (le principal concepteur du
langage) le décrit pour la première fois en 1960 dans une publication
désormais célèbre: «Recursive Functions of Symbolic Expressions and their
Computation by Machine.».
L'objet de cet exposé est double: décrire le premier LISP et montrer que, bien
plus qu'un simple nouveau langage, LISP constitue un véritable tournant
conceptuel dans l'informatique. Basé sur l'idée clé qu'à la fois le code et
les données doivent être représentées selon une structure commune (structure
de liste), LISP est construit à partir d'une demi-douzaine d'opérateurs
simples, et il est instantanément possible d'écrire LISP en LISP.
LISP est apparu accompagné de plusieurs concepts novateurs, dont la plupart
sont toujours d'actualité et dont certains réapparaissent à nouveau dans des
langages plus récents.
15h, Function Objects of the C++ Std Library: Just Do Not Use Them!, Thierry Geraud
La bibliothèque standard du C++ propose des outils pour que
l'utilisateur puisse définir ``à la volée'' des ``fonctions'' comme
dans le code caml suivant : List.map (function x -> 2 * x + 1) l;;
mais l'écriture n'est pas très lisible :
map(compose1(bind2nd(plus
(), 1),
bind1st(multiplies(), 2)), l);
Le but de cet exposé est de présenter des outils C++ dont la saveur
est fonctionnelle. Ces outils sont des briques de base que
l'utilisateur peut assembler le plus simplement possible. Il peut
alors écrire :
id x; map(l, 2 * x + 1);
16h, Expression template au dela de l'arithmetique, Francis Maes
Les expression template permettent de representer une expression
arithmetique a l'aide d'un arbre syntaxique statique. L'interet d'une
telle methode est de pouvoir redefinir la/les methodes d'evaluation de
cet arbre, ou encore de creer des nouvelles operations sur cet
arbre. En generalisant cette methode, on peut aller au dela de la
manipulation de l'arithmetique. Ainsi, en integrant les concepts de
variables, control d'execution, types, fonctions... on obtient une
methode originale de conversion de programmes Tiger (langage a saveur
fonctionnel) en C++.
- introduction
- fonctionnement des expressions templates
- caracteristiques du tiger
- besoin d'une notion d'environment
- gestions des variables
- gestions des types
- gestions des fonctions
- fonctions recursives
- conclusion
Reports and Slides
Reports and Slides are available from their own pages.
Reports
Francis Maes. Program Templates: Expression Templates Applied to Program Evaluation. DP-COOL'03. Uppsala, Sweden August 25, 2003
Slides
Didier Verna. Le Premier LISP. CSI Seminar Juin 2002
Francis Maes. Expression template au dela de l'arithmetique. CSI Seminar june 19, 2002
Thierry Geraud. Function Objects of the C++ Std Library: Just Do Not Use Them!. CSI Seminar june 19, 2002
to top