[contest] Is a Cow an animal ++

BCS none at anon.com
Sun Oct 3 08:37:17 PDT 2010


Hello retard,

> Fri, 01 Oct 2010 03:18:29 +0000, BCS wrote:
> 
>> Hello bearophile,
>> 
>>> BCS:
>>> 
>>>> My take on this is that the type system should promise to check
>>>> something and then always check it or say nothing at all. It should
>>>> never say maybe. The worst it can do is check something most of the
>>>> time but then not check it in the really hard cases (where I most
>>>> need it).
>>>> 
>>> I am not sure.
>>> 
>>> Type systems are like automatic systems that perform a proof. Goedel
>>> told us that in some cases there's no way to decide if something is
>>> true. This happens for type systems too, and the more complex type
>>> systems are, the more situations there are where they reach blocking
>>> situations.
>>> 
>>> All real programs contain many bugs, so you have think about finding
>>> bugs as a probabilistic effort, your purpose is to reduce some
>>> probabilities, because in real-world programs you can't hope to
>>> catch all bugs. There is not much difference if some of those bugs
>>> come from bugs in the type system, in the compiler, in the program,
>>> etc. In C# the type system gives you errors for uninitialized
>>> variables, this is a very useful feature that I'd like in D too, but
>>> there are situations where such static analysis fails, and the C#
>>> compiler gives you false positives.
>>> 
>>> You want a reliable type state that gives zero false negatives, this
>>> may be possible, I don't know, but it has a cost, because it has to
>>> turn some undetermined cases into false positives. Maybe there is no
>>> way to design a typestate as you desire in D.
>>> 
>> I have no problem with tools that do what you are looking for. That
>> said
>> I have major problems with that being the type system. The type
>> system
>> should be defined in terms of "MUST", "MUST NOT", "REQUIRED", "SHALL"
>> and "SHALL NOT" and should never use the term, "SHOULD", "SHOULD
>> NOT",
>> "RECOMMENDED",
>> "MAY", and "OPTIONAL"
>> http://www.faqs.org/rfcs/rfc2119.html
>> 
>> To do that with the type of static analyses you want would requiter
>> specifying the algorithms to be used and that would be pointless as
>> they would be out of date withihe n months.
>> 
> Are you talking about the specification of the type system here?
> Denotational semantics? Operational semantics?

Any and all of the above plus any less formal description of what the type 
system must accept and reject.

> That rfc has nothing to do with type systems, now does it.
> 

Nope it doesn't, but it has everything to do with how those terms I used 
are used in standards documents.

-- 
... <IXOYE><





More information about the Digitalmars-d mailing list