What is Expressiveness in a Computer Language

rossberg at ps.uni-sb.de rossberg at ps.uni-sb.de
Sun Jun 25 15:42:44 EDT 2006


Joachim Durchholz wrote:
>
>  > but (Standard) ML surely has none.
>
> NLFFI?
>
>  > Same with Haskell as defined by its spec.
>
> Um... I'm not 100% sure, but I dimly (mis?)remember having read that
> UnsafePerformIO also offered some ways to circumvent the type system.

Neither NLFFI nor unsafePerformIO are official part of the respective
languages. Besides, foreign function interfaces are outside a language
by definition, and can hardly be taken as an argument - don't blame
language A that unsafety arises when you subvert it by interfacing with
unsafe language B on a lower level.

> >> and even C is typesafe unless you use unsafe constructs.
> >
> > Tautology. Every language is "safe unless you use unsafe constructs".
>
> No tautology - the unsafe constructs aren't just typewise unsafe ;-p
>
> That's exactly why I replaced Luca Cardelli's "safe/unsafe"
> "typesafe/not typesafe". There was no definition to the original terms
> attached, and this discussion is about typing anyway.

The Cardelli paper I was referring to discusses it in detail. And if
you look up the context of my posting: it was exactly whether safety is
to be equated with type safety.

> >> IOW from a type-theoretic point of view, there is no real difference
> >> between their typesafe and not typesafe languages in the "statically
> >> typed" column; the difference is in the amount of unsafe construct usage
> >> in practial programs.
> >
> > Huh? There is a huge, fundamental difference:  namely whether a type
> > system is sound or not.
>
> I think you're overstating the case.
>
> In type theory, of course, there's no such things as an "almost typesafe
> language" - it's typesafe or it isn't.

Right, and you were claiming to argue from a type-theoretic POV.

[snipped the rest]

- Andreas




More information about the Python-list mailing list