What is Expressiveness in a Computer Language
david.nospam.hopwood at blueyonder.co.uk
Wed Jun 28 13:11:23 CEST 2006
Paul Rubin wrote:
> David Hopwood <david.nospam.hopwood at blueyonder.co.uk> writes:
>>Note that I'm not claiming that you can check any desirable property of
>>a program (that would contradict Rice's Theorem), only that you can
>>express any dynamically typed program in a statically typed language --
>>with static checks where possible and dynamic checks where necessary.
> It starts to look like sufficiently powerful static type systems are
> confusing enough, that programming with them is at least as bug-prone
> as imperative programming in dynamically typed languages. The static
> type checker can spot type mismatches at compile time, but the
> types themselves are easier and easier to get wrong.
My assertion above does not depend on having a "sufficiently powerful static
type system" to express a given dynamically typed program. It is true for
static type systems that are not particularly complicated, and suffice to
express all dynamically typed programs.
I disagree with your implication that in general, static type systems for
practical languages are getting too confusing, but that's a separate issue.
(Obviously one can find type systems in research proposals that are too
confusing as they stand.)
David Hopwood <david.nospam.hopwood at blueyonder.co.uk>
More information about the Python-list