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

Re: cheerful static typing (was: Any and Every... (was: Eval))



I don't think Curl is claiming any innovation about this.  We're simply 
putting into production what I hope is a pretty well-proven approach 
(within the language-geek community, if not necessarilly well-proven or 
well-known amongst other communities).

Other than that, I have to admit that I didn't follow your concerns. 
 They seemed kind of general to me.   I've offered up our type-checking 
approach as a specific example of how cheereful and pessimistic type 
checking can coexist in an actual production system.  So far, it has 
worked well in practice.  However, I'm a fan of your work and that of 
others on this list, and would like to learn of  any specific problems 
you can identify.  Or maybe you're telling me that there's something 
fundamentally broken about the concept?  

What did you mean by "we" and "like that"?  I think that the same 
mechanism could work in a CL implementation.  However, as I understand 
it,  the ANSI standard only specifies the behavior of the compiler when 
the type declarations are correct and consistent.  Any additional 
behavior (e.g., of the compiler in rejecting programs or inserting 
runtime checks) would have to be spec'ed out by the individual 
implementation.

Matthias Felleisen wrote:

>Okay, and how do you ensure that your type system means anything? 
>We have had a "type system" like that in CL for years. 
>
>Based on my 12 year experience of using and exploring soft type systems, 
>the key to a type system is the programmer and not the compiler. The 
>programmer needs to understand 
>
> * the types 
> * the type errors 
> * the meaning of types for the program execution. 
>
>[The ordering is wrong, the second point should be first.]
>
>Work out the Curl type system in these three directions if you want to
>claim an interesting innovation. 
>
>-- Matthias
>