From: Pascal Costanza
Subject: [CfP] Dynamic Languages Day @ Brussels
Date: 
Message-ID: <42mschF1jqj4bU5@individual.net>
Dynamic Languages Day @ Vrije Universiteit Brussel
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Monday,  February 13,  2006,  VUB Campus Etterbeek

The VUB (Programming Technology Lab, System and Software Engineering 
Lab), ULB (deComp) and the Belgian Association for Dynamic Languages 
(BADL) are very pleased to invite you to a whole day of presentations 
about the programming languages Self, Smalltalk and Common Lisp by 
experts in these languages. Besides some introductory material for each 
language, the reflective facilities in the respective programming 
environments will be highlighted. The presentations will be especially 
interesting for people with good knowledge about current mainstream 
object-oriented languages like Java, C# and C++ who want to get a deeper 
understanding about the expressive power of Self, Smalltalk and Common 
Lisp. In order to prepare the ground for these presentations, Professor 
Viviane Jonckers will introduce the day by an overview of the benefits 
of teaching dynamic languages to undergraduate students in computer 
science. She will especially discuss the specific advantages of using 
Scheme as an introductory language instead of the more widely employed 
Java language.

Attendance is free and open to the public. Please make sure to register 
for the event by sending an e-mail to Pascal Costanza 
(···············@vub.ac.be), so we can plan ahead. The number of places 
will be limited according to the exact location of the event and will be 
allocated on a first-come, first-serve basis. Watch the website for the 
exact schedule, location and any news at 
http://prog.vub.ac.be/events/2005/BADL/DLD/dld.html.

Abstracts of the Talks
~~~~~~~~~~~~~~~~~~~~~~

Scheme as an introductory language (Viviane Jonckers)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The VUB has a rich history in dynamic programming language teaching and 
research. Ever since the late 80's, compulsory courses on Lisp and 
Smalltalk have played an important role in the last two years of the 
computer science curriculum. Since the early 90's, this role was further 
intensified by selecting Scheme as the introductory course in the first 
year and by promoting Scheme as the lingua franca for most courses in 
the first two years. Professor Jonckers' introductory talk to the 
dynamic languages day explains how this early exposure to the dynamic 
paradigm is the seed that gives students the skills to fully grasp and 
appreciate the more advanced dynamic paradigms (such as Lisp, CLOS, 
Smalltalk and Self) in subsequent courses of their computer science 
training.

Self (Ellen Van Paesschen)
~~~~~~~~~~~~~~~~~~~~~~~~~~

Self is a prototype-based object-oriented programming language where 
everything is an object and all manipulation of objects is initiated 
through message sending. A prototype-based language eschews classes and 
allows object creation ex-nihilo or by cloning prototypes. Self 
resembles Smalltalk in both its syntax and semantics. Other 
characteristics of Self are delegation (object-centered inheritance), 
parent sharing and child sharing (multiple inheritance), and dynamic 
parent modification. Further the Self environment includes a powerful 
mechanism for reflective meta-programming based on mirror objects. The 
Self group were also the first to introduce traits objects that gather 
shared and reusable behavior between objects in order to program in a 
more efficient and structured way.

After a brief introduction to the highly interactive Self environment 
the language's basics and its syntax and semantics are presented. Next 
the most important advanced features such as mirrors and dynamic parent 
modification are illustrated.

Smalltalk (Johan Brichau, Roel Wuyts)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Smalltalk is class-based object-oriented programming language. 
Everything in Smalltalk is an object and these objects communicate 
through messages. The Smalltalk language itself offers only very few 
programming constructs and is thus easy to learn and grasp. Therefore, 
the expressive power of Smalltalk lies in its huge library of 
frameworks, which includes an extensive metaobject protocol that enables 
powerful dynamic (runtime) reflection. Furthermore, perhaps one of the 
most significant advantages of Smalltalk outside of the language itself 
is that software development is a truly dynamic experience. The 
Smalltalk environment features the incremental development of an 
application where there is no strict separation between development and 
execution cycles, leading to an interactive and dynamic development process.

Besides a short introduction to the Smalltalk programming language, this 
presentation will focus on the dynamic reflective facilities of 
Smalltalk. We will demonstrate the power of its metaobject protocol 
through a number of tools that extensively rely on it. Furthermore, we 
will provide some insight in the dynamic nature of Smalltalk development 
through a live demonstration.

