chris@harlqn.co.uk (chris richardson) (07/14/89)
LispWorks ========= The Product LispWorks is Harlequin's software package for developing and delivering industrial-strength applications written in Common Lisp. The system runs on a wide range of standard hardware platforms, offers comprehensive symbolic processing facilities, and provides general purpose workstations with the power and flexibility of dedicated Lisp platforms. LispWorks is a single, coherent package, integrating the emerging ANSI standard Common Lisp (CL) with an object-oriented programming environment based on the Common Lisp Object System (CLOS), lightweight processes, X-Windows and monochrome and colour graphics. The Approach By designing the programming environment before the underlying language system, Harlequin has engineered an unrivalled degree of internal cohesion into the product. Programming tools are firmly embedded in the environment and both are supported by sophisticated facilities for compilation and interpretation, together with unobtrusive ephemeral garbage collection. The whole package is written in Lisp to enhance consistency, maintainability and extensibility. Fundamental Components LispWorks includes Harlequin's own implementation of Common Lisp (CL) , CLOS and the CL Condition System. CLOS provides the object-oriented facilities employed throughout the package. The Condition System provides comprehensive error handling facilities during program execution. The enhanced Loop Facility is also included to provide flexible iteration. Programming Environment The LispWorks programming environment is based on CLOS and a notion of 'collections' which supports both residential and file-based activity. A collection is a uniform, organisational concept: it takes the form of a CLOS object representing a group of functions, classes, methods, files or any other group of first class items. When a collection has been assembled, LispWorks automatically selects and offers the appropriate generic operations. For example, given a collection of functions, a variety of operations are offered including tracing, editing and displaying a call tree; given a collection of classes, the relevant operations include editing and displaying the class hierarchy. The LispWorks Source Code Manager (SCM) employs systems, plans and a definition database to provide extensive support facilities. The SCM assumes responsibility for source file management, ensuring consistency between files by employing explicit descriptions of the application systems under development. It also constructs and presents plans of how chosen operations - such as compilation - may be performed and maintains a database linking each top level definition with its position in the corresponding source file. Other tools, such as the editor, exploit these automatic links. Tools Programming tools include an Emacs style Lisp Editor, Lisp Listeners and Workspaces, Describers, Inspectors, Browsers, Steppers, Tracers, Advisers, Cross Referencers and Debuggers. Full source level debugging is available for both compiled and interpreted code and there is a hypertext facility supporting on-line documentation. User Interface LispWorks contains an optimised version of CLX standard CL interface to X-Windows. Harlequin has also implemented a multi-threaded version of CLUE standard CL User Interface. CLX and CLUE provide a basis for constructing any desired style of user interface. However, Harlequin offers much more. The LispWorks Interface Toolkit extends CLUE to provide a wide range of generic interface components - 'contact classes'. To create interfaces using this toolkit, software developers select the required components; these are combined using the class inheritance mechanism, to yield customised contact classes. The standard user interface for LispWorks was itself constructed in this fashion. The LispWorks Application Framework may be used to structure user interaction. This framework is a generic interaction model for applications. Software developers can employ the model to add user interaction to a core application with a minimum of programming effort. The framework increases productivity and establishes a more coherent style of interaction across applications. External Interfaces LispWorks supports transparent access to external code, data, databases, networks and devices. Interfaces are included to foreign functions/data, SQL databases, the GNU Emacs editor and plain terminals. Foreign language support includes C and FORTRAN. Dependence on host operating systems is minimal. Delivery A variety of tools is provided for turning initial implementations into efficient and compact delivery systems. They are all supported by the underlying design of LispWorks and include a Profiler, Block Compilation and a Run-Time Delivery System. Moreover, the LispWorks compiler may be tuned by software developers to perform application specific optimisations. The Delivery System is a low-cost version of LispWorks which contains sufficient support to run standard applications. Enhancements Harlequin is committed to an extensive programme of development for LispWorks which will maintain the product's position on the leading-edge of Lisp technology. Enhancements include a powerful Distillation Facility which enables the software developer to remove extraneous code, garbage collection and other support facilities from an application. Full advantage can thus be taken of the powerful development environment to produce compact and efficient delivery systems. The whole LispWorks system has been specially designed for this purpose. Another development for LispWorks is a PostScript model with active windowing, applying Harlequin's expertise with the company's ScriptWorks product. Further enhancements include object level database interfaces and a persistent object store, support for functional and logic programming, facilities for parallel, distributed and 'real-time' processing, a choice of 'look and feel', and multi-media support. Further Information For more information about LispWorks, any of the related products, pricing or availability please contact: LispWorks Support Harlequin Limited Barrington Hall Barrington Cambridge CB2 5RG England Tel. : +44-223-872522 Fax. : +44-223-872519 Telex : 818440 harlqn g Email : lispworks-request@uk.co.harlqn or mcvax!ukc!harlqn!lispworks-request Harlequin's products including LispWorks will be demonstrated at IJCAI 89 in Detroit. Notes LispWorks and ScriptWorks are trademarks of Harlequin Limited. The Common Lisp - X interface (CLX) and the Common Lisp User Environment (CLUE) are copyright Texas Instruments Incorporated 1987,1988. The X Window System is a trademark of the Massachusetts Institute of Technology. PostScript is a registered trademark of Adobe Systems Incorporated. Other brand or product names are trademarks or registered trademarks of their respective holders. Harlequin reserves the right to alter the specification of LispWorks without notice. Copyright Harlequin 1989 --