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

RE: Macros and little languages



Matthias corrected me:
> 1. Safety and types are barely related. PERIOD. PLT Scheme is safe. I
> think Perl is safe.

I used the wrong term, then.  I was trying to say that I thought that
Shriram might be referring to the fact that in the situation I was talking
about, statically-typed invocations of callback functions could fail at
runtime, which means that adding a dynamically-checked module to a
statically-checked core could cause runtime type errors to arise in that
core.  Prior to the addition of a dynamic module, the core would have been
considered immune to runtime errors of the kind which the static
typechecking is designed to guard against.

This may not be considered an ideal situation from an academic type theory
perspective, but for many practical uses, this would still be a very useful
capability.

> 2. If your library supports first-class functions, how do you exploit
> and use the type information? How do you do separate type checking?
> It is indeed similar to calling from language A to language B but
> for an LL language (is this the ll1 mailing list?) it should be a "no
> overhead" operation to call between the two parts of the language.

Quoting from http://ll1.mit.edu/cfp.html : "The term 'lightweight' refers
not to actual functionality, but to the idea that these languages are easy
to acquire, learn, and use."

I think that a language with a mixed typechecking regime could easily
qualify as lightweight in this sense.  Yes, it would involve more effort and
overhead under the hood.  But if we take that LL1 definition to heart, it
implies that lightweight languages will have to become increasingly complex
internally in order to continue to provide desired functionality to users
while remaining "easy to acquire, learn, and use".

Anton