Variations on Constants Flow Analysis of Sequential and Parallel Pro

Program analysis is concerned with techniques that automatically determine run-time properties of given programs prior to run-time. It is used for validation in order to ensure that programs serve their intended purpose and in further processing for effic

  • PDF / 1,719,687 Bytes
  • 183 Pages / 430 x 660 pts Page_size
  • 72 Downloads / 185 Views

DOWNLOAD

REPORT


Editorial Board David Hutchison Lancaster University, UK Takeo Kanade Carnegie Mellon University, Pittsburgh, PA, USA Josef Kittler University of Surrey, Guildford, UK Jon M. Kleinberg Cornell University, Ithaca, NY, USA Friedemann Mattern ETH Zurich, Switzerland John C. Mitchell Stanford University, CA, USA Moni Naor Weizmann Institute of Science, Rehovot, Israel Oscar Nierstrasz University of Bern, Switzerland C. Pandu Rangan Indian Institute of Technology, Madras, India Bernhard Steffen University of Dortmund, Germany Madhu Sudan Massachusetts Institute of Technology, MA, USA Demetri Terzopoulos University of California, Los Angeles, CA, USA Doug Tygar University of California, Berkeley, CA, USA Moshe Y. Vardi Rice University, Houston, TX, USA Gerhard Weikum Max-Planck Institute of Computer Science, Saarbruecken, Germany

3800

Markus Müller-Olm

Variations on Constants Flow Analysis of Sequential and Parallel Programs

13

Author Markus Müller-Olm Westfälische Wilhelms-Universität Münster Institut für Informatik, FB 10 Einsteinstraße 62, 48149 Münster, Germany E-mail: [email protected]

Library of Congress Control Number: 2006933227 CR Subject Classification (1998): D.2.4, D.2, D.3, F.3 LNCS Sublibrary: SL 2 – Programming and Software Engineering ISSN ISBN-10 ISBN-13

0302-9743 3-540-45385-7 Springer Berlin Heidelberg New York 978-3-540-45385-7 Springer Berlin Heidelberg New York

This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, re-use of illustrations, recitation, broadcasting, reproduction on microfilms or in any other way, and storage in data banks. Duplication of this publication or parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965, in its current version, and permission for use must always be obtained from Springer. Violations are liable to prosecution under the German Copyright Law. Springer is a part of Springer Science+Business Media springer.com © Springer-Verlag Berlin Heidelberg 2006 Printed in Germany Typesetting: Camera-ready by author, data conversion by Boller Mediendesign Printed on acid-free paper SPIN: 11871743 06/3142 543210

Foreword

By its nature, automatic program analysis is the art of finding adequate compromises. Originally, in the 1970s, program analysis aimed at deriving preconditions for typically obviously correct optimizing program transformations. Heuristics for loop optimizations were popular, which in particular concerned the treatment of multi-dimensional arrays. The limits of these heuristicsbased approaches became apparent when looking at the combined effects of optimizations – in particular in the context of concurrency. Since then, the loss of confidence in optimizing compilers has been fought by semantics-based methods that come with explicitly stated power and limitations. A particularly natural and illustrative class of program analyses aims at detecting program constants, i.e. occurrences of p