Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/325694.325716acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free access

Resource bound certification

Published: 05 January 2000 Publication History

Abstract

Various code certification systems allow the certification and static verification of important safety properties such as memory and control-flow safety. These systems are valuable tools for verifying that untrusted and potentially malicious code is safe before execution. However, one important safety property that is not usually included is that programs adhere to specific bounds on resource consumption, such as running time.
We present a decidable type system capable of specifying and certifying bounds on resource consumption. Our system makes two advances over previous resource bound certification systems, both of which are necessary for a practical system: We allow the execution time of programs and their subroutines to vary, depending on their arguments, and we provide a fully automatic compiler generating certified executables from source-level programs. The principal device in our approach is a strategy for simulating dependent types using sum and inductive kinds.

References

[1]
B. Bershad, S. Savage, P. Pardyak, E. Sirer, M. Fiuczynski, D. Becker, C. Chambers, and S. Eggers. Extensibility, safety and performance in the SPIN operating system. In Fifteenth A CM Symposium on Operating Systems Principles, pages 267-284, Copper Mountain, Dec. 1995.]]
[2]
K. Crary, D. Walker, and G. Morrisett. Typed memory management in a calculus of capabilities. In Twenty-Sixth A CM Symposium on Principles of Programming Languages, San Antonio, Texas, Jan. 1999.]]
[3]
K. Crary and S. Weirich. Flexible type analysis. In 1999 A CM International Conference on Functional Programming, pages 233-248, Paris, Sept. 1999.]]
[4]
K. Crary, S. Weirich, and G. Morrisett. Intensional polymorphism in type-erasure semantics. In 1998 A CM International Conference on Functional Programming, pages 301- 312, Baltimore, Sept. 1998. Extended version published as Cornell University technical report TR98-1721.]]
[5]
J.-Y. Girard. Une extension de l'interpr~tation de GSdel l'analyse, et son application ~ l'~limination de coupures dons l'analyse et la th~orie des types. In J. E. Fenstad, editor, Proceedings of the Second Scandinavian Logic Symposium, pages 63-92. North-Holland Publishing Co., 1971.]]
[6]
J.-Y. Girard. Interprdtation fonctionelle et dlimination des coupures de l'arithm~tique d'ordre sup~rieur. PhD thesis, Universit~ Paris VII, 1972.]]
[7]
R. Harper and G. Morrisett. Compiling polymorphism using intensional type analysis. :in Twenty-Second A CM Symposium on Principles of Programming Languages, pages 130- 1211, San Francisco, Jan. 1995.]]
[8]
M. Hoffman. Linear types and non-size increasing polynomial time computation. In Fourteenth IEEE Symposium on Logic in Computer Science, Trento, Italy, July 1999.]]
[9]
J. Hughes and L. Pareto. Recursion and dynamic datastructures in bounded space: Towards embedded ML programming. In 19P9 A CM international Conference on Functional Programming, pages 70-81, Paris, Sept. 1999.]]
[10]
J. Hughes, L. Pareto, and A. Sabry. Proving the correctness of reactive systems using sized types. In Twenty- Third A CM Symposium on Principles of Programming Languages, pages 410-423, St. Petersburg, Florida, Jan. 1996.]]
[11]
T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1996.]]
[12]
N. P. Mendler. Inductive types and type constraints in the second-order lambda calculus. Annals of Pure and Applied Logic, 51(1-2):159-172, 1991.]]
[13]
G. Morrisett, K. Crary, N. Glew, D. Grossman, R. Samuels, F. Smith, D. Walker, S. Weirich, and S. Zdancewic. TALx86: A realistic typed assembly language. In Second Workshop on Compiler Support .for System Software, Atlanta, May 1999.]]
[14]
G. Morrisett, D. Walker, K. Crary, aad N. Glew. From System F to typed assembly language. ACM Transactions on Programming Languages and Systems, 1999. To appear. An earlier version appeared in the 1998 Symposium on Principles of Programming Languages.]]
[15]
G. Necula. Proof-carrying code. In Twenty-Fourth A CM Symposium on Principles of Programming Languages, pages 106-119, Paris, Jan. 1997.]]
[16]
G. Necula and P. Lee. Safe kernel extensions without runtime checking. In Second Symposium on Operating Systems Design and Implementation, pages 229-243, Seattle, Oct. 1996.]]
[17]
G. Necula and P. Lee. Safe, untrusted agents using proofcarrying code. In Special Issue on Mobile Agent Security, volume 1419 of Lecture Notes in Computer Science. Springer-Verlag, Oct. 1997.]]
[18]
G. Necula and P. Lee. The design and implementation of a certifying compiler. In 1998 SIGPLAN Conference on Programming Language Design and Implementation, pages 333-344, Montreal, June 1998.]]
[19]
B. Reistad and D. K. Gifford. Static dependent costs for estimating execution time. In 19g~ A CM Conference on Lisp and Functional Programming, pages 65-78, Orlando, Florida, June 1994.]]
[20]
R. Wahbe, S. Lucco, T. Anderson, and S. Graham. Efficient software-based fault isolation. In Fourteenth A CM Symposium on Operating Systems Principles, pages 203- 216, Asheville, Dec. 1993.]]
[21]
H. Xi and F. Pfenning. Dependent types in practical programming. In Twenty-Sizth A CM Symposium on Principles of Programming Languages, pages 214-227, San Antonio, Texas, Jan. 1999.]]

