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

Re: dynamic vs. static typing

Steve Dekorte <steve@dekorte.com> writes:

> On Nov 24, 2003, at 11:57 AM, Anton van Straaten wrote:
>> Abstract interpretation is, essentially, running a program before
>> runtime -
>> i.e. before a full set of inputs exist.  Compilers effectively do
>> this when
>> they analyze a program's types.  In a program containing type
>> annotations,
>> those annotations essentially form part of an independent program
>> that can
>> be run before the program in which they are embedded is run.  The
>> notes that
>> Shriram previously referenced are a nice and accessible intro for this
>> concept[1].
> So when we want to do something like have a development system where
> everything is live (like older LISPs, Smalltalk, Self, etc), and we
> can change anything at runtime (rearrange inheritance hierarchies, add
> and remove methods, variables, etc), of what use are the checks that
> were done at compile time and are no longer valid?

Presumably none.

But what of those checks that were done at compile time *and* are
still valid?