Re: Head scratching in language X superior to language Y
- From: "Stuart" <stuart@xxx>
- Date: Thu, 28 Feb 2008 17:49:51 -0000
<thomas.mertes@xxxxxx> wrote in message
news:e7071617-6d9e-4603-8c54-fa7e40c107e0@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
On 28 Feb., 10:50, "Stuart" <stu...@xxx> wrote:
<thomas.mer...@xxxxxx> wrote in message
news:cae970f1-1f2f-457b-b8fa-666a1f3b7bab@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
On Wed, 27 Feb 2008 07:01:06 -0600, thomas.mer...@xxxxxx wrote
Programming languages designed by a committee usually
have a bad reputation.
<snip comment by Randy Howard>
<TM>
I was referring to situation where a standard exists and it takes
many years until an implementation shows up. Ada and C99 are
such cases.
<S@0>
For Ada, are you referring to the core language or the special
needs annexes (which the standard identifies as optional)?
<TM>
No. I was referring to my own experience:
In 1980 or 1981 (at the beginning of my studies) I attend a lecture
at the technical university of vienne where Ada was intruduced.
<aside: They still look to be active in the Ada field>
In 1984 a fellow student finished his study of computer science
(together with me). His diploma thesis was about writing an Ada
compiler. He did not finish code generation but the other parts
where there. From this fellow student I have the information that
his compiler would have been one of the first Ada compilers.
Years later I still heard stories about: Ada not available at this
and that machine.
Availability for particular machines, and Ada cost were among the issues in
that era; but it is not so representative of the situation today.
I do not want to blame Ada. I just think that a specefication has a
better quality and is easier to implement when some prototype
implementation exists and has a feedback to the specification.
I think this depends on how you are measuring quality and what your
objectives are. Ada did not set out to make the compiler writer's job easy,
it set out to make software writing more reliable, software maintenance
easier, and improve the effectiveness of software development. However, it
did not disregard the practical issues of implementing a compiler, as can be
seen from many of the comments in the Annotated Language Reference Manual
and many of the Ada Implementation discussions.
The fellow student who did the Ada compiler told me about problems
in parsing an Ada program. He told me that he needed an extra
function to determine what meaning a parenthesis has. When you
compare this to Pascal which can be parsed with LL(1) such
complexity can be seen as unneccessary. A prototype implementation
would have shown such hard to parse parts and the specification
could have been changed before releasing it.
When I first started with Ada, having previously worked with Pascal, I was
perplexed by the change of array references from using Arr[] to Arr() - and
in particular the potential 'confusion' with a subprogram (function) calls.
However, the Arr() form was in established use in other languages (COBOL,
FORTRAN), and given specific requirements in the Ada83 requirements to
constrain the language to a restricted character set - including EBCDIC
which did not have [ ] - and the outcome is what we have. There are also
debates on the advantages/disadvantages over referential transparency
between arrays and functions vs easy distinction between array uses and
function use. These seem finely balanced.
What would not be of interest is the inconvenience, to a compiler writer, of
writing an extra function as, in the grand scheme of things, this is done
once while the implications for the users of the language will recur for
decades.
I know what I am talking about: Seed7 (under its former name MASTER)
did exist on paper for a long time. The attempts to implement it
directly from the paper specification failed. It turned out to be
better when a prototype implementation helps to change some
hard-to-implement features in the specification. Using the feedback
from an implementation helped to succeed finally in the
implementation of Seed7. This incremental process leads IMHO to
better results (for big and complex problems).
I don't doubt your experience, and your point of view is a fair one. But
design by reference implementation has its pitfalls - just as design by any
other approach has.
My experiences are different from yours, and having spent many years using
Ada I offer a different perspective - namely that designing a language by
committee can be very successful.
I was never involved with the development or implementation of the Ada
language so I do not know what role the early compiler/translator
development at New York University had in assisting the language
definition - I suspect it did help. (I believe one of the DoD requirements
was that there would be a language translator available when the Ada83
standard was released).
Regards
--
Stuart
.
- References:
- Head scratching in language X superior to language Y
- From: thomas . mertes
- Re: Head scratching in language X superior to language Y
- From: rmoldskr+usenet
- Re: Head scratching in language X superior to language Y
- From: thomas . mertes
- Re: Head scratching in language X superior to language Y
- From: Randy Howard
- Re: Head scratching in language X superior to language Y
- From: thomas . mertes
- Re: Head scratching in language X superior to language Y
- From: Stuart
- Re: Head scratching in language X superior to language Y
- From: thomas . mertes
- Head scratching in language X superior to language Y
- Prev by Date: Re: strlen(), K+1: clarification
- Next by Date: Re: Working as programmer with Bachelor's degree
- Previous by thread: Re: Head scratching in language X superior to language Y
- Next by thread: Re: Head scratching in language X superior to language Y
- Index(es):
Relevant Pages
|