Re: Static vs. Dynamic typing

From: Ilja Preuß (it_at_iljapreuss.de)
Date: 09/10/04


Date: Fri, 10 Sep 2004 13:54:34 +0200

Cristiano Sadun wrote:

> It just came to me that STC can be seen as a test in itself - in TDD
> sense: it can be executed before the functionlity is written or
> available, then fixing the code makes it pass the test. "execution"
> is the set of type- check steps of the compiler.
>
> For example, trying to invoke an unexisting method in a class (this
> example works better for OO rather than procedural, since methods are
> part of the type definition) results in a test (compilation) failure;
> or not having a return statement of the proper type; etc.

A nice example. When using a dynamically typed language, the same tests
fails, too, because of the same problem (object does not understand
message) - just at runtime instead of compile time. So in this specific
case, the compile time check doesn't seem to buy us anything, as far as I
can tell...

Cheers, Ilja



Relevant Pages

  • Re: creaping coupling......
    ... In C++ it would be trivial to break that source code dependency, ... When you compile a .java module, ... In Java and C# it's asserted at compile time. ...
    (comp.object)
  • Re: VB Compiler Warnings & other woes ...
    ... you will get this warning in vs 2005. ... > have a direct legacy language path of evolution to consider. ... >> compile time errors rather than runtime. ...
    (microsoft.public.dotnet.languages.vb)
  • Re: No exceptions?
    ... time that was removed before runtime; there's no way to generate a compile time exception for the unexceptionable, but there are not many ways of avoiding a runtime exception if the compile time y had defined attributes. ... Thus, as soon as one compiles a statement that references any such resource, one would get a compile-time error. ... I think many products go to elaborate lengths and introduce arbitrary concepts to handle such cases, at least some of them try to prevent catalogue updates in a transaction (Jim Gray described a logical '2-phase' protocol for intension locks many years ago and I've seen it implemented and I've seen the complications that seem never to end due to the intricacy, for example a reversal of Jonathan's converse problem, a sequential transaction that references y and then deletes y's definition - what should happen if the reference is then referred to again? ...
    (comp.databases.theory)
  • Re: RAD vs. performance
    ... iterable object--whether or not the object is an array or list is ... return ret ... known at compile time. ...
    (comp.lang.misc)
  • Re: apparently undefined function called by macro
    ... However, as almost always in Common Lisp;), there are exceptions to this rules: Some top-level forms do indeed have effects at compile time. ... The reason is that you typically want to base subsequent code on your macro definitions, and the compiler must be able to completely macro-expand away these macro definitions as well. ... A system definition allows you to declare that one file of lisp code depends on some other file of lisp code. ...
    (comp.lang.lisp)