Chris Uppal wrote:
>
> But, as a sort of half-way, semi-formal, example: consider the type 
> environment
> in a Java runtime.  The JVM does formal type-checking of classfiles as it 
> loads
> them.  In most ways that checking is static -- it's treating the bytecode as
> program text and doing a static analysis on it before allowing it to run (and
> rejecting what it can't prove to be acceptable by its criteria).  However, it
> isn't /entirely/ static because the collection of classes varies at runtime in
> a (potentially) highly dynamic way.  So it can't really examine the "whole"
> text of the program -- indeed there is no such thing.  So it ends up with a
> hybrid static/dynamic type system -- it records any assumptions it had to make
> in order to find a proof of the acceptability of the new code, and if 
> (sometime
> in the future) another class is proposed which violates those assumptions, 
> then
> that second class is rejected.

I have to object to the term "hybrid".

Java has a static type system.
Java has runtime tags and tag checks.

The two are distinct, and neither one is less than complete, so
I don't think "hybrid" captures the situation well.


Marshall

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to