Nothing Special   »   [go: up one dir, main page]

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

Trace effects and object orientation

Published: 11 July 2005 Publication History

Abstract

Trace effects are statically generated program abstractions, that can be model checked for verification of assertions in a temporal program logic. In this paper we develop a type and effect analysis for obtaining trace effects of Object Oriented programs in Featherweight Java. We observe that the analysis is significantly complicated by the interaction of trace behavior with inheritance and other Object Oriented features, particularly overridden methods, dynamic dispatch, and downcasting. We propose an expressive type and effect inference algorithm, combining polymorphism and subtyping/subeffecting constraints, to obtain a flexible trace effect analysis in an Object Oriented setting.

References

[1]
Martín Abadi and Cédric Fournet. Access control based on execution history. In Proceedings of the 10th Annual Network and Distributed System Security Symposium (NDSS'03), feb 2003.
[2]
Rajeev Alur, Pavol Cerny, P. Madhusudan, and Wonhong Nam. Synthesis of interface specifications for java classes. In POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of programming languages, pages 98--109. ACM Press, 2005.
[3]
T. Amtoft, F. Nielson, and H. R. Nielson. Type and Effect Systems. Imperial College Press, 1999.
[4]
Thomas Ball and Sriram K. Rajamani. Bebop: A symbolic model checker for boolean programs. In SPIN, pages 113--130, 2000.
[5]
Massimo Bartoletti, Pierpaolo Degano, and Gian Luigi Ferrari. Policy framings for access control. In WITS '05: Proceedings of the 2005 workshop on Issues in the theory of security, pages 5--11. ACM Press, 2005.
[6]
F. Besson, T. Jensen, D. Le Métayer, and T. Thorn. Model checking security properties of control flow graphs. J. Computer Security, 9:217--250, 2001.
[7]
Frédéric Besson, Thomas de Grenier de Latour, and Thomas Jensen. Secure calling contexts for stack inspection. In Proceedings of the Fourth ACM SIGPLAN Conference on Principles and Practice of Declarative Programming (PPDP'02), pages 76--87. ACM Press, 2002.
[8]
Kim B. Bruce, Luca Cardelli, Giuseppe Castagna, Jonathan Eifrig, Scott F. Smith, Valery Trifonov, Gary T. Leavens, and Benjamin C. Pierce. On binary methods. Theory and Practice of Object Systems, 1(3):221--242, 1995.
[9]
O. Burkart, D. Caucal, F. Moller, and B. Steffen. Verification on infinite structures. In S. Smolka J. Bergstra, A. Pons, editor, Handbook on Process Algebra. North-Holland, 2001.
[10]
Robert Cartwright and Mike Fagan. Soft typing. In Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation, pages 278--292. ACM Press, 1991.
[11]
Hao Chen and David Wagner. MOPS: an infrastructure for examining security properties of software. In Proceedings of the 9th ACM Conference on Computer and Communications Security, pages 235--244, Washington, DC, November~18--22, 2002.
[12]
Thomas Colcombet and Pascal Fradet. Enforcing trace properties by program transformation. In 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 54--66, 2000.
[13]
Luis Damas and Robin Milner. Principal type-schemes for functional programs. In ACM Symposium on Principles of Programming Languages (POPL), pages 207--212, 1982.
[14]
Jonathan Eifrig, Scott Smith, and Valery Trifonov. Type inference for recursively constrained types and its application to OOP. In Mathematical Foundations of Programming Semantics, volume 1 of Electronic Notes in Theoretical Computer Science. Elsevier Science, 1995.
[15]
Jeffrey S. Foster, Tachio Terauchi, and Alex Aiken. Flow-Sensitive Type Qualifiers. In Proceedings of the 2002 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 1--12, Berlin, Germany, June 2002.
[16]
Gerard J. Holzmann and Margaret H. Smith. Software model checking: extracting verification models from source code. Software Testing, Verification & Reliability, 11(2):65--79, 2001.
[17]
Atsushi Igarashi and Naoki Kobayashi. Resource usage analysis. In Conference Record of POPL'02: The 29th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 331--342, Portland, Oregon, January 2002.
[18]
Atsushi Igarashi, Benjamin C. Pierce, and Philip Wadler. Featherweight Java: a minimal core calculus for Java and GJ. ACM Trans. Program. Lang. Syst., 23(3):396--450, 2001.
[19]
T. Jensen, D. Le Métayer, and T. Thorn. Verification of control flow based security properties. In Proceedings of the 1999 IEEE Symposium on Security and Privacy, 1999.
[20]
P. J. Stuckey K. Marriott and M. Sulzmann. Resource usage verification. In Proc. of First Asian Programming Languages Symposium, APLAS 2003, 2003.
[21]
Francesco Logozzo. Separate compositional analysis of class-based object-oriented languages. In Proceedings of the 10th International Conference on Algebraic Methodology And Software Technology (AMAST'2004), volume 3116 of Lectures Notes in Computer Science, pages 332--346. Springer-Verlag, July 2004.
[22]
Yitzhak Mandelbaum, David Walker, and Robert Harper. An effective theory of type refinements. In Proceedings of the the Eighth ACM SIGPLAN International Conference on Functional Programming (ICFP'03), Uppsala, Sweden, August 2003.
[23]
Fred B. Schneider. Enforceable security policies. Information and System Security, 3(1):30--50, 2000.
[24]
Christian Skalka and Scott Smith. History effects and verification. In Asian Programming Languages Symposium, number 3302 in Lecture Notes in Computer Science. Springer, November 2004.
[25]
Christian Skalka, Scott Smith, and David Van Horn. A type and effect system for flexible abstract interpretation of Java. In Proceedings of the ACM Workshop on Abstract Interpretation of Object Oriented Languages, Electronic Notes in Theoretical Computer Science, January 2005.
[26]
B. Steffen and O. Burkart. Model checking for context-free processes. In CONCUR'92, Stony Brook (NY), volume 630 of Lecture Notes in Computer Science (LNCS), pages 123--137, Heidelberg, Germany, 1992. Springer-Verlag.
[27]
Jean-Pierre Talpin and Pierre Jouvelot. The type and effect discipline. In Seventh Annual IEEE Symposium on Logic in Computer Science, Santa Cruz, California, pages 162--173, Los Alamitos, California, 1992. IEEE Computer Society Press.
[28]
Valery Trifonov and Scott Smith. Subtyping constrained types. In Proceedings of the Third International Static Analysis Symposium, volume 1145, pages 349--365. Springer Verlag, 1996.
[29]
David Walker. A type system for expressive security policies. In Conference Record of POPL'00: The 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 254--267, Boston, Massachusetts, January 2000.

Cited By

View all
  • (2023)Shelley: A Framework for Model Checking Call Ordering on Hierarchical SystemsCoordination Models and Languages10.1007/978-3-031-35361-1_5(93-114)Online publication date: 15-Jun-2023
  • (2020)Types and Abstract Interpretation for Authorization Hook Advice2020 IEEE 33rd Computer Security Foundations Symposium (CSF)10.1109/CSF49147.2020.00018(139-152)Online publication date: Jun-2020
  • (2011)A heuristic approach for computing effectsProceedings of the 49th international conference on Objects, models, components, patterns10.5555/2025896.2025908(147-162)Online publication date: 28-Jun-2011
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

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. temporal program logic
  2. type and effect
  3. type constraints

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)2
  • Downloads (Last 6 weeks)1
Reflects downloads up to 13 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Shelley: A Framework for Model Checking Call Ordering on Hierarchical SystemsCoordination Models and Languages10.1007/978-3-031-35361-1_5(93-114)Online publication date: 15-Jun-2023
  • (2020)Types and Abstract Interpretation for Authorization Hook Advice2020 IEEE 33rd Computer Security Foundations Symposium (CSF)10.1109/CSF49147.2020.00018(139-152)Online publication date: Jun-2020
  • (2011)A heuristic approach for computing effectsProceedings of the 49th international conference on Objects, models, components, patterns10.5555/2025896.2025908(147-162)Online publication date: 28-Jun-2011
  • (2011)A Heuristic Approach for Computing EffectsObjects, Models, Components, Patterns10.1007/978-3-642-21952-8_12(147-162)Online publication date: 2011
  • (2009)Local policies for resource usage analysisACM Transactions on Programming Languages and Systems10.1145/1552309.155231331:6(1-43)Online publication date: 26-Aug-2009
  • (2008)Types and trace effects for object orientationHigher-Order and Symbolic Computation10.1007/s10990-008-9032-621:3(239-282)Online publication date: 1-Sep-2008
  • (2007)Types and Effects for resource usage analysisProceedings of the 10th international conference on Foundations of software science and computational structures10.5555/1760037.1760043(32-47)Online publication date: 24-Mar-2007
  • (2007)Type safe dynamic linking for JVM access controlProceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming10.1145/1273920.1273928(51-62)Online publication date: 14-Jul-2007
  • (2007)A static type system for JVM access controlACM Transactions on Programming Languages and Systems10.1145/1180475.118047929:1(4-es)Online publication date: 1-Jan-2007
  • (2007)Types and Effects for Resource Usage AnalysisFoundations of Software Science and Computational Structures10.1007/978-3-540-71389-0_4(32-47)Online publication date: 2007
  • Show More Cited By

View Options

Get Access

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