Here is an interesting selection of recent publications.
CLoX: Common Lisp Objects for XEmacs
Verna, D. (2010). In
Proceedings of the 3rd European Lisp Symposium.
-
Paper
-
CLoX is an ongoing attempt to provide a full Emacs Lisp
implementation of the Common Lisp Object System, including
its underlying meta-object protocol, for XEmacs. This paper
describes the early development stages of this project.
CLoX currently consists in a port of Closette to Emacs
Lisp, with some additional features, most notably, a deeper
integration between types and classes and a comprehensive
test suite. All these aspects are described in the paper,
and we also provide a feature comparison with an
alternative project called Eieio.
Revisiting the Visitor: the Just Do It Pattern
Verna, D. (2010). In
Journal of Universal Computer Science,
Volume 16,
Issue 2,
Pages 246 -- 271.
-
Paper
-
Lisp Code
-
While software design patterns are a generally useful
concept, they are often (and mistakenly) seen as ready-made
universal recipes for solving common problems. In a way, the
danger is that programmers stop thinking about their actual
problem, and start looking for pre-cooked solutions in some
design pattern book instead. What people usually forget
about design patterns is that the underlying programming
language plays a major role in the exact shape such or such
pattern will have on the surface. The purpose of this paper
is twofold: we show why design pattern expression is
intimately linked to the expressiveness of the programming
language in use, and we also demonstrate how a blind
application of them can in fact lead to very poorly designed
code.
CLOS Efficiency: Instantiation
-- On the Behavior and Performance of Lisp, Part 2.1
Verna, D. (2009). In
Proceedings of the
International Lisp Conference , MIT, Cambridge, Massachusetts, USA.
-
Paper
-
Slides
-
Benchmarks
-
This article reports the results of an ongoing
experimental research on the behavior and performance
of CLOS, the Common Lisp Object System. Our purpose is to
evaluate the behavior and performance of the 3 most
important characteristics of any dynamic object
oriented system: class instantiation, slot access and
dynamic dispatch. This paper describes the results of
our experiments on instantiation. We evaluate the
efficiency of the instantiation process in both C++
and Lisp under a combination of parameters such as
slot types or classes hierarchy. We show that in a
non-optimized configuration where safety is given
priority on speed, the behavior of C++ and Lisp
instantiation can be quite different, which is also the
case amongst different Lisp compilers. On the other
hand, we demonstrate that when compilation is tuned for
speed, instantiation in Lisp can become faster than in
C++.
Binary Methods Programming: the CLOS Perspective.
Verna, D. (2008). In
Journal of Universal Computer Science,
Volume 14,
Issue 20,
Pages 3389 - 3411.
-
Paper
-
Implementing binary methods in traditional object-oriented languages is
difficult: numerous problems arise regarding the relationship between types
and classes in the context of inheritance, or the need for privileged access
to the internal representation of objects. Most of these problems occur in
the context of statically typed languages that lack multi-methods
(polymorphism on multiple arguments). The purpose of this paper is twofold:
first, we show why some of these problems are either non-issues, or easily
solved in Common-Lisp. Then, we demonstrate how the Common-Lisp Object
System (CLOS) allows us not only to implement binary methods in a
straightforward way, but also to support the concept directly, and even
enforce it at different levels (usage and implementation).
LaTeX Curricula Vitae with the CurVe Class
Verna, D. (2006). In
The PracTeX Journal,
number 3,
August 2006.
-
Paper
-
This paper presents CurVe, a curriculum vitae class for LaTeX2e, in a
progressive approach going from a first contact with the class, through
concrete examples of customization, and some aspects of advanced usage.
Beating C in Scientific Computing Applications
-- On the Behavior and Performance of Lisp, Part I.
Verna, D. (2006). In
Third European LISP Workshop at
ECOOP , Nantes, France.
-
Best paper award winner
-
Paper
-
Slides
-
This paper presents an ongoing research on the behavior and
performance of LISP with respect to C in the context of scientific
numerical computing. Several simple image processing algorithms are
used to evaluate the performance of pixel access and arithmetic
operations in both languages. We demonstrate that the behavior of
equivalent LISP and C code is similar with respect to the choice of
data structures and types, and also to external parameters such as
hardware optimization. We further demonstrate that properly typed and
optimized LISP code runs as fast as the equivalent C code, or even
faster in some cases.
CV formatting with CurVe.
Verna D. (2003). In
TugBoat, volume
22, number 4,
December 2001, pages 361 -- 364.
-
Paper
-
This paper relates the history of the development of Curve, a LaTeX2e
class package for typesetting curricula vitae, and describes its
specificities as well as the main aspects of it use.