skip to main content
10.1145/1069774.1069775acmconferencesArticle/Chapter ViewAbstractPublication PagesppdpConference Proceedingsconference-collections
Article

Abstraction carrying code and resource-awareness

Published: 11 July 2005 Publication History

Abstract

Proof-Carrying Code (PCC) is a general approach to mobile code safety in which the code supplier augments the program with a certificate (or proof). The intended benefit is that the program consumer can locally validate the certificate w.r.t. the "untrusted" program by means of a certificate checker---a process which should be much simpler, efficient, and automatic than generating the original proof. Abstraction Carrying Code (ACC) is an enabling technology for PCC in which an abstract model of the program plays the role of certificate. The generation of the certificate, i.e., the abstraction, is automatically carried out by an abstract interpretation-based analysis engine, which is parametric w.r.t. different abstract domains. While the analyzer on the producer side typically has to compute a semantic fixpoint in a complex, iterative process, on the receiver it is only necessary to check that the certificate is indeed a fixpoint of the abstract semantics equations representing the program. This is done in a single pass in a much more efficient process. ACC addresses the fundamental issues in PCC and opens the door to the applicability of the large body of frameworks and domains based on abstract interpretation as enabling technology for PCC. We present an overview of ACC and we describe in a tutorial fashion an application to the problem of resource-aware security in mobile code. Essentially the information computed by a cost analyzer is used to generate cost certificates which attest a safe and efficient use of a mobile code. A receiving side can then reject code which brings cost certificates (which it cannot validate or) which have too large cost requirements in terms of computing resources (in time and/or space) and accept mobile code which meets the established requirements.

References

