Re: An Acceptable Lisp



Matthias Buelow <mkb@xxxxxxxxxx> writes:

Pascal J. Bourguignon wrote:

What about basic data types; what about the type system itself?
This is covered by the Special Operator THE ;-)

ATOM?

(THE ATOM 42)

I mean that if you want to implement THE in some way, you bring with
it the whole specification of the type system.


I also means that of course, along with these Special Operators, you
have all the implicit CL notions, those that don't have necessary a
symbol attached to them, but that are nonetheless important to
implement to realize CL semantics, like environments, or function call.

((lambda (x) (* x x)) 2)

Here, there are no special operators. But indeed it must be
evaluated. Implementing the Special Operators means implementing the
EVAL or the COMPILE function, and implementing them entirely means
implementing the evaluation (or compilation) of the above form.



Ok, but now I see that perhaps you meant that some data types can be
more primtive than others. Indeed, we don't need to implement all the
data types as primitives. For example, we can implement hash-tables
over vectors. And the choice of "primitive" datatypes is rather
orthogonal to the set of Special Operators. For lisp we would want
CONS and SYMBOL (after all, EVAL and COMPILE take s-exprs). To
implement the reader we'd like to have CHARACTER (but it could be
implemented over FIXNUM). For efficiency of the implementation it
would be nice if VECTOR was primitive. But again, it will depend on
the target, and what underlying data type are available.


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



Relevant Pages

  • Re: ES format
    ... (snip regarding data types and format codes) ... > kind) of the list item is known at compile time. ... independent of the format descriptor or variable width. ...
    (comp.lang.fortran)
  • Re: 64 bit programming questions
    ... basic c++ console app would I need to turn it into a windows form or mfc ... Regarding data types, ... or if vs.net can compile for 64 with some switches set. ...
    (microsoft.public.windows.server.general)
  • question: size of C# primitive data types according to ECMA standard
    ... of bits as defined by the corresponding standard. ... For instance an int ... data types in C and C++ have minimum values but no fixed values. ... C# standard defines fixed values for all primitives or whether this is ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: [PATCH] FRV: Fix the section attribute on UP DECLARE_PER_CPU()
    ... The problem is mainly one of #include recursion. ... which provides essential data types and core ... Just to be able to define an inline method: ... simple, self-sufficient primitives. ...
    (Linux-Kernel)
  • Re: Apple II assembler/debugger PC/AppleII proggys
    ... CC65 is very picky about data types. ... got all sorts of errors that indicate to me that the Acme source would ... need a lot of modification to compile that way, ... changed the lines to "const char" types. ...
    (comp.emulators.apple2)