Re: array index checking optimizations?

Patrick Cousot <Patrick.Cousot@ens.fr>
8 May 1996 00:22:56 -0400

          From comp.compilers

Related articles
[6 earlier articles]
array index checking optimizations? dave@occl-cam.demon.co.uk (Dave Lloyd) (1996-05-02)
Re: array index checking optimizations? mad@math.keio.ac.jp (1996-05-03)
Re: array index checking optimizations? prener@watson.ibm.com (1996-05-03)
Re: array index checking optimizations? ben@sys.toronto.edu (1996-05-03)
Re: array index checking optimizations? dlmoore@ix.netcom.com (1996-05-03)
Re: array index checking optimizations? tmb@best.com (1996-05-05)
Re: array index checking optimizations? Patrick.Cousot@ens.fr (Patrick Cousot) (1996-05-08)
| List of all articles for this month |
From: Patrick Cousot <Patrick.Cousot@ens.fr>
Newsgroups: comp.compilers
Date: 8 May 1996 00:22:56 -0400
Organization: DMI - Ecole Normale Superieure - Paris
References: 96-04-140
Keywords: optimize, bibliography

Stephen Adams wrote:
>
> I am curious if there are any compilers out there that can detect that
> all the array references in the following program are safe, and thus
> no array indexes need to be checked.
>


Old references on interval analysis are:


\bibitem{CousotCousot76-1}
P.~Cousot and R.~Cousot.
\newblock Static determination of dynamic properties of programs.
\newblock In {\em Proceedings of the 2{$^{\rm\em nd}$} International
Symposium
    on Programming}, pages 106--130. Dunod, Paris, France, 1976.


\bibitem{CousotCousot77-1}
P.~Cousot and R.~Cousot.
\newblock Abstract interpretation: a unified lattice model for static
analysis
    of programs by construction or approximation of fixpoints.
\newblock In {\em Conference Record of the 4{$^{\rm\em th}$} Annual
ACM
    SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
pages
    238--252, Los Angeles, California, 1977. ACM Press, New York, New
York, {\sc usa}.


See a comparison of this old look at optimizing array bound checking
with:


@INPROCEEDINGS{rg90,
                AUTHOR = {Rajiv Gupta},
                TITLE = {A Fresh Look at Optimizing Array Bound
Checking},
                BOOKTITLE = {ACM SIGPLAN '90 Conference on Programming
Language Design and Implementation},
                YEAR = {1990},
                PAGES = {272-282},
                MONTH = {June}
}


(mentionned by Ksheerabdhi Krishna) in:


\bibitem{CousotCousot92-3}
P.~Cousot and R.~Cousot.
\newblock Abstract interpretation frameworks.
\newblock {\em Journal of Logic and Computation}, 2(4):511--547,
August 1992.


If interested in the implementation of this interval checking
by abstract interpretation, see:


@INCOLLECTION{Bourdoncle90-1,
      author = "Bourdoncle, F.",
      title = "Interprocedural Abstract Interpretation of Block
Structured Languages
                        with Nested Procedures, Aliasing and Recursivity",
      editor = "Deransart, P. and Ma{\l}uszy{\'n}ski, J.",
      booktitle = PROC # "International Workshop PLILP'90, " # PLILP,
      series = "Link{\"{o}}ping " # sweden # ", 20--22 " # aug # " 1990,
" # LNCS # 456,
      pages = "307--323",
      publisher = SPRINGER,
      year = "1990",
}


@ARTICLE{Bourdoncle92-1,
      author = "Bourdoncle, F.",
      title = "Abstract Interpretation by Dynamic Partitioning",
      journal = JFP,
      year = 1992,
      volume = 2,
      number = 4,
}


@PHDTHESIS{Bourdoncle92-2,
      author = "Bourdoncle, F.",
      title = "S\'emantiques des langages imp\'eratifs d'ordre
sup\'erieur et interpr\'etation
                        abstraite",
      school = "\'Ecole Polytechnique",
      type = "Th\`ese de doctorat de l'\'Ecole Polytechnique en
informatique",
      address = "Palaiseau, " # france,
      month = "13~" # nov,
      year = 1992,
}


@INCOLLECTION{Bourdoncle93-1,
      author = "Bourdoncle, F.",
      title = "Efficient Chaotic Iteration Strategies with Widenings",
      booktitle = PROC # FMPA,
      series = "Academgorodok, Novosibirsk, " # russia # ", " # LNCS #
"735",
      editor = "Bj\o rner, D. and Broy, M. and Pottosin, I.V.",
      pages = "128--141",
      publisher = SPRINGER,
      month = jun # " 28--" # jul # " 2,",
      year = 1993,
}


@INCOLLECTION{Bourdoncle93-2,
      author = "Bourdoncle, F.",
      title = "Abstract Debugging of Higher-Order Imperative Languages",
      booktitle = PROC # PLDI,
      pages = "46--55",
      publisher = ACMPress,
      year = 1993,
}


An implementation (called SYNTOX by Franc,ois Bourdoncle) is also
available
(for a subset of PASCAL), if you have a look at:


  http://www.ensmp.fr/~bourdonc
  http://www.ensmp.fr/~bourdonc/syntox.tar.z


If you write your example in Pascal included in a main program (i.e.
something has to be known about the bounds, and the possible calls), I
can try it with SYNTOX (which performs Abstract Debugging of full
programs).


Best regards,


--
Patrick COUSOT tel.: +33 1 44 32 20 64
ENS -- DMI fax.: +33 1 44 32 20 80
45 rue d'Ulm email: cousot@dmi.ens.fr
Patrick.Cousot@ens.fr
F-75230 Paris cedex 05 (France) URL: http://www.ens.fr/~cousot


--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.