[1]
E. Albert, G. Puebla, and M. Hermenegildo. An Abstract Interpretation-based Approach to Mobile Code Safety. In Proc. of Compiler Optimization meets Compiler Verification (COCV'04), April 2004.
[2]
E. Albert, G. Puebla, and M. Hermenegildo. Abstraction-Carrying Code. In 11th International Conference on Logic for Programming Artificial Intelligence and Reasoning (LPAR'04), number 3452 in LNAI, pages 380--397. Springer-Verlag, March 2005.
[3]
A. Appel and A. Felty. Lightweight Lemmas in lambda-Prolog. In Proc. of ICLP'99, pages 411--425. MIT Press, 1999.
[4]
A. Bernard and P. Lee. Temporal logic for proof-carrying code. In Proc. of CADE'02, pages 31--46. Springer LNCS, 2002.
[5]
M. Bruynooghe. A Practical Framework for the Abstract Interpretation of Logic Programs. Journal of Logic Programming, 10:91--124, 1991.
[6]
F. Bueno, P. Deransart, W. Drabent, G. Ferrand, M. Hermenegildo, J. Maluszynski, and G. Puebla. On the Role of Semantic Approximations in Validation and Diagnosis of Constraint Logic Programs. In Proc. of the 3rd. Int'l Workshop on Automated Debugging--AADEBUG'97, pages 155--170, Linköping, Sweden, May 1997. U. of Linköping Press.
[7]
B. L. Charlier and P. Van Hentenryck. Experimental Evaluation of a Generic Abstract Interpretation Algorithm for Prolog. ACM Transactions on Programming Languages and Systems, 16(1):35--101, 1994.
[8]
P. Cousot. Types as Abstract Interpretations. In ACM Symposium on Principles of Programming Languages, pages 316--331. ACM Press, January 1997.
[9]
P. Cousot and R. Cousot. Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Proc. of POPL'77, pages 238--252, 1977.
[10]
P. Cousot and R. Cousot. Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Fourth ACM Symposium on Principles of Programming Languages, pages 238--252, 1977.
[11]
S. Debray, P. López-García, M. Hermenegildo, and N.-W. Lin. Estimating the Computational Cost of Logic Programs. In Static Analysis Symposium, SAS'94, number 864 in LNCS, pages 255--265, Namur, Belgium, September 1994. Springer-Verlag.
[12]
S. Debray, P. López-García, M. Hermenegildo, and N.-W. Lin. Lower Bound Cost Estimation for Logic Programs. In 1997 International Logic Programming Symposium, pages 291--305. MIT Press, Cambridge, MA, October 1997.
[13]
S. K. Debray. Static Inference of Modes and Data Dependencies in Logic Programs. ACM Transactions on Programming Languages and Systems, 11(3):418--450, 1989.
[14]
J. Gallagher and D. de Waal. Fast and Precise Regular Approximations of Logic Programs. In Proc. of ICLP'94, pages 599--613. MIT Press, 1994.
[15]
M. Hermenegildo, G. Puebla, and F. Bueno. Using Global Analysis, Partial Specifications, and an Extensible Assertion Language for Program Validation and Debugging. In K. R. Apt, V. Marek, M. Truszczynski, and D. S. Warren, editors, The Logic Programming Paradigm: a 25--Year Perspective, pages 161--192. Springer-Verlag, July 1999.
[16]
M. Hermenegildo, G. Puebla, F. Bueno, and P. López-García. Program Development Using Abstract Interpretation (and The Ciao System Preprocessor). In 10th International Static Analysis Symposium (SAS'03), number 2694 in LNCS, pages 127--152. Springer-Verlag, June 2003.
[17]
M. Hermenegildo, G. Puebla, K. Marriott, and P. Stuckey. Incremental Analysis of Constraint Logic Programs. ACM Transactions on Programming Languages and Systems, 22(2):187--223, March 2000.
[18]
K. Marriott, H. Søndergaard, and N. Jones. Denotational Abstract Interpretation of Logic Programs. ACM Transactions on Programming Languages and Systems, 16(3):607--648, 1994.
[19]
G. Morrisett, D. Walker, K. Crary, and N. Glew. From system F to typed assembly language. ACM Transactions on Programming Languages and Systems, 21(3):527--568, 1999.
[20]
K. Muthukumar and M. Hermenegildo. Deriving A Fixpoint Computation Algorithm for Top-down Abstract Interpretation of Logic Programs. Technical Report ACT-DC-153-90, Microelectronics and Computer Technology Corporation (MCC), Austin, TX 78759, April 1990.
[21]
K. Muthukumar and M. Hermenegildo. Compile-time Derivation of Variable Dependency Using Abstract Interpretation. Journal of Logic Programming, 13(2/3):315--347, July 1992.
[22]
G. Necula. Proof-Carrying Code. In Proc. of POPL'97, pages 106--119. ACM Press, 1997.
[23]
G. Puebla, F. Bueno, and M. Hermenegildo. A Generic Preprocessor for Program Validation and Debugging. In P. Deransart, M. Hermenegildo, and J. Maluszynski, editors, Analysis and Visualization Tools for Constraint Programming, number 1870 in LNCS, pages 63--107. Springer-Verlag, September 2000.
[24]
G. Puebla, F. Bueno, and M. Hermenegildo. An Assertion Language for Constraint Logic Programs. In P. Deransart, M. Hermenegildo, and J. Maluszynski, editors, Analysis and Visualization Tools for Constraint Programming, number 1870 in LNCS, pages 23--61. Springer-Verlag, September 2000.
[25]
G. Puebla, F. Bueno, and M. Hermenegildo. Combined Static and Dynamic Assertion-Based Debugging of Constraint Logic Programs. In Logic-based Program Synthesis and Transformation (LOPSTR'99), number 1817 in LNCS, pages 273--292. Springer-Verlag, 2000.
[26]
G. Puebla and M. Hermenegildo. Optimized Algorithms for the Incremental Analysis of Logic Programs. In International Static Analysis Symposium, number 1145 in LNCS, pages 270--284. Springer-Verlag, September 1996.
[27]
M. Weiser. The computer for the twenty-first century. Scientific American, 3(265):94--104, September 1991.

Cited By

View all

Index Terms

  1. Abstraction carrying code and resource-awareness

                                    Recommendations

                                    Comments

                                    Information & Contributors

                                    Information

                                    Published In

                                    cover image ACM Conferences
                                    PPDP '05: Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
                                    July 2005
                                    260 pages
                                    ISBN:1595930906
                                    DOI:10.1145/1069774
                                    • General Chair:
                                    • Pedro Barahona,
                                    • Program Chair:
                                    • Amy Felty
                                    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                                    Sponsors

                                    Publisher

                                    Association for Computing Machinery

                                    New York, NY, United States

                                    Publication History

                                    Published: 11 July 2005

                                    Permissions

                                    Request permissions for this article.

                                    Check for updates

                                    Author Tags

                                    1. abstract interpretation
                                    2. cost analysis
                                    3. distributed programming
                                    4. granularity control
                                    5. mobile code certification
                                    6. program debugging
                                    7. program verification
                                    8. programming languages
                                    9. resource awareness

                                    Qualifiers

                                    • Article

                                    Conference

                                    PPDP05
                                    Sponsor:

                                    Acceptance Rates

                                    Overall Acceptance Rate 230 of 486 submissions, 47%

                                    Contributors

                                    Other Metrics

                                    Bibliometrics & Citations

                                    Bibliometrics

                                    Article Metrics

                                    • Downloads (Last 12 months)5
                                    • Downloads (Last 6 weeks)1
                                    Reflects downloads up to 07 Jan 2025

                                    Other Metrics

                                    Citations

                                    Cited By

                                    View all

                                    View Options

                                    Login options

                                    View options

                                    PDF

                                    View or Download as a PDF file.

                                    PDF

                                    eReader

                                    View online with eReader.

                                    eReader

                                    Media

                                    Figures

                                    Other

                                    Tables

                                    Share

                                    Share

                                    Share this Publication link

                                    Share on social media