Les Cargill said:
Larry Hazel wrote: ..
'C' is a right-regular language, with good orthogonality of
operators. That literally means "easy to read" - or at least
having the capacity to be writrten in a fashion that is easy
to read.
Easy to read may not be the same as easy to understand. My
criteria is focused more on understandability than simple readability.
I am often confronted with mathematical formulations that use
a set of symbols, or a combination of symbols, that I can easily
read, but which require study and hard work to actually understand.
Small C programs are relatively easy to understand. My problem
with the language is that understandability does not scale well as
program grow. There seems to be a rapid loss of easily accessible
meaning in C programs of any serious size.
I don't have this same problem with Ada. That is one of the reasons
I prefer Ada over C, even over C++, for larger programs. As an
Ada program grows, its understandability does not suffer as much
as does a corresponding program in C.
Dr. Robert Dewar, of NYU, has often made the point that Ada is
more readable than writeable. It has so often been my experience
that C programmers find it annoying to write := instead of = for
assignment. And C programmers miss compound assignment
operators. While these features of the language, along with many
more, make it easier for some programmers to lay down code
quickly, they do not make that code easier to read, even by other
C programmers.
From my perspective, the entire C family of languages, with the exception
of C#, has suffered, in terms of understandability, from the persistence
of original C syntax, and the failure to tidy up understandability has they
evolve from the mother tongue.
When I am in the classroom, for students who have never seen much of C
or Ada, programs written in Ada are almost always easier for them to
understand, on first reading, than programs written in any of the C family.
Richard Riehle