From: Matt
Subject: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <ba8a039e.0409111142.5692b4eb@posting.google.com>
I always heard dialet of programming language. For example, Common
Lisp is a dialet of Lisp programming language. What does it really
mean? Lisp is not standardize yet? why there are dialets? Or when
people say implementation of a programming language.

please advise. thanks!!

From: John Thingstad
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <opsd6ii0rupqzri1@mjolner.upc.no>
On 11 Sep 2004 12:42:26 -0700, Matt <··········@hotmail.com> wrote:

> I always heard dialet of programming language. For example, Common
> Lisp is a dialet of Lisp programming language. What does it really
> mean? Lisp is not standardize yet? why there are dialets? Or when
> people say implementation of a programming language.
>
> please advise. thanks!!

Lisp is a language originally conceived in 1956.
Since then there have been a number of implementations.
In 1980's two dialects Interlisp and MacLisp lisp ruled.
Guy Steele came up with a new Lisp version called Scheme.
In order to come up with a standard ANSI Common Lisp was created.
It is a ANSI standard dating 1995.
Common lisp is different from scheme in that it specifies a large library.
It's programs can thus be shared among implementations where as
scheme programs can not (easily). Common lisp has better support for
creating large programs. As a consequence Common Lisp is used by industry  
and
Scheme is mostly used by universities and individuals.

Common Lisp has a number of implementations.

The two big commercial vendors are Franz with "Allegro Common Lisp"
and XANALYS (used to be LispWorks) "Liquid Common Lisp".

Corman Common Lisp is a smaller and cheaper variety for windows.

Free versions are also available.
GNU CL, CLISP, CMUCL, EBCL

A google for "lisp History" came up with the following.
http://www8.informatik.uni-erlangen.de/html/lisp-enter.html

Allegro Common lisp at http://www.franz.com
Liquid Common lisp at http://www.lispworks.com

For all things lisp http://www.cliki.net

-- 
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
From: Carl Shapiro
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <ouysm9ojtjq.fsf@panix3.panix.com>
"John Thingstad" <··············@chello.no> writes:

> The two big commercial vendors are Franz with "Allegro Common Lisp"
> and XANALYS (used to be LispWorks) "Liquid Common Lisp".

This is factually incorrect.  LispWorks is the Lisp product of Xanalys
as well as Liquid Common Lisp (formerly Lucid Common Lisp) the latter
system being in maintenance mode.

Please do your homework before advising newbies.  There is enough
misinformation spread through this newsgroup as is.
From: Kenny Tilton
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <yBN0d.115988$4h7.18633654@twister.nyc.rr.com>
Carl Shapiro wrote:

> "John Thingstad" <··············@chello.no> writes:
> 
> 
>>The two big commercial vendors are Franz with "Allegro Common Lisp"
>>and XANALYS (used to be LispWorks) "Liquid Common Lisp".
> 
> 
> This is factually incorrect.  LispWorks is the Lisp product of Xanalys
> as well as Liquid Common Lisp (formerly Lucid Common Lisp) the latter
> system being in maintenance mode.

Nice correction.

> 
> Please do your homework before advising newbies.

Ugly gratuitous misinformed attack. Why not just make the correction and 
leave it at that? But congratulations on breaking the eighty-seven day 
streak of pleasant, professional, dispassionate discourse this NG has 
enjoyed.

 >  There is enough
 > misinformation spread through this newsgroup as is.

Bullshit. This newsgroup is hitting on all eight cylinders, as far as I 
can make out.

kenny

-- 
Cells? Cello? Celtik?: http://www.common-lisp.net/project/cells/
Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film
From: Carl Shapiro
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <ouyu0u4ukhn.fsf@panix3.panix.com>
Kenny Tilton <·······@nyc.rr.com> writes:

> Bullshit. This newsgroup is hitting on all eight cylinders, as far as
> I can make out.

