The Common Lisp Directory/Papershttp://www.cl-user.net/asp/tags/11465The last modified items of the Common Lisp Directory for the tag: Papersen-USTue, 03 Mar 2015 22:05:09 GMTTue, 03 Mar 2015 22:05:09 GMTFractal Concept Web Application FrameworkCLoX: Common Lisp Objects for XEmacs (Added)http://www.cl-user.net/asp/web-sites/CLoX17656Tue, 15 Jun 2010 07:15:35 GMTCLoX 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. Maintaining Portable Lisp Programs - It's a bug, not a feature (Modified)http://www.cl-user.net/asp/web-sites/features11528Sun, 21 Feb 2010 15:01:23 GMTPaper by Christophe Rhodes, 5 February 2004. It examines "the use of read-time feature conditionals, with particular emphasis on writing portable Common Lisp code which aspires to both forwards- and backwards-compatibility". After an introduction and an historical perspective, the paper reviews existing practices in using read-time conditionals, and provides some recommendations.Revisiting the Visitor: the "Just Do It" Pattern. (Added)http://www.cl-user.net/asp/web-sites/VisitorPattern16833Tue, 28 Apr 2009 08:07:14 GMTA software design pattern is a three-part rule which expresses a relation between a certain context, a problem, and a solution. The well-known "GoF Book" describes 23 software design patterns. Its influence in the software engineering community has been dramatic. However, Peter Norvig notes that "16 of [these] 23 patterns are either invisible or simpler [...]" in Dylan or Lisp (Design Patterns in Dynamic Programming, Object World, 1996).
We claim that this is not a consequence of the notion of "pattern" itself, but rather of the way patterns are generally described; the GoF book being typical in this matter. Whereas patterns are supposed to be general and abstract, the GoF book is actually very much oriented towards mainstream object languages such as C++. As a result, most of its 23 "design patterns" are actually closer to "programming patterns", or "idioms", if you choose to adopt the terminology of the POSA Book.
In this talk, we would like to envision software design patterns from the point of view of dynamic languages and specifically from the angle of CLOS, the Common Lisp Object System. Taking the Visitor pattern as an illustration, we will show how a generally useful pattern can be blurred into the language, sometimes to the point of complete disappearance.
The lesson to be learned is that software design patterns should be used with care, and in particular, will never replace an in-depth knowledge of your preferred language (in our case, the mastering of first-class and generic functions, lexical closures and meta-object protocol). By using patterns blindly, your risk missing the obvious and most of the time simpler solution: the "Just Do It" pattern.
Binary Methods Programming: the CLOS Perspective. (Added)http://www.cl-user.net/asp/web-sites/BinMeths16832Tue, 28 Apr 2009 08:00:19 GMTImplementing 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). CLOS Efficiency: Instantiation -- On the Behavior and Performance of Lisp, Part 2.1 (Added)http://www.cl-user.net/asp/web-sites/OBPL2115629Tue, 28 Apr 2009 07:54:14 GMTThis 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++. Beating C in Scientific Computing Applications -- On the Behavior and Performance of Lisp, Part I. (Modified)http://www.cl-user.net/asp/web-sites/OBPL114185Tue, 28 Apr 2009 07:38:23 GMTThis 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. The Long, Painful History of Time (Added)http://www.cl-user.net/asp/web-sites/lugm-time14659Mon, 20 Nov 2006 15:54:41 GMTA paper by Erik Naggum published in the Proceedings of the Lisp User Group Meeting, October 1999. "This paper discusses some of the problems inherent in processing time suitable to humans and describes a solution employed by the author in a number of applications, the LOCAL-TIME concept".Portable Utilities for Common Lisp - User Guide and Implementation Notes (Added)http://www.cl-user.net/asp/web-sites/CMU-CS-91-14314610Mon, 13 Nov 2006 15:11:34 GMTSchool of Computer Science, Carnegie Mellon University technical report CMU-CS-91-143 by Mark Kantrowitz, May 1991. The autor describes the design, implementation and usage of a set of portable Common Lisp tools: a code cross referencer (XREF), a profiler (METERING), a system definition tool (DEFSYSTEM), an implementation of logical pathnames (LOGICAL-PATHNAMES), a diff-like tool (SOURCE-COMPARE), and a source code documentation generator (USER-MANUAL).CLISP's memory management (Added)http://www.cl-user.net/asp/web-sites/clisp-mem14524Tue, 07 Nov 2006 08:01:38 GMTA paper by Bruno Haible, published on 19 February 1995, summarizing the memory management system of the CLISP Common Lisp implementation. It describes the generational garbage collection algorithm and some efficiency tricks.User-Level Language Crafting: Introducing the CLOS Metaobject Protocol (Commented)http://www.cl-user.net/asp/web-sites/paepcke93userlevel14208Sun, 22 Oct 2006 21:27:12 GMTPaper by Andreas Paepcke published in the book "Object-Oriented Programming: the CLOS perspective", MIT Press, 1993. It discusses how CLOS carries the idea of open and modular systems to the realm of language design.Calendrical Calculations, II: Three Historical Calendars (Added)http://www.cl-user.net/asp/web-sites/calendrical-calculations214489Wed, 18 Oct 2006 13:36:04 GMTPaper by Edward M. Reingold, Nachum Dershowitz, and Stewart M. Clamen published in "Software-Practice and Experience", 23 (1993), pagg. 383-404. It provides algorithmic presentations of three calendarss of historical interest: Mayan, French Revolutionary, and Old Hindu. It includes Common Lisp source code for calendar conversions.Calendrical Calculations (Added)http://www.cl-user.net/asp/web-sites/calendrical-calculations14458Tue, 17 Oct 2006 13:58:40 GMTPaper by Nachum Dershowitz and Edward M. Reingold published in "Software-Practice and Experience", 20 (1990), pagg. 899-928. It provides a unified algorithmic presentation of major calendars, and includes Common Lisp source code for calendar conversions and holiday computations.DNS Message Decoding - A Case Study Comparing Java and Common Lisp (Added)http://www.cl-user.net/asp/web-sites/case_study_java_lisp_dns14351Sun, 24 Sep 2006 08:29:43 GMTA study that compares two implementations of a DNS resolver library, one written in Common Lisp and the other in Java. 30 May 2004.The common Lisp object system metaobject kernel: a status report (Added)http://www.cl-user.net/asp/web-sites/p309-bobrow14210Thu, 21 Sep 2006 06:05:18 GMTPaper published in the "Proceedings of the 1988 ACM conference on LISP and functional programming". A status report on the design of the CLOS Metaobject Protocol (MOP). The paper "is organized around the classes used to implement CLOS, describing reasons for the class organization chosen, and how these classes participate in some protocols of the system".
The Nature of Lisp (Added)http://www.cl-user.net/asp/web-sites/nature-of-lisp13918Mon, 03 Jul 2006 10:50:49 GMTAn article that is an "attempt to explain Lisp in familiar, intuitive concepts". The author tells how he found and approached Lisp, and introduces the main concepts and features of Common Lisp.The Idiot's Guide to Common Lisp Packages (Added)http://www.cl-user.net/asp/web-sites/ron-packages13802Wed, 07 Jun 2006 07:24:13 GMTA tutorial by Ron Garret on Common Lisp packages. It covers symbols, values and the REPL loop, interning, home packages, exporting symbols and using packages, shadowing, and DEFPACKAGE.The Idiot's Guide to Special Variables and Lexical Closures (Added)http://www.cl-user.net/asp/web-sites/ron-specials13730Tue, 06 Jun 2006 12:15:00 GMTA tutorial by Ron Garret on Common Lisp special variables. It covers variables and bindings, lexical and dynamic scope, DEFVAR, and lexical closures.Performance (Added)http://www.cl-user.net/asp/web-sites/kanderson-performance13552Sat, 22 Apr 2006 11:04:39 GMTA web site with information and links to papers and resources on Lisp performance issues and profiling, particularly Common Lisp.Kent Pitman's Publications (Added)http://www.cl-user.net/asp/web-sites/kmp-publications13481Wed, 19 Apr 2006 10:38:02 GMTA collection of research papers, journal articles, essays and other Lisp writings by Kent Pitman. Covered topics include Common Lisp design and standardization, Artificial Intelligence, software engineering, and more.LISP Deserves a Fresh Look (Added)http://www.cl-user.net/asp/web-sites/lisp-fresh-look13207Tue, 21 Mar 2006 15:32:17 GMTArticle by Peter Coffee published on the February 7, 2006 issue of eWeek. It discusses the potential of Lisp, particularly Common Lisp, for developing web applications "using fewer lines of code, and with acceptable memory use and execution speed".A Guided Tour of the Common Lisp Interface Manager (Annotated)http://www.cl-user.net/asp/web-sites/lp9012263Fri, 24 Feb 2006 18:33:25 GMTPaper by Ramana Rao, William York and Dennis Doughty published in 1990(?) by Lisp Pointers.
It provides an overview of CLIM's facilities and presents a series of examples. Although the sample code is based on an obsolete version of CLIM, the concepts discussed in the paper are still valid and useful for understanding CLIM.Language Constructs for Context-oriented Programming (Added)http://www.cl-user.net/asp/web-sites/ContextL%20Paper12697Tue, 14 Feb 2006 21:06:52 GMTContextL is an extension to the Common Lisp Object System that allows for Context-oriented Programming. It provides means to associate partial class and method definitions with layers and to activate and deactivate such layers in the control flow of a running program. When a layer is activated, the partial definitions become part of the program until this layer is deactivated. This has the effect that the behavior of a program can be modified according to the context of its use without the need to mention such context dependencies in the affected base program. We illustrate these ideas by providing different UI views on the same object while, at the same time, keeping the conceptual simplicity of object-oriented programming that objects know by themselves how to behave, in our case how to display themselves. These seemingly contradictory goals can be achieved by separating class definitions into distinct layers instead of factoring out the display code into different classes.Interview with Samantha Kleinberg on CL-GODB, Common Lisp & Bioinformatics (Added)http://www.cl-user.net/asp/web-sites/samantha-lisp12633Mon, 13 Feb 2006 13:40:53 GMTAn article in which Emre Sevinc interviews Samantha Kleinberg, one of the 2005 Google Summer of Code developers. Her project, CL-GODB, is a bioinformatics system written in Common Lisp.
Knee-jerk Anti-LOOPism and other E-mail Phenomena (Added)http://www.cl-user.net/asp/web-sites/ccswp15012592Sun, 05 Feb 2006 10:05:25 GMT"Knee-jerk Anti-LOOPism and other E-mail Phenomena: Oral, Written, and Electronic Patterns in Computer-Mediated Communication" is a paper by JoAnne Yates and Wanda J. Orlikowski. MIT Sloan School Working Paper #3578-93; Center for Coordination Science Techincal Report #150; July 1993.
The paper "reports on an empirical investigation into the on-going electronic interaction of a natural distributed group". The selected group was the ANSI Common Lisp committee, which extensively used email for its standardization work.Using a waiting protocol to separate concerns in the mutual exclusion problem (Added)http://www.cl-user.net/asp/web-sites/tr-2003-4612262Mon, 16 Jan 2006 17:37:52 GMTPaper by Frode V. Fjeld, Department of Computer Science, University of Tromso (Norway) Technical Report 2003-46, 21 November 2003.
It proposes a separation of concerns in concurrent systems between mutual exclusion detection and how to handle it. The paper also discusses Common Lisp code for a waiting protocol that helps design and implement both the lower and higher levels of such a system, and how the technique can be used for deadlock prevention.Henry Baker's Archive of Research Papers (Added)http://www.cl-user.net/asp/web-sites/henry-baker-papers12212Mon, 16 Jan 2006 17:10:57 GMTCollection of papers on programming languages research, including some on Common Lisp implementation issues and CLOS."A Survey of Current CLOS MOP Implementations" (Added)http://www.cl-user.net/asp/web-sites/mop-survey12166Sun, 15 Jan 2006 23:46:02 GMTThis paper surveys implementations of the CLOS MOP in some of the more popular implementations of Common Lisp. First a brief overview of the CLOS MOP is given. A number of Common Lisp implementations are then examined independently in order to assess which aspects of the CLOS MOP they provide. A comparison is made between the various implementations. Particular attention is given to what portion of the CLOS MOP is implemented and how faithful the implementation is to the metaobject protocol described in the The Art of the Metaobject Protocol[1]. A summary of the overall availability of the CLOS MOP is then given. Finally a proposed categorization of the functionality of the CLOS MOP is described.CLOS in Context: The Shape of the Design Space (Added)http://www.cl-user.net/asp/web-sites/clos-book-design12211Sun, 15 Jan 2006 17:07:36 GMTChapter written by Daniel G. Bobrow, Richard P. Gabriel and Jon L. White for the book "Object-Oriented Programming: The CLOS Perspective" (edited by Andreas Paepcke, MIT Press, 1992). It examines the design space of CLOS in the context of related ideas from other programming languages,CLOS: Integrating Object-Oriented and Functional Programming (Added)http://www.cl-user.net/asp/web-sites/clos-cacm-9112210Sun, 15 Jan 2006 16:58:36 GMTPaper by Richard P. Gabriel, Jon L. White and Daniel G. Bobrow published in the Sep. 1991 issue of CACM. It discusses how CLOS combines previous programming traditions and ideas.The Common Lisp Object System: An Overview (Added)http://www.cl-user.net/asp/web-sites/clos-ecoop-8712209Sun, 15 Jan 2006 16:45:11 GMTPaper by Richard P. Gabriel and Linda DeMichiel published at ECOOP 1987. It introduces the major ideas of CLOS: generic functions, classes and inheritance, method combination and the meta-object protocol.Infornography - Gene Michael Stover's web site (Added)http://www.cl-user.net/asp/web-sites/infornography12101Sun, 15 Jan 2006 12:57:43 GMTLarge collection of computing articles by Gene Michael Stover, many of which about learning and using Common Lisp.Guide to good Lisp style (Added)http://www.cl-user.net/asp/web-sites/Style%20guide11904Thu, 12 Jan 2006 12:31:32 GMTThe Evolution of Lisp (Added)http://www.cl-user.net/asp/html-docs/lisp-evolution11432Tue, 10 Jan 2006 17:23:34 GMTA paper by Guy Steele jr. and Richard P. Gabriel describing the different lisp dialects between and including McCarthy's Lisp 1.5 from 1960 and Common Lisp of today. It shows in 109 pages how the design choices, the underlying hardware, the purpose of the dialects and the competition influenced each other over the years and it gives a nice insight in how Common Lisp became what it is.Gsharp - The Extensible, Interactive Score Editor (Added)http://www.cl-user.net/asp/web-sites/gsharp11555Sat, 07 Jan 2006 16:36:41 GMTPaper by Robert Strandh, September 2003.
It explains how to install and run the Gsharp musical score editor and perform basic operations. It also includes a reference manual, and discusses the program internals and main algorithms.PCLOS Reference Manual (Added)http://www.cl-user.net/asp/web-sites/pclos11553Sat, 07 Jan 2006 15:31:11 GMTHewlett-Packard HPL-91-182 technical report by Andreas Paepcke, 5 December 1991.
The document combines the manuals of versions 2.0, 2.1 and 3.0 of the CLOS-based PCLOS persistent object store. The first part provides and overview of the system, the others describe later modifications.On using Common Lisp for Scientific Computing (Added)http://www.cl-user.net/asp/web-sites/Preprint2002-4011533Sat, 07 Jan 2006 15:18:11 GMTPaper by Nicholas Neuss. Proceedings of the CISC Conference 2002, LNCSE, Springer-Verlag, 2003.
It supports the use of Lisp for scientific applications by comparing the performance of C and Lisp implementations of BLAS routines, and by discussing the Femlisp finite element framework.Using Common Lisp to Build Web Applications (Added)http://www.cl-user.net/asp/web-sites/lispification11490Fri, 06 Jan 2006 22:30:14 GMT"Using Common Lisp to Build Web Applications - Can a 40 year old Computer Language do Web Applications?". Paper by Nicky Peeters, 20 June 2003.
After a short introduction to Lisp, the document discusses the KPAX web application framework for Common Lisp and two applications based on it: an RSS syndication system and the Psilog weblog system.
KPAX is also mentioned in the article "Rebel With A Cause" by Sven Van Caekenberghe, of whom Peeters is a colleague.
Rebel With A Cause (Added)http://www.cl-user.net/asp/web-sites/rebel-with-a-cause11489Fri, 06 Jan 2006 22:23:34 GMT"Rebel With A Cause - Building Web Applications with Common Lisp - Deploying on an Apple Xserve running Mac OS X Server". Article by Sven Van Caekenberghe, October 2003, First Revision.
The document "is a case study in building Web Applications using Common Lisp and Object Prevalence and deploying them on an Apple Xserve running Mac OS X Server". It presents an example of a dynamic, interactive web site for a concert hall.Fast Floating-Point Processing in Common Lisp (Added)http://www.cl-user.net/asp/web-sites/fast-floats11488Fri, 06 Jan 2006 22:11:49 GMTPaper by R.J. Fateman, K.A. Broughan, D.K. Willcock and D. Rettig published in ACM Transactions on Mathematical Software (TOMS), Volume 21, Issue 1 (March 1995), pages 26-62.
The paper explores the benefits of Common Lisp for fast numerical computation, and compares it to Fortran in terms of efficiency of generated code.Common Lisp B-level course (Added)http://www.cl-user.net/asp/web-sites/common-lisp-9711487Fri, 06 Jan 2006 22:04:19 GMTNotes from the lectures, spring of 1997, Mid-Sweden University - Sundsvall. Teacher and instructor for the labworks J.E. Spragg. These notes provide an introductory coverage of the Common Lisp language.Some Useful Lisp Algorithms: Part 2 (Added)http://www.cl-user.net/asp/web-sites/tr1993-01711486Fri, 06 Jan 2006 21:51:04 GMTCollection of 3 technical papers written during 1992 and 1993 by Richard "Dick" Waters and submitted to the ACM Lisp Pointers journal.
The first paper, titled "Using the New Common Lisp Pretty Printer", illustrates the use of the Common Lisp pretty printer by using it to print a subset of Lisp as Pascal.
The second, titled "Macroexpand-All: An Example of a Simple Lisp Code Walker", presents the MACROEXPAND-ALL function for expanding all the macro calls in an expression. The implementation of MACROEXPAND-ALL is based on the CLtL2 version of Common Lisp.
The third paper, "To NReverse When Consing a List or By Pointer Manipulation, To Avoid It; That Is the Question", discusses whether, for creating an ordered list of elements, it is better to push the items one at a time and then call NREVERSE, or to enter the elements in the list in the correct order.Some Useful Lisp Algorithms: Part 1 (Added)http://www.cl-user.net/asp/web-sites/tr91-0411234Fri, 06 Jan 2006 21:38:55 GMTCollection of 3 technical papers written during 1991 by Richard "Dick" Waters and submitted to the ACM Lisp Pointers journal.
The first paper, titled "Supporting the Regression Testing of Lisp Programs", presents the RT regression testing tool.
The second, titled "Determining the Coverage of a Test Suite", presents a coverage analysis tool called COVER that helps in assessing the coverage of a test suite, such as one created for RT.
The third paper, "Implementing Queues in Lisp", discusses why the obvious list-based implementation of queues is inefficient, and presents several different queue implementations.