Cited By

View all
  • (2024)Robust Resource Bounds with Static Analysis and Bayesian InferenceProceedings of the ACM on Programming Languages10.1145/36563808:PLDI(76-101)Online publication date: 20-Jun-2024
  • (2023)A High-Level Separation Logic for Heap Space under Garbage CollectionProceedings of the ACM on Programming Languages10.1145/35712187:POPL(718-747)Online publication date: 11-Jan-2023
  • (2023)Automatic Amortized Resource Analysis with Regular Recursive Types2023 38th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)10.1109/LICS56636.2023.10175720(1-14)Online publication date: 26-Jun-2023
  • Show More Cited By

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '00: Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 2000
402 pages
ISBN:1581131259
DOI:10.1145/325694
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: 05 January 2000

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

POPL00

Acceptance Rates

POPL '00 Paper Acceptance Rate 30 of 151 submissions, 20%;
Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)79
  • Downloads (Last 6 weeks)15
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Robust Resource Bounds with Static Analysis and Bayesian InferenceProceedings of the ACM on Programming Languages10.1145/36563808:PLDI(76-101)Online publication date: 20-Jun-2024
  • (2023)A High-Level Separation Logic for Heap Space under Garbage CollectionProceedings of the ACM on Programming Languages10.1145/35712187:POPL(718-747)Online publication date: 11-Jan-2023
  • (2023)Automatic Amortized Resource Analysis with Regular Recursive Types2023 38th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)10.1109/LICS56636.2023.10175720(1-14)Online publication date: 26-Jun-2023
  • (2022)Reference counting with frame limited reuseProceedings of the ACM on Programming Languages10.1145/35476346:ICFP(357-380)Online publication date: 31-Aug-2022
  • (2022)A cost-aware logical frameworkProceedings of the ACM on Programming Languages10.1145/34986706:POPL(1-31)Online publication date: 12-Jan-2022
  • (2022)Denotational semantics as a foundation for cost recurrence extraction for functional languagesJournal of Functional Programming10.1017/S095679682200003X32Online publication date: 5-Jul-2022
  • (2022)Semantic Foundations for Cost Analysis of Pipeline-Optimized ProgramsStatic Analysis10.1007/978-3-031-22308-2_17(372-396)Online publication date: 2-Dec-2022
  • (2021)Reasoning about the garden of forking pathsProceedings of the ACM on Programming Languages10.1145/34735855:ICFP(1-28)Online publication date: 19-Aug-2021
  • (2021)Automatic amortized resource analysis with the Quantum physicist’s methodProceedings of the ACM on Programming Languages10.1145/34735815:ICFP(1-29)Online publication date: 19-Aug-2021
  • (2021)Structured Leakage and Applications to Cryptographic Constant-Time and CostProceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security10.1145/3460120.3484761(462-476)Online publication date: 12-Nov-2021
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media