Generic Functions and the CLOS Metaobject Protocol (Pascal Costanza)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The Common Lisp Object System (CLOS) is unique in two ways.

* In most OOP languages, methods belong to classes and are invoked by 
sending messages. In CLOS, methods belong to generic functions instead 
of classes, and those generic functions select and execute the correct 
method according to the types of the arguments they receive.

* The CLOS Metaobject Protocol (MOP) specifies how its essential 
building blocks are to be implemented in CLOS itself. This allows 
extending its object model with metaclasses that change important 
aspects of CLOS for a well-defined scope.

This presentation introduces these two notions. The code for an 
interpreter for generic functions that performs selection and execution 
of methods will be developed live during the presentation. This will be 
followed by a discussion how that code can be extended to introduce, for 
example, multimethods and AOP-style advices, and a sketch how generic 
functions are implemented efficiently in the "real" world. In the second 
part, the extensibility of the CLOS MOP will be illustrated by 
implementing - live - the (hashtable-based) Python object model as a 
metaclass. Other practical extensions based on the CLOS MOP are also 
sketched, like object-relational mappings, interfaces to 
foreign-language objects, and domain-specific annotations in classes.


Biographies
~~~~~~~~~~~

Viviane Jonckers received a master degree in Computer Science from the 
Vrije Universiteit Brussel in 1983 and a Ph.D. degree in Sciences from 
the same university in 1987. Since 1987 she is a professor both in the 
Computer Science Department of the faculty of Sciences as in the 
Computer Science group of the Engineering Faculty. Currently, she is the 
director of the System and Software Engineering Lab. Her current 
research interests are in integrated software development methods with a 
focus on component based software development and aspect oriented 
software development. She participated in and has been project manager 
of several national and international R&D projects.

Roel Wuyts is professor at the University Libre de Bruxelles, where he 
leads the deComp group. His fields of interest are logic meta 
programming, forms of reflection and language design. On the side he 
also dabbles in development environments. Quite a lot his development is 
done in Smalltalk, extensively using the reflective facilities in that 
language to do research in language symbiosis, development environments 
and for rapid programming in gneral. From the moment he realized that 
dynamicity was what he really liked in all of his favourite programming 
languages (Smalltalk, Prolog and Scheme), he has been trying to grow the 
dynamic languages field again. Part of this endavour was the 
organization of the first Dynamic Language Symposium, a symposium 
co-organized with OOPSLA'2005 in San Diego.

Johan Brichau currently holds a postdoc position at the Laboratoire 
d'Informatique Fondamentale de Lille (LIFL). He is also associated with 
the Programming Technology Lab at the Vrije Universiteit Brussel, where 
he obtained a Ph.D. degree in Computer Sciences in 2005. Johan's 
research is focusing on the use of metaprogramming in the context of 
generative programming techniques and aspect-oriented programming 
languages. To this extent, he has been extensively using the Smalltalk 
metaobject protocol for the creation and development of (generative) 
logic metaprogramming techniques as well as aspect-oriented language 
extensions to Smalltalk.

Pascal Costanza has a Ph.D. degree from the University of Bonn, Germany. 
His past involvements include specification and implementation of the 
languages Gilgul and Lava, and the design and application of the 
JMangler framework for load-time transformation of Java class files. He 
has also implemented ContextL, the first programming language extension 
for Context-oriented Programming based on CLOS, and aspect-oriented 
extensions for CLOS, which all heavily rely on the CLOS MOP. He is 
furthermore the initiator and lead of Closer, an open source project 
that provides a compatibility layer for the CLOS MOP across multiple 
Common Lisp implementations.

Ellen Van Paesschen obtained a master degree in computer science at the 
Vrije Universiteit Brussel in 2000. Currently she is a Ph.D. student at 
the Programming Technology Lab. Ellen's research is focusing on using 
dynamic and prototype-based languages for model-driven development and 
round-trip engineering (RTE). She has created a research prototype of a 
dynamic prototype-based RTE environment in Self which is the main 
implementation language in her research. This environment differs from 
other existing tools at the level of synchronisation, run-time objects 
and constraint enforcement steered from an analysis model. Her other 
interests include (the analysis phase during) software engineering and 
role modelling.