The Common Lisp Directory/CLOShttp://www.cl-user.net/asp/tags/closThe last modified items of the Common Lisp Directory for the tag: CLOSen-USTue, 03 Mar 2015 22:05:09 GMTTue, 03 Mar 2015 22:05:09 GMTFractal Concept Web Application Frameworkevol (Added)http://www.cl-user.net/asp/libs/evol17380Mon, 19 Apr 2010 17:33:49 GMTevol - entrenched virtues of lisp (love reversed) aims to be a compatible and full-fledged replacement for the GNU autotools stack targeted at coping with the autotools' shortcomings while not repeating the mistakes made and still being made at comparable build tool projects.Sheeple (Modified)http://www.cl-user.net/asp/libs/sheeple17026Sat, 23 Jan 2010 02:13:37 GMTSheeple is a delegative prototype-based object system inspired by CLOS.
It is designed with the purpose of providing the goodies of CLOS programming, but in an object-based environment.
As such, it shares a lot of syntax and semantics with CLOS, including multiple delegation (similar to multiple inheritance) and multiply-dispatched functions (similar to generic functions). 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++. SWCLOS: A Semantic Web Processor on Common Lisp Object System (Annotated)http://www.cl-user.net/asp/web-sites/SWCLOS13981Tue, 16 Dec 2008 03:24:25 GMTSWCLOS is a Semantic Web processor that is built on top of Common Lisp Object System (CLOS). Every resources in RDF and RDFS, e.g. rdfs:Class, rdfs:Resource, rdf:Property, and resource instances and properties are realized as CLOS objects with straightforward-mapping RDF/S classes to CLOS classes and RDF/S instances to CLOS instances. Axioms and entailment rules in RDF/S are embodied in the system so that a lisp programmer can codify ontology in RDF/S and use the ontology within the semantics specified by RDF/S documents. SWCLOS can read and write RDF/XML and N-triples format files as well as S-expression files. Thus, lisp programmers with SWCLOS can enjoy RDF/S programming in S-expression from the beginning to the end in their work without touching XML in communication with other people. In this paper, some examples same as on the Jena tutorial are demonstrated for the introduction of SWCLOS programming in comparison with Java, and a demonstration with the wine ontology explains the domain and range constraint functionality in SWCLOS. SWCLOS is opened to the public in the BSD-like Open Source principle. Contact the web page or the above email address.Singleton classes (Modified)http://www.cl-user.net/asp/libs/tfb-singleton-classes12927Wed, 03 Dec 2008 21:40:47 GMTA library for implementing singleton CLOS classes, i.e. classes that only have a single instance. This is part of the Lisp hacks collection by Tim BradshawKevin Raison (Added)http://www.cl-user.net/asp/persons/raison16520Mon, 29 Sep 2008 18:49:51 GMTFounder, President and Senior Consultant of Chatsubo.net LLC, a small IT firm headquartered in Seattle, Washington. Currently developing Lisp based application software for multimedia editing and publishing as well as voicemail processing. Implementing a distributed Lisp based data storage engine. Developing decision making software for automated administration of distributed systems.Jerry Boetje (Modified)http://www.cl-user.net/asp/persons/1617516175Sat, 15 Mar 2008 17:08:26 GMTCS instructor at the College of Charleston in Charleston, SC. Long-time Lisp user and developer. Architect and manager of the CLforJava project at the College of Charleston.Closer to MOP (Modified)http://www.cl-user.net/asp/libs/Closer%20to%20MOP12874Mon, 23 Apr 2007 11:32:03 GMTCloser to MOP is a compatibility layer that rectifies many of the absent or incorrect MOP features as detected by MOP Feature Tests in a growing number of Common Lisp implementations.
grand-prix (Added)http://www.cl-user.net/asp/libs/1265612656Mon, 12 Feb 2007 08:39:17 GMTTests, stress-test and performance-tests for Common Lisp object-databases and persistence libraries.
cl-perec (Added)http://www.cl-user.net/asp/libs/cl-perec15058Tue, 30 Jan 2007 13:08:07 GMTcl-perec is a library for RDBMS based CLOS persistencySISCOG - Sistemas Cognitivos Lta (Added)http://www.cl-user.net/asp/objects/SISCOG14782Sat, 25 Nov 2006 13:36:51 GMTSISCOG is a software company that provides decision-support systems for resource planning and management in transportation companies, especially in the field of railways. Lately other domains of application have been covered, keeping the focus on the resource planning and management, although diversifying for companies that have people working based on duties and rosters.cl-wdim (Modified)http://www.cl-user.net/asp/libs/cl-wdim14620Fri, 24 Nov 2006 19:29:46 GMTCl-wdim is "a Common Lisp web framework based on persistent CLOS". CL's MOP vs Java's Reflection (Added)http://www.cl-user.net/asp/web-sites/CL-MOPvsJava-reflection14493Tue, 31 Oct 2006 22:09:35 GMTA discussion about how the Common Lisp Meta Object Protocol compares to Java reflection.Design by Contract (Added)http://www.cl-user.net/asp/libs/dbc14540Mon, 30 Oct 2006 08:16:23 GMTAn implementation for CLOS of the Design by Contract method of software engineering, developed by Bertrand Meyer for the Eiffel programming language.computed-class (Added)http://www.cl-user.net/asp/libs/computed-class14521Sat, 28 Oct 2006 09:36:51 GMTA library that implements computed classes. "An instance of computed-class is a class meta object which supports per instance lazy computation of CLOS object slot values".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.defclass-star (Added)http://www.cl-user.net/asp/libs/defclass-star14469Sun, 15 Oct 2006 17:24:51 GMTdefclass* and defcondition* that automatically generates accessors other things that are schematic for most defclass declarations.Algorithme - Information Technology services (Modified)http://www.cl-user.net/asp/objects/algorithme14073Wed, 04 Oct 2006 13:16:25 GMTA company that offers custom software, knowledge-based systems and rapid application development services, also with the use of CLOS.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".
MCPat (Added)http://www.cl-user.net/asp/libs/mcpat14281Fri, 08 Sep 2006 23:21:07 GMTMCPat stands for Meta-Circular Pattern Matcher, a simple pattern matcher that executes code by lists against patterns.Span/NLI (Added)http://www.cl-user.net/asp/libs/span-nli14266Thu, 07 Sep 2006 07:35:36 GMTA set of portable extensions for bindings, CLOS-compatible message passing, easier manipulation of functions, continuations and cooperative multitasking.Erann's Lisp utilities (Added)http://www.cl-user.net/asp/libs/erann-lisp-utils13967Sun, 16 Jul 2006 09:24:35 GMTA small set of Common Lisp utilities for string and symbol operations, CLOS, mapping, flow control, anaphoric macros, and more. MOP Retrospective - Gregor Kiczales speaks to lispvan (Added)http://www.cl-user.net/asp/web-sites/mop-retrospective13920Wed, 12 Jul 2006 09:38:19 GMTA blog entry by Bill Clementson with a link to the audio recording of a talk given by Gregor Kikzales at the Vancouver Lisp Users Group (lispvan) meeting of June 28, 2006. The meeting was based on a questions and answers session with Kikzales, who covered many topics related to the CLOS Meta-Object Protocol (MOP).metacopy (Added)http://www.cl-user.net/asp/libs/metacopy13755Sun, 28 May 2006 10:44:47 GMTA toolkit for specifying how to make copies of CLOS objects.Moptilities (Added)http://www.cl-user.net/asp/libs/moptilities13649Sun, 07 May 2006 09:31:56 GMTA compatibility layer on top of various CLOS MOP implementations, with some additional reflection capabilities.Cells (Added)http://www.cl-user.net/asp/libs/cells13292Sat, 25 Mar 2006 10:19:02 GMTA dataflow, constraint-management extension to CLOS. It allows the creation of classes whose instances "have slots whose values are determined by a formula", like cells in a spreadsheet. Arbitrary Common Lisp expression can be used for specifying the value of a cell. "The Cells system takes care of tracking dependencies among cells, and propagating values".Defaulting optional arguments for generic functions (Added)http://www.cl-user.net/asp/libs/tfb-wrapping-standard12931Sun, 19 Feb 2006 14:16:48 GMTAn implementation of CLOS "wrapping" methods. They are "like around methods but happen outside them (so: before and after), and the least specific wrapping method is outermost". They provide a clean way for supplying defaults for generic function optional and keyword arguments, and are also useful for running "hooks"-like functionality. This is part of the Lisp hacks collection by Tim Bradshaw.Abstract classes (Added)http://www.cl-user.net/asp/libs/tfb-abstract-classes12926Sun, 19 Feb 2006 13:43:41 GMTAn implementation of abstract CLOS classes, i.e. classes that can be subclassed but not instantiated. This is part of the Lisp hacks collection by Tim Bradshaw.Lisp hacks (Added)http://www.cl-user.net/asp/libs/tfb-lisp-hacks12920Sun, 19 Feb 2006 13:02:09 GMTA collection of small libraries for packages, dynamic variables, lists, iteration, CLOS, and HTML generation.AspectL (Added)http://www.cl-user.net/asp/libs/AspectL12876Tue, 14 Feb 2006 21:28:34 GMTAspectL is a library that provides aspect-oriented extensions for Common Lisp / CLOS.MOP Feature Tests (Modified)http://www.cl-user.net/asp/libs/MOP%20Feature%20Tests12698Tue, 14 Feb 2006 21:27:19 GMTThis package provides a test suites for checking what CLOS MOP features a Common Lisp implementation supports.
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.BKNR Datastore (Commented)http://www.cl-user.net/asp/libs/bknr11313Sat, 11 Feb 2006 23:00:29 GMTThe bknr datastore is a persistence system based on transaction logging. Similar to Java Prevalence, it logs all changes to the persistent data to a transaction log file on disk. Snapshots can be written in order to speed up restoring long-running systems. The bknr datastore is implemented as a MOP metaclass. The independent bknr-indices subsystem provides for automatically maintained MOP object indices. The XML import/export subsystem is used to import persistent objects from XML files controlled by DTD files to map slots to attributes and nodes. The XML import/export facilities can be used without transaction logging for batch systems which solely work on XML files.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.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.