Re: The IDS, the EDS and the DBMS

From: Marshall Spight <mspight_at_dnai.com>
Date: Sat, 11 Sep 2004 01:23:49 GMT
Message-ID: <Ess0d.18407$MQ5.89_at_attbi_s52>


"Laconic2" <laconic2_at_comcast.net> wrote in message news:E5idnfPmHcpIZ9zcRVn-vg_at_comcast.com...
>
> "Marshall Spight" <mspight_at_dnai.com> wrote in message
> news:rgm0d.168571$mD.134957_at_attbi_s02...
> > In any event, I'm unhappy with the Lisp approach, because I am
> > unhappy with any approach that isn't statically typed.
>
> I'm really curious about this. What is "statically typed"?

Statically typed languages are languages in which type errors are decidable statically. That is, you can determine whether a program has any type errors by compile-time analysis; you don't actually need to run the program.

In contrast, dynamically languages detect type errors at runtime.

There are two camps in the typing wars, and they don't get along much. :-) But I'm decidedly a static type advocate. I actually want to determine as much as possible at compile time.

Said more generally, I want to be able to express constraints in my source code, and have the compiler tell me of as many as it can, whether they hold or not. If they hold, the compiler doesn't need to insert code to check them. If they do not hold, then my program is erroneous. "Variable x has type int" is a constraint, although we often do not consider it as such.

Can we prove all constraints statically? No, we cannot; some are undecidable, and those we must check at runtime.

The static camp says that's okay, every one you find ahead of time is a bug prevented. The dynamic camp says, screw it, you have to insert lots of runtime checks anyway; let's just use the one mechanism.

Marshall Received on Sat Sep 11 2004 - 03:23:49 CEST

Original text of this message