Re: No exceptions?

From: Cimode <cimode_at_hotmail.com>
Date: 3 Jul 2006 02:22:36 -0700
Message-ID: <1151918556.395528.106610_at_h44g2000cwa.googlegroups.com>


If I understand right your insight, you are trying to define and categorize what kind of exceptions a language should support in order to allow more adequate relvar manipulation such as union inter relvar operations. I personally believe that listing the number of exceptions and trying to categorize them, is a dangerous method. I suggest concentrating on situations where the language should have *no* exception. In a word, it seems wiser to concentrate effort on *acceptable* operations in order to define *non acceptable* exception handling. Keep in mind that relvar are of arbitrary complexity as well as operators and values drawn from domains. A few comment on the points you have been exposing...

  1. Syntax exceptions Syntax exceptions involving 2 relvars should be determined at compile time as a non intersection between applyable operators on both relvars.

For instance, one can apply (set of operators)1 (op1, op2, ....opN) on relvar X and (set of operators)2 (ope1, ope2, ....opeN) on relvar Y then there may be exception when (set of operators)1 INTERSECT (set of operators)2 produces no result. As a consequence, a system can evaluate these kind of exception with no need to load the data but only the metadata involving relvar operators. Even without a need to go through a compile link run cycle.

I am not convinced syntaxic is the right word for that. Syntaxic-operational may be a wiser choice.

2) Semantic exceptions
I do not quite understand what you mean by *undefined* x ? Could you clarify.

> 1) Syntax exceptions - An expression "x join y" might be a valid syntax
> but one such as "x y" might not. An implementation could stipulate that
> the reason it's not is because it is not an element of the domain for
> expressions in the chosen language given a particular syntax. If we
> have a way to test membership of such a domain, the syntax error could
> be indicated by the value "false" given by a boolean function. (One
> such way might be for all statements in a language to be treated as
> propositions of a relation that describes some program unit.)
>
> 2) Semantic exceptions - "x join y" might be valid syntax but "x" might
> be undefined, eg., there is no relation named "x".
>
> However, the interpretation of a language could be defined such that the
> mention of "x" without any collateral description stands for a relation
> with no attributes. According to Hugh Darwen, there are (only) two such
> relations, aka DEE and DUM and each must have a value (since each is a
> relation). Although their values are hard to write down, he does say
> (eg., at http://www.dbdebunk.com/page/page/1043196.htm) that DEE has one
> tuple.
>
> Within the TTM logical framework (and others), the Closed World
> Assumption is a convention that says an unmentioned fact is false, ie.,
> if the extension of a relation has no tuples, there are no propositions
> that satisfy that relation's predicate. This seems to me to provide a
> way around the non-determinism of "x join y" in isolation. Is it
> reasonable for a language (again, in theory) to interpret the lack of an
> extension for "x" as standing for DUM?
>
> There could be operational exceptions such as "out of memory" but before
> examining them, I'd appreciate comments on the above, especially as to
> whether I'm not applying the CWA correctly.
>
> p
Received on Mon Jul 03 2006 - 11:22:36 CEST

Original text of this message