comp.lang.ada
 help / color / mirror / Atom feed
From: Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk>
Subject: Re: Idea: Array Boundary Checks on Write Access Only
Date: 1998/06/18
Date: 1998-06-18T00:00:00+00:00	[thread overview]
Message-ID: <3588D738.4BB32E5A@cl.cam.ac.uk> (raw)
In-Reply-To: 6m8v02$r2l$1@xenon.inbe.net


Lieven Marchand wrote:
> About the only commonly used case that most compilers don't handle is
> where you put in the check yourself.

It would be really neat if Ada compilers would keep track not only of
the declared range of a subtype, but also of the effectively possible
range of Integer variables inside a certain program fragment as part
of the flow analysis.

For instance in code such as

  if J > 0 then
     -- compiler notes that here J : range 1 .. J'Last
     if I > J then
        -- compiler notes that here I : range 1 .. I'Last

then the compiler should know that inside the second "if" I > 0 always
holds. This need not be a full blown automatic proof system, just some
logic that understands simple inequalities and monotonic expressions
and that keeps track of the effective maximum and minimum value
of integer variables and supresses most checks accordingly.

It would then also be a nice option if the compiler would be
able to dump a list of all the checks that it still had to insert
to give developers a clue of whether they can by intelligently
placing a manual check at the right place make a large number
of automatically inserted less efficient checks unnecessary.

Markus

-- 
Markus G. Kuhn, Security Group, Computer Lab, Cambridge University, UK
email: mkuhn at acm.org,  home page: <http://www.cl.cam.ac.uk/~mgk25/>




  parent reply	other threads:[~1998-06-18  0:00 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-06-15  0:00 Idea: Array Boundary Checks on Write Access Only Markus Kuhn
1998-06-15  0:00 ` Peter Amey
1998-06-20  0:00   ` Robert Dewar
1998-06-21  0:00     ` Markus Kuhn
     [not found]       ` <dewar.898490510@merv>
1998-07-09  0:00         ` Frank Klemm
1998-06-17  0:00 ` Stephen Leake
1998-06-17  0:00   ` Markus Kuhn
1998-06-17  0:00     ` Robert A Duff
1998-06-18  0:00     ` Anonymous
1998-06-18  0:00     ` Stuart Palin
     [not found] ` <6m8v02$r2l$1@xenon.inbe.net>
1998-06-18  0:00   ` Markus Kuhn [this message]
1998-06-18  0:00     ` Lieven Marchand
1998-06-20  0:00       ` Robert I. Eachus
1998-06-18  0:00     ` Stuart Palin
1998-06-18  0:00     ` dennison
1998-06-20  0:00       ` Robert Dewar
1998-06-18  0:00     ` dennison
replies disabled

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