Great, I am glad you think so!  I would like to nominate Kenny Tilton
for the position of comp.lang.lisp copy editor!
From: Kenny Tilton
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <FqZ0d.34809$Ot3.28227@twister.nyc.rr.com>
Carl Shapiro wrote:
> Kenny Tilton <·······@nyc.rr.com> writes:
> 
> 
>>Bullshit. This newsgroup is hitting on all eight cylinders, as far as
>>I can make out.
> 
> 
> Great, I am glad you think so!  I would like to nominate Kenny Tilton
> for the position of comp.lang.lisp copy editor!

Oh silly me. Gratuitous schoolyard put-downs, denigrating remarks about 
cll -- yer a Lisp IRC yobbo, right?! It's been so long since yall 
despoiled cll I had forgotten the markings.

:)

kenny

ps. Me and Maddog Spitzer were bemoaning the civil tone of cll lately, 
thx for the course adjustment. Your first round is on me next week. k
From: John Thingstad
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <opsd6r7zcnpqzri1@mjolner.upc.no>
On 11 Sep 2004 19:05:13 -0400, Carl Shapiro <·············@panix.com>  
wrote:

> "John Thingstad" <··············@chello.no> writes:
>
>> The two big commercial vendors are Franz with "Allegro Common Lisp"
>> and XANALYS (used to be LispWorks) "Liquid Common Lisp".
>
> This is factually incorrect.  LispWorks is the Lisp product of Xanalys
> as well as Liquid Common Lisp (formerly Lucid Common Lisp) the latter
> system being in maintenance mode.

Right you are! Sorry about the confusion.

-- 
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
From: Joel Ray Holveck
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <y7cwtyypk9m.fsf@sindri.juniper.net>
> I always heard dialet of programming language. For example, Common
> Lisp is a dialet of Lisp programming language. What does it really
> mean? Lisp is not standardize yet? why there are dialets? Or when
> people say implementation of a programming language.
> please advise. thanks!!

Lisp refers to a family of languages, including Scheme, Common Lisp,
and others.  There's a duality of the term, depending on context: it
might mean the entire family, or it might mean a particular dialect
(usually Common Lisp).  Finally, each dialect has multiple
implementations.

Everything in the Lisp family has the same basic "feel", which is not
easily denoted.  But it's characterized by prefix operators, use of
lists to represent source code, and widespread use of a built-in
singly linked list type.

Within the Lisp family, we have different dialects.  This is what
you'd think of as a single language.  To pick the Common Lisp dialect,
if I write a program in Common Lisp, I can show it to another Common
Lisp programmer and they'll be able to read it.  I can give it to a
Common Lisp compiler and it'll compile it.

For each dialect, there may be multiple implementations.  This is
approximately what corresponds to the compiler or interpreter in other
languages.  The Common Lisp dialect has, among others, the CMUCL and
LispWorks implementations.  I can write a program using CMUCL, and
then run it later using LispWorks.  This is just like how I can write
a program using gcc, and later compile it using Visual C++.  They're
just different implementations of the same language.  Each
implementation may provide some extra features, such as compiler
options or libraries, but the base language is the same.

You could make a *LOOSE* analogy with Unix.  Today, Unix (in common
parlance) refers to a family of OSs, including BSD, SVR4, and Linux
(which could be considered by some to be an SVR4).  Within each of
these, you have multiple implementations: BSD has FreeBSD, NetBSD, and
OpenBSD, which each provide their own facilities above and beyond what
4.4BSD provides.  SVR4 has Solaris, HP-UX, AIX, etc.  Linux has many,
many vendors.

