[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: RES: [Off-Topic] Estudo da NASA compara LISP, JAVA e C++



Gustavo Noronha Silva writes:
 > Em Tue, 9 Apr 2002 23:00:37 -0300, synthespian <synthespian@uol.com.br>
 > escreveu:
 > 
 > > 	* Todos * os ambientes LISP modernos compilam,
 > compilam em código binário? acho que não... se for em bytecode,
 > python compila também
 > 
 > []s!
 > 
 > 

KoV-

	Sim, binário.

	veja: <http://www.elwoodcorp.com/alu/table/systems.htm> em
particular CliCC (Common Lisp-to-C Compiler).
--------------------
	E seguinte post em comp.lang.lisp é interessante:


       In article <20585@mimsy.umd.edu>, folta@tove.umd.edu (Wayne Folta) writes:
> "
> "Most of the LISPs I have used, however, have a "real compiler", ie one
> "that compiles LISP into machine code.  
> "
> I have a novice question concerning this. My LISP (Apple ACL) will compile
> LISP down to (apparently) machine code.  I can see it when I use the
> disassemble function.  However, it appears that the compiled code does
> calls to the LISP kernel.  Thus, the code is compiled, but not what us
> rookies would call "real compiled", i.e. stand-alone executable files.
> > I wonder if this is a common C-programmer misconecption.  When we think of
> "compile" we mean "compile to a standalone executable", while in LISP it
> could mean "compile to machine code that still depends on the LISP kernel
> at run time."  Is this true?  [In ACL, you compile your routines, then you
> create a new top-level loop, replacing LISP's, then you use the Standalone
> Application Generator to create a standalone application.  In version
> 1.2.2, it looks like you get all of LISP in the bargain, as the minimum
> executable size thus generated is at least 700K (as I remember).]
> > So, maybe questions about "[real] LISP compilers" are different from what
> LISP experts think they are?  (Shades of the "real multitasking" debates
> in the Macintosh groups :-).)
> > Wayne Folta          (folta@tove.umd.edu  128.8.128.42)


This is, indeed, a C-programmer misconception.  When you compile and bind
a 'C' program, you also will wind up including a substantial amount of
run-time support code:  the 'C' library functions, glue routines for calling
the operating system (ToolBox on the Mac), etc.

It's true that applications generated from ACL are much bigger than an
equivalent application written in 'C' (for small applications); this is
because the ACL run-time support code does much more than the 'C' run-time.
For instance, you get a complete garbage-collected storage management
facility, as opposed to glue into _NewHandle and _NewPointer.  You also
get all of the Common Lisp standard functions, including eval and apply,
which is to say you get a Lisp interpreter in your (compiled Lisp) application.
In ACL, you also get Object Lisp support, as well as all of the standard
pre-defined Object Lisp classes, which is to say you get the FRED editor
(emacs, to those of you who aren't familiar with ACL).

Obviously, you're normal 'C' application doesn't get any of this from its
run-time support code.  For a small application, or even a medium-sized
one, you may use only a little bit of it, in which case all of that code
is essentically wasted space.  For a large application that wound up using
more of the ACL run-time support, you might actually wind up with a smaller
application than you would if you rewrote it in 'C', and you would certainly
save enormously in development time.

As an aside, the ACL group at Apple does realize that most applications don't
need all of the code that gets included, and they are working on ways to 
avoid including support that you don't use.

Anyway, the bottom line is that the ACL compiler, like most modern Lisp
compilers, really DOES compile your code into native machine code that
executes quite quickly (as an aside, including all of the extra support stuff
is mostly a problem for memory usage and disk usage; it won't directly
impact performance, although the increased memory usage does have an effect).

Alan Geller
Regal Data Systems
...!{princeton,rutgers}!bellcore!pyuxf!asg




	Procure por "lisp compiler" no google groups (comp.lang.lisp) para colocações
interessantes.

	[ ]s
	Henry
	synthspian@uol.com.br


--
To UNSUBSCRIBE, email to debian-user-portuguese-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: