low-level approach

Lendvai, Attila 101. attila.lendvai@encorus.com
Mon Jan 14 07:55:03 2002


:: aspects and be
:: > > able to construct a better language that contains them all.
:: > >
:: > If Lisp (what dialect? Common Lisp? Emacs Lisp? Dylan?=20
:: Scheme? EuLisp?
:: > ISLISP? XLisp? XLisp-Stat? ...) has ``certain aspects that make it
:: > superior [to Java or C]'', then it is /ipso facto/=20
:: superior to Java or
:: > C!
::=20
:: Please choose any version of Lisp you want and tell us about=20
:: an aspect
:: of it that makes it better than Java, or C, or any other=20
:: language of you
:: own choosing.

well, i dont consider myself a language guru and i dont really know
lisp, but im sure there are zillions of examples where lisp is better
because of the single fact that code=3Ddata in lisp.

:: When it comes right down to it, all Turing-complete languages are
:: identical in expressive power (e.g. implement a compiler in=20
:: language A
:: that handles language B).  We only have our intuition to=20
:: understand what
:: semantics really are.  Now if you believe that my compiler example is

yes, but we are not talking about math proofs here...

:: contrived, I will say that I am surprised how often some C=20
:: programmers
:: use to lexx and yacc to make small language parsers.
::=20
:: Below I have my attempt to define semantic equivalence, but it only
:: manages to show that all turing complete languages are semantically
:: equivalent.

ofcourse, i always say in such cases that i can do anything in
assembler. (given enough resources... :) but in a better language you
can do things in 10 lines that are 10 pages in c++

:: > >       Function references, using quotation, are available.
:: > Huh? Functions are first-level objects in CL.
::=20
:: Forgive my poor nomenclature, function references, via symbol or
:: explicit symbol list (e.g. function definition), is how Lisp=20
:: is able to
:: make functions first-level objects.

code=3Ddata

:: My post was a request for Lisp examples contrary to my statements.  I
:: already anticipated your dismay, but abstract descriptions=20
:: of language
:: superiority are only useful between people that agree. =20

this is a good point. altough i am against c style languages in this
discussion i would also be happy to see some examples.

:: Since I do not
:: agree, all this high level talk is for nothing; we will never reach a
:: consensus without something objective and  measurable,=20
:: namely concrete
:: examples.
::=20
:: It really well could be that this discussion is for naught;=20
:: there is no
:: semantic difference between languages.  This would help us understand

if you always get back to the idea that all turning equvivalent
languages are the same then no, there's no difference. but it's about
something else i cant put in words in a foreign language...

:: why the bulk of the programmers are sticking with C, C++, Basic or
:: Java.  It could very well be that language preference=20
:: depends wholly on
:: the number of, and quality of, tools that support that language. =20

it's about the joke that a trillion of flys can not be wrong... :)

i was one of those c c++ java programmers. (in fact there was a time
when i learned generic/generative programming in c++ when i tought that
c++ is a superior language) but later without any friend or paper or
teacher or whatever i started to lack features i later found in lisp and
other languages.

:: This also means that if a few library functions can improve=20
:: ... and it
:: is here that we realize all turing-complete languages are=20
:: semantically
:: equivalent under this definition.

i think in the context i think of semantic i can not even define it!
it's something more subjective then the math-like definition you gave
here. (which is not bad, only different)

- 101.