comp.lang.ada
 help / color / mirror / Atom feed
From: dewar@gnat.com (Robert Dewar)
Subject: Re: Commercial C To Ada 95 compiler
Date: 8 Jun 2002 05:11:38 -0700
Date: 2002-06-08T12:11:38+00:00	[thread overview]
Message-ID: <5ee5b646.0206080411.7da58d12@posting.google.com> (raw)
In-Reply-To: u_fM8.215645$Po6.363686@rwcrnsc52.ops.asp.att.net

> In fact this is not an error in C.  Programs can (and do) intentionally
> index past the end of arrays.  I have seen C code that allocates memory
> dynamically and uses array access to reference the memory.  It is nearly
> impossible to distinguish these cases.

This is an erroneous C program. Definitely it will be hard to translate
programs that are erroneous and have undefined semantics. Or from a more
formal point of view, ANY translation of such a program is correct! Many
C programmers think C has general address arithmetic. It does not. If you
want general address arithmetic, you must use some other language, e.g.
Ada, which does have this feature. 
 
> > Another incompatibility is trying to reference the control
> > variable in a "for" loop outside the scope of the "for" loop.
> > This is impossible in Ada and not uncommon in C. The C compiler
> > will allow this. The Ada compiler will not.
> 
> In this case a direct translation should translate the for loop to a while
> construct.  For a direct translation the generated code must behave exactly
> the same as the original code.

A better response is that there is no "for" loop in C. The thing that looks
like a for loop in C is (and is defined to be) simply a macro form for a while
loop. Most obviously it must be translated into a while loop.

In general the point is that a translator that does this kind of translation
must have all the intelligence and semantic knowledge of a C compiler (and
must be written by someone who knows the formal semantics and typical usage
of both languages comprehensively).



  reply	other threads:[~2002-06-08 12:11 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-03  9:26 Commercial C To Ada 95 compiler Henrik Quintel
2002-06-03 18:52 ` Ingo Marks
2002-06-04  6:40   ` Henrik Quintel
2002-06-04 14:11     ` Frank J. Lhota
2002-06-04 14:26       ` Preben Randhol
2002-06-04 16:38         ` Frank J. Lhota
2002-06-03 20:26 ` Florian Weimer
2002-06-04  6:43   ` Henrik Quintel
2002-06-04 14:18     ` Lutz Donnerhacke
2002-06-07  3:48 ` Richard Riehle
2002-06-07 12:46   ` SteveD
2002-06-07 13:20     ` Marin David Condic
2002-06-09 21:43       ` Stephen Leake
2002-06-10 13:17         ` Marin David Condic
2002-06-11 12:52           ` SteveD
2002-06-11 13:32             ` Marin David Condic
2002-06-12 14:07               ` Larry Kilgallen
2002-06-12 13:21                 ` Marin David Condic
2002-06-07 13:21   ` Larry Kilgallen
2002-06-07 19:48     ` Ted Dennison
2002-06-07 20:26       ` Wes Groleau
2002-06-08  3:19         ` SteveD
2002-06-08  3:59           ` Jim Rogers
2002-06-08  4:14             ` Darren New
2002-06-08  4:50               ` SteveD
2002-06-08 12:04                 ` Robert Dewar
2002-06-10 18:44               ` Wes Groleau
2002-06-10 19:23                 ` Darren New
2002-06-10 20:55                   ` Wes Groleau
2002-06-10 21:03                     ` Darren New
2002-06-08  4:46             ` SteveD
2002-06-08 12:11               ` Robert Dewar [this message]
2002-06-08 18:46                 ` SteveD
2002-06-10 13:34                   ` Marin David Condic
2002-06-11 16:38                     ` Wes Groleau
2002-06-11 17:27                       ` Marin David Condic
2002-06-12 13:18                         ` Pascal Obry
2002-06-10 18:47               ` Wes Groleau
2002-06-10 21:23                 ` Larry Kilgallen
2002-06-10 20:59                   ` Wes Groleau
2002-06-10 21:37                     ` Robert A Duff
2002-06-10 22:34                       ` Wes Groleau
2002-06-08 12:06             ` Robert Dewar
2002-06-08 15:53             ` Richard Riehle
2002-06-08 15:58               ` Preben Randhol
2002-06-10 13:37                 ` Marin David Condic
2002-06-10 23:32                   ` Darren New
2002-06-11 13:11                     ` Marin David Condic
2002-06-12 15:42                       ` Darren New
2002-06-21 17:23                         ` David Thompson
2002-06-08 17:45               ` tmoran
2002-06-08 18:32               ` Pascal Obry
2002-06-09 17:41                 ` Richard Riehle
2002-06-10  8:11                   ` Fraser Wilson
2002-06-08 20:06               ` Jim Rogers
2002-06-09 17:49                 ` Richard Riehle
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox