Newsgroups: comp.lang.dylan
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!yeshua.marcam.com!zip.eecs.umich.edu!newsxfer.itd.umich.edu!gatech!howland.reston.ans.net!spool.mu.edu!sgiblab!pacbell.com!att-out!nntpa!nntpa.cb.att.com!lgm
From: lgm@polaris.ih.att.com (Lawrence G. Mayka)
Subject: Re: CLOS->Dylan Translation
In-Reply-To: callahan@peruvian.cs.utah.edu's message of 22 Oct 1994 21:28:31 GMT
Message-ID: <LGM.94Oct24180645@polaris.ih.att.com>
Sender: news@nntpa.cb.att.com (Netnews Administration)
Nntp-Posting-Host: polaris.ih.att.com
Organization: AT&T Bell Laboratories, Naperville, Illinois, USA
References: <KAELIN.94Oct22102024@binki.bridge.com> <38c05v$s30@magus.cs.utah.edu>
Date: Mon, 24 Oct 1994 23:06:44 GMT
Lines: 45

In article <38c05v$s30@magus.cs.utah.edu> callahan@peruvian.cs.utah.edu (Michael Callahan) writes:

   Kaelin Colclasure (kaelin@bridge.com) wrote:

   : Has any consideration been given to the possibility of translating
   : CLOS code to Dylan?  Or perhaps implementing a Dylan-like language
   : (albiet probably prefix) under Common Lisp?

Harlequin Inc.'s "Letter to the Lisp Community" in August mentioned
that "...they [Harlequin's Dylan team] are working on translation from
Common Lisp to Dylan, a version of Dylan in LispWorks and an effective
foreign function interface for Dylan, among other developments."

   There are several problems with this approach.

   First, CL is a lisp 2 lisp, so (lambda ()) and #'(lambda ()) are
   different.

Actually, ANSI CL defines a macro called LAMBDA that expands into
#'(LAMBDA ...), so your example is no longer correct.

More importantly, though, a simple naming convention should be
sufficient to translate Lisp-2 code into Lisp-1 for most uses.  For
example, all function names (except, unfortunately, those already
defined in the Dylan language spec) could be suffixed with the "/"
character.  This is essentially what Dylan has done with class names
already (the "<...>" naming convention).

   Second, CLOS has a Meta Object Protocol, which makes it more
   expressive than dylan.

   Third, Common Lisp has a lot of runtime environment stuff in it, like
   (eval sexp), (intern symbol), etc which won't transform to dylan
   very easily.

Dylan's claim has been that such advanced or environmental
capabilities can be provided via optional, possibly standardized
libraries.  I think the translation of full ANSI CL is an excellent
test of this claim.
--
        Lawrence G. Mayka
        AT&T Bell Laboratories
        lgm@ieain.att.com

Standard disclaimer.
