Re: [Lit.] Buffer overruns

From: karl malbrain (karl_m_at_acm.org)
Date: 12/17/04


Date: Thu, 16 Dec 2004 17:06:37 -0800


"Mok-Kong Shen" <mok-kong.shen@t-online.de> wrote in message
news:cptb1p$tuc$02$1@news.t-online.com...
>
>
> Mok-Kong Shen wrote:
>
> > karl malbrain wrote:
> >
> >> "Mok-Kong Shen" <mok-kong.shen@t-online.de> wrote:
> >
> >>> 'Way to complicated' is subjective. A foreign langauge always
> >>> appears to be way to complicated for a person who begins
> >>> to learn it, until he has obtained some competency and then
> >>> looks back. Of course, it may be easier in case the foreign
> >>> language is related to one's native language or another
> >>> language that one has already mastered. Thus Pascal
> >>> programmers should have less learning effort for ADA.
> >>> (Similarly C programmers can more readily learn C++, I believe.)
> >>
> >> Of course it's subjective -- being based completely on experience.
That's
> >> why I gave the example of what Ada is going to have to compete with: A
> >> single C statement that wouldn't benefit from what Ada offers. The
> >> argument
> >> grows upward from there to Ada being completely redundant at the bottom
> >> layer. karl m
> >
> >
> > So all the other higher-level PLs that have been invented
> > are entirely redundant and of no practical value in your view,
> > including perhaps also C++ (which seems to be more agreeable
> > for most of the C community)?
>
> Addendum: Actually you could also do machine code insertion
> in ADA95 (if you really want to do that), if you explicitly
> express your desire (hence responsibility) with a certain
> use-statement that is specific for that purpose.

Yes, that's the general argument here -- C is perfectly fine for creating
applications that are safe -- there's nothing inherently wrong with C. You
build safety in from the ground up. I gave you an example of a ground level
loop. Here it is again:

do opcode = nextop(env); env->status = (env->fcns[opcode])(env);
while( env->status == OK );

I only have to prove two things here: that the loop terminates and that its
array reference is in bounds. I can easily do both given the next layer up.
What do I need Ada for? extra expense? I cannot afford it. karl m