[comp.newprod] Product announcement: LispWorks - A Common Lisp programming environment

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
--