However, there are standards: the BSD facilities are effectively
standardized by a reference implementation, SVR4 has its own thing
going, and POSIX is an official standard to guide all Unixes.
Similarly, there is an ANSI standard for Common Lisp, and the standard
for Scheme is R5RS.  (I think there's an ISO or IEEE standard for
Scheme, but I don't recall offhand.)

In the case of Unix, all but Linux came from a common source code
base.  In the case of Lisp, while most dialects can trace the language
design back to LISP 1.5, there is very little code-sharing between
dialects.  Also, most implementations within a dialect share only a
little code (such as LOOP and CLOS).  However, most user code is
portable to other implementations within the same dialect.

All Lisp dialects share a similar "feel", just like all Unixes share a
similar "feel".  But each dialect is a distinct language in its own
right, with its own benefits and drawbacks.

The question of "What is a Lisp" is largely a philosophical one, and
it doesn't sound like you care to discuss that.  If you want a
standardized, unfragmented language, then don't think of the entire
Lisp family; think of one dialect.  Common Lisp is the one that I use
for industrial work, while most schools use the Scheme dialect.  Each
of these are standardized, and code written to be portable will be
portable between implementations.

joelh
From: Ray Dillinger
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <rha1d.13483$54.191771@typhoon.sonic.net>
Matt wrote:
> I always heard dialet of programming language. For example, Common
> Lisp is a dialet of Lisp programming language. What does it really
> mean? Lisp is not standardize yet? why there are dialets? Or when
> people say implementation of a programming language.
> 
> please advise. thanks!!

"Lisp" is a design principle.  It has been and is used in several
different programming languages.  Right now the two biggest Lisps
are Common Lisp and Scheme.  In the present and past, there are
many others.  Because Lisps tend to be a closely related family
of languages that is a fair distance from the "mainstream"
languages, lots of people don't realize that there are actually
several different programming languages that are all Lisps.  They
just look at the code, see a lot of parentheses, and say "It's
written in Lisp."

In comp.lang.lisp, usually when people say "Lisp" they mean Common
Lisp.  Elsewhere the usage is less specific and may refer to any
Lisp.

There are two current standards for Lisps; Common Lisp and Scheme
both have an IEEE standard.  They are different languages and serve
different purposes; Scheme is a very small Lisp, and it's easy to
embed it in other programs, use it as a scripting language, put
it on tiny hardware, etc.  It's also very clean and orthogonal
in a lot of ways, and it's simpler to teach and learn than Common
Lisp.  A lot of instructors use it in programming classes.  Common
Lisp has bigger libraries and a standard module system, which makes
it easier to use for the development of big complicated projects.

What makes a language a lisp?  Other people may disagree, but
to me it seems to come down to a few points:  Once a language
has all of these, I'll unhesitatingly call it a Lisp.

1. Source code also parses as data, and the parse tree of the
    source is isomorphic to the data it reads as. Some kind of
    quoting and evaluating mechanism (traditionally named QUOTE
    and EVAL) allows you to go back and forth so it's easy to
    make programs that write programs.

2. Macros take advantage of this property by directly manipulating
    (as data) the parse tree of source  expressions passed to them,
    allowing the generation of expressions which are executed at
    runtime.

3. "Native" Data structures are very well suited for processing
    recursively; I think every Lisp developed so far uses pair-based
    lists for the structure of most source expressions.

4.  Functions are first-class values; they can be passed as
     arguments, returned from functions, stored in variables,
     etc.  Lisps have a function (usually named LAMBDA) that
     takes source expressions and returns functions, and another
     function (usually named APPLY) that calls a function on
     some arguments.

5.  Lisps typically have automatic memory management ( "garbage
     collection" ) so that the programmer seldom has to worry
     about freeing something when he's done with it.

There used to be more differences; ideas from Lisp such as
"recursion" have become the norm in other programming languages,
so I don't bother mentioning them here (except for the mention
of recursion as an example of this and as an exception to not
bothering to mention such things here).

And there are some other things that are traditional in Lisps,
like providing an interactive REPL for development; these
aren't actually part of the language, but they're traditions
that people expect from any Lisp.

			Bear
From: Jaap Weel
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <m2k6ujhcb5.fsf@stein.dabney.caltech.edu>
Ray Dillinger <····@sonic.net> writes:
> What makes a language a lisp?  Other people may disagree, but
> to me it seems to come down to a few points:  Once a language
> has all of these, I'll unhesitatingly call it a Lisp.
>
>   [... points 1-6 ...]

Also, there is an important feature that all *current* Lisps I know
have.

 6. A dynamic, safe type system.

Dynamic: types of expressions are not *in general* known at compile
time. A typical example of such an expression is (read).

Type-safe: in Lisp (+ 3 "a") just barfs, because it does not make
sense within the type system. Type safety can also be implemented in a
static type system (e.g. ML). In C, a type-unsafe language, 3 + "a"
returns a value of which the representation in hardware is obtained by
pretending the representation of the memory location of the string "3"
were the representation of an integer and adding it to 3.
From: John Thingstad
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <opseuadqg0pqzri1@mjolner.upc.no>
On 24 Sep 2004 09:16:46 -0700, Jaap Weel <··········@caltech.edu> wrote:

> Type-safe: in Lisp (+ 3 "a") just barfs, because it does not make
> sense within the type system. Type safety can also be implemented in a
> static type system (e.g. ML). In C, a type-unsafe language, 3 + "a"
> returns a value of which the representation in hardware is obtained by
> pretending the representation of the memory location of the string "3"
> were the representation of an integer and adding it to 3.
>

NO! That would be PERL. C does not do automatic type conversion.

-- 
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
From: Matthew Danish
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <874qln7fkg.fsf@mapcar.org>
"John Thingstad" <··············@chello.no> writes:
> On 24 Sep 2004 09:16:46 -0700, Jaap Weel <··········@caltech.edu> wrote:
> > Type-safe: in Lisp (+ 3 "a") just barfs, because it does not make
> > sense within the type system. Type safety can also be implemented in a
> > static type system (e.g. ML). In C, a type-unsafe language, 3 + "a"
> > returns a value of which the representation in hardware is obtained by
> > pretending the representation of the memory location of the string "3"
> > were the representation of an integer and adding it to 3.
> NO! That would be PERL. C does not do automatic type conversion.

It's not about automatic type conversion.  It has to do with strings
being pointers.

$ cat test.c
#include<stdio.h>
int main(void) {
  char *str = "foobar";
  printf("%s\n", str + 3);
  return 0;
}
$ gcc -Wall test.c
$ ./a.out 
bar
$ 

-- 
;; Matthew Danish -- user: mrd domain: cmu.edu
;; OpenPGP public key: C24B6010 on keyring.debian.org
From: John Thingstad
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <opseuh8dwfpqzri1@mjolner.upc.no>
On 24 Sep 2004 13:16:31 -0400, Matthew Danish <··········@cmu.edu> wrote:

> "John Thingstad" <··············@chello.no> writes:
>> On 24 Sep 2004 09:16:46 -0700, Jaap Weel <··········@caltech.edu> wrote:
>> > Type-safe: in Lisp (+ 3 "a") just barfs, because it does not make
>> > sense within the type system. Type safety can also be implemented in a
>> > static type system (e.g. ML). In C, a type-unsafe language, 3 + "a"
>> > returns a value of which the representation in hardware is obtained by
>> > pretending the representation of the memory location of the string "3"
>> > were the representation of an integer and adding it to 3.
>> NO! That would be PERL. C does not do automatic type conversion.
>
> It's not about automatic type conversion.  It has to do with strings
> being pointers.
>
> $ cat test.c
> #include<stdio.h>
> int main(void) {
>   char *str = "foobar";
>   printf("%s\n", str + 3);
>   return 0;
> }
> $ gcc -Wall test.c
> $ ./a.out
> bar
> $
>

Yes, but most peaple today use ANSI C or C++.
You wouldn't talk about Lisp as of 1980 would you.

-- 
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
From: Matthew Danish
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <87zn3f5u7i.fsf@mapcar.org>
"John Thingstad" <··············@chello.no> writes:
> Yes, but most peaple today use ANSI C or C++.
> You wouldn't talk about Lisp as of 1980 would you.

This is ANSI C, unless I am making a mistake.  Certainly, GCC is not
catching me on it, even with -ansi -pedantic, and GCC /is/ an ANSI C
compiler (plus extensions).  It makes sense, since it is no different
than &(str[3]) which expands into &(*(str + 3)) and then (str + 3).

-- 
;; Matthew Danish -- user: mrd domain: cmu.edu
;; OpenPGP public key: C24B6010 on keyring.debian.org
From: John Thingstad
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <opseuju2qcpqzri1@mjolner.upc.no>
On Fri, 24 Sep 2004 21:10:51 +0200, John Thingstad  
<··············@chello.no> wrote:

> On 24 Sep 2004 13:16:31 -0400, Matthew Danish <··········@cmu.edu> wrote:
>
>> "John Thingstad" <··············@chello.no> writes:
>>> On 24 Sep 2004 09:16:46 -0700, Jaap Weel <··········@caltech.edu>  
>>> wrote:
>>> > Type-safe: in Lisp (+ 3 "a") just barfs, because it does not make
>>> > sense within the type system. Type safety can also be implemented in  
>>> a
>>> > static type system (e.g. ML). In C, a type-unsafe language, 3 + "a"
>>> > returns a value of which the representation in hardware is obtained  
>>> by
>>> > pretending the representation of the memory location of the string  
>>> "3"
>>> > were the representation of an integer and adding it to 3.
>>> NO! That would be PERL. C does not do automatic type conversion.
>>
>> It's not about automatic type conversion.  It has to do with strings
>> being pointers.
>>
>> $ cat test.c
>> #include<stdio.h>
>> int main(void) {
>>   char *str = "foobar";
>>   printf("%s\n", str + 3);
>>   return 0;
>> }
>> $ gcc -Wall test.c
>> $ ./a.out
>> bar
>> $
>>
>
> Yes, but most peaple today use ANSI C or C++.
> You wouldn't talk about Lisp as of 1980 would you.
>

try gcc -ANSI -Pedantic -Wall test.c

-- 
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
From: Pascal Bourguignon
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <87r7orzgud.fsf@thalassa.informatimago.com>
"John Thingstad" <··············@chello.no> writes:

> On 24 Sep 2004 09:16:46 -0700, Jaap Weel <··········@caltech.edu> wrote:
> 
> > Type-safe: in Lisp (+ 3 "a") just barfs, because it does not make
> > sense within the type system. Type safety can also be implemented in a
> > static type system (e.g. ML). In C, a type-unsafe language, 3 + "a"
> > returns a value of which the representation in hardware is obtained by
> > pretending the representation of the memory location of the string "3"
> > were the representation of an integer and adding it to 3.
> >
> 
> NO! That would be PERL. C does not do automatic type conversion.

Indeed no.  But in C, char is a subtype of int!

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we.
From: Gareth McCaughan
Subject: Re: meaning of a dialet or implementation of a programming language
Date: 
Message-ID: <87oejv1avo.fsf@g.mccaughan.ntlworld.com>
"John Thingstad" <··············@chello.no> writes:

> On 24 Sep 2004 09:16:46 -0700, Jaap Weel <··········@caltech.edu> wrote:
> 
> > Type-safe: in Lisp (+ 3 "a") just barfs, because it does not make
> > sense within the type system. Type safety can also be implemented in a
> > static type system (e.g. ML). In C, a type-unsafe language, 3 + "a"
> > returns a value of which the representation in hardware is obtained by
> > pretending the representation of the memory location of the string "3"
> > were the representation of an integer and adding it to 3.
> >
> 
> NO! That would be PERL. C does not do automatic type conversion.

It is perfectly true that in C (not just old K&R C, but also
modern ANSI C, and also C++), if you say

    char * a = 3 + "a";

then your compiler is likely to accept it. I say
"likely" rather than "certain" because actually
modern C does have some restrictions on what you're
allowed to do with pointers, and you might get at
least a warning from the code above. But

    char * a = 3+"abcde";

is perfectly legal, and it is indeed evaluated in
pretty much the way Jaap Weel describes.

John, don't you *ever* check your facts before posting here?
You have posted article after article consisting almost
entirely of half-truths and errors. Please desist.

-- 
Gareth McCaughan
.sig under construc