What is Expressiveness in a Computer Language

Simon Richard Clarkstone s.r.clarkstone at durham.ac.uk
Fri Jun 9 11:51:33 EDT 2006


Joe Marshall wrote:
> Xah Lee wrote:
>>On the Expressive Power of Programming Languages, by Matthias
>>Felleisen, 1990.
>>http://www.ccs.neu.edu/home/cobbe/pl-seminar-jr/notes/2003-sep-26/expressive-slides.pdf
> 
> The gist of the paper is this: Some computer languages seem to be 
> `more expressive' than others. But anything that can be computed in
> one Turing complete language can be computed in any other Turing
> complete language. Clearly the notion of expressiveness isn't
> concerned with ultimately computing the answer.
> 
> Felleisen's paper puts forth a formal definition of expressiveness in
> terms of semantic equivilances of small, local constructs. In his
> definition, wholescale program transformation is disallowed so you
> cannot appeal to Turing completeness to claim program equivalence.

I suspect that the small, local transformations versus global 
transformations is also to do with the practice of not saying the same 
thing twice.  Everything from subroutines to LISP macros also helps 
here, increasing language expressiveness.

> Expressiveness isn't necessarily a good thing. For instance, in C,
> you can express the addresses of variables by using pointers. You
> cannot express the same thing in Java, and most people consider this
> to be a good idea.

Assuming the more-expressive feature does not preclude the 
less-expressive one, good/bad depends on the programmer.  I know *I* 
can't be trusted with pointers ;-) , but I know many programmers benefit 
greatly from them.  Of course, knowing that the programmer cannot do 
something does help the compiler stop you shooting yourself in the foot.

-- 
Simon Richard Clarkstone: s.r.cl?rkst?n?@durham.ac.uk/s?m?n.cl?rkst?n?@
hotmail.com ### "I have a spelling chequer / it came with my PC /
it plainly marks for my revue / Mistake's I cannot sea" ...
by: John Brophy (at: http://www.cfwf.ca/farmj/fjjun96/)



More information about the Python-list mailing list