
Iowa State University Capstones, Theses and Retrospective Theses and Dissertations Dissertations 2005 A design discipline and language features for modular reasoning in aspect-oriented programs Curtis Charles Clifton Iowa State University Follow this and additional works at: https://lib.dr.iastate.edu/rtd Part of the Computer Sciences Commons Recommended Citation Clifton, Curtis Charles, "A design discipline and language features for modular reasoning in aspect-oriented programs " (2005). Retrospective Theses and Dissertations. 1840. https://lib.dr.iastate.edu/rtd/1840 This Dissertation is brought to you for free and open access by the Iowa State University Capstones, Theses and Dissertations at Iowa State University Digital Repository. It has been accepted for inclusion in Retrospective Theses and Dissertations by an authorized administrator of Iowa State University Digital Repository. For more information, please contact [email protected]. A design discipline and language features for modular reasoning in aspect-oriented programs by Curtis Charles Clifton A dissertation submitted to the graduate faculty in partial fulfillment of the requirements for the degree of DOCTOR OF PHILOSOPHY Major: Computer Science Program of Study Committee: Gary T. Leavens, Major Professor lien Morris Chang Markus Lumpe Robyn R. Lutz lonathan D. H. Smith Iowa State University Ames, Iowa 2005 Copyright © Curtis Charles Clifton, 2005. All rights reserved. UMI Number: 3184594 INFORMATION TO USERS The quality of this reproduction is dependent upon the quality of the copy submitted. Broken or indistinct print, colored or poor quality illustrations and photographs, print bleed-through, substandard margins, and improper alignment can adversely affect reproduction. In the unlikely event that the author did not send a complete manuscript and there are missing pages, these will be noted. Also, if unauthorized copyright material had to be removed, a note will indicate the deletion. UMI UMI Microform 3184594 Copyright 2005 by ProQuest Information and Learning Company. All rights reserved. This microform edition is protected against unauthorized copying under Title 17, United States Code. ProQuest Information and Learning Company 300 North Zeeb Road P.O. Box 1346 Ann Arbor, Ml 48106-1346 ii Graduate College Iowa State University This is to certify that the doctoral dissertation of Curtis Charles Clifton has met the dissertation requirements of Iowa State University Signature was redacted for privacy. or Professor Signature was redacted for privacy. For the Major Program iii To Pastor Daniel Solomon, a model of perseverance and faithful dedication, and a good friend iv TABLE OF CONTENTS LIST OF TABLES viii LIST OF FIGURES ix ACKNOWLEDGMENTS xii ABSTRACT xiv CHAPTER 1. INTRODUCTION 1 1.1 Aspect-oriented Programming 2 1.2 Practical Benefits 4 1.2.1 Applications of Aspect-Oriented Features 4 1.3 Theoretical Challenges 6 1.3.1 Object-Oriented Non-modularity 7 1.3.2 Behavioral Subtyping 8 1.3.3 Non-modularity in Aspect-Oriented Languages 9 1.3.4 Modular Aspect-oriented Reasoning 10 1.4 Scope 11 1.5 Statement of the Thesis 12 CHAPTER 2. THE MAO DISCIPLINE 13 2.1 The Discipline 14 2.2 Proposed Language Features 15 2.2.1 Assistants 15 2.2.2 Spectators 23 2.3 Evaluation 26 2.3.1 ATLAS Case Study 26 2.3.2 Impact of Restrictions 27 2.3.3 Summary of Evaluation 33 V 2.4 Specification and Reasoning 33 2.4.1 Specifying Around Advice 34 2.4.2 Specification Composition 39 2.5 Discussion 54 2.5.1 Language Issues 54 2.5.2 Specification Issues 57 2.5.3 Tool Support 57 2.6 Related Work 58 2.7 Conclusion 62 CHAPTERS. MINIMAOi : INVESTIGATING THE SEMANTICS OF PROCEED 64 3.1 MiniMAOo: A Core Object-Oriented Calculus with Classes 64 3.1.1 Syntax of MiniMAOo 65 3.1.2 Operational Semantics of MiniMAOo 66 3.1.3 Static Semantics of MiniMAOo 75 3.1.4 Meta-theory of MiniMAOo 78 3.2 MiniMAOi : Adding Aspects 88 3.2.1 Syntax of MiniMAOi 89 3.2.2 Operational Semantics of MiniMAOi 91 3.2.3 Static Semantics of MiniMAOi 112 3.2.4 Meta-theory of MiniMAOi 117 3.3 Related Work 144 3.4 Discussion 146 3.5 Conclusion 147 CHAPTER 4. MINIMA02: PARTITIONING THE HEAP BY CROSS-CUTTING CONCERNS 149 4.1 Intuition 150 4.2 Syntax 152 4.2.1 Public Concern Domain Declarations 153 4.2.2 Class and Aspect Instantiation 153 4.2.3 Refined Types 157 4.2.4 Effects Clauses 158 4.2.5 New Pointcut Descriptor 158 4.2.6 Concern Domain Dependencies 158 vi 4.3 Semantics 159 4.3.1 Operational Semantics 159 4.3.2 Static Semantics 169 4.4 Meta-theory 184 4.4.1 Auxiliary Definitions and Lemmas 185 4.4.2 Type Safety 217 4.4.3 Effects Properties 231 4.5 Related Work 242 4.6 Conclusion 247 CHAPTER 5. MiniMA03: SPECTATORS REALIZED 249 5.1 Differences Versus MiniMAOg 249 5.1.1 Syntax of MiniMAOg 250 5.1.2 Operational Semantics of MiniMAOs 252 5.1.3 Static Semantics of MiniMAOa 257 5.2 Meta-Theory of MiniMAOg 263 5.2.1 Supporting Definitions and Lemmas 264 5.2.2 Type Safety 273 5.2.3 Effects 280 5.3 Discussion 288 5.4 Related Work 288 5.5 Conclusion 289 CHAPTER 6. CONCLUSIONS AND FUTURE WORK 290 6.1 Support for the Thesis 290 6.2 Open Problems 292 6.2.1 Verification 292 6.2.2 MAO 295 6.3 Future Work 298 6.3.1 Alias Control 298 6.3.2 Late Binding and Aspect-Oriented Virtual Machines 298 6.3.3 Concurrent Aspect-oriented Programming 299 6.3.4 Subtype Matching in Around? Unsound! 299 6.3.5 Component-based Programming 301 6.4 Postscript BIBLIOGRAPHY viii LIST OF TABLES 2.1 Categorization of Examples from the Aspect] Programming Guide 28 2.2 Categorization of Examples from Kiselev's Text 30 4.1 Reach and Writable Reach for the Store, S, of Figure 4.24 235 ix LIST OF FIGURES 1.1 Point Class 7 1.2 Sample Client Code 8 1.3 RightMovingPoint Class 8 1.4 O neWay Mov i rig Aspect 9 2.1 FigureElement Example (in Java with JML annotations) 16 2.2 MoveLimiting Example (in AspectJ) 17 2.3 Syntax of Concern Maps 21 2.4 Example Concern Map 21 2.5 Example Spectator Aspect 24 2.6 Example of JML Specification Cases 35 2.7 Example JML Specification Showing Overlapping Specification Cases 36 2.8 Around Advice Specification in AspectJML 37 2.9 Example Specification for Around Advice with Multiple proceed Expressions 38 2.10 Specification Composition Graph Construction, Stage Go 42 2.11 Specification Composition Graph Construction, Partially Complete Stage Gi 43 2.12 Specification Composition Graph Construction, Stage Gi 44 2.13 Unique Path through Specification Composition Graph, «-converted 46 2.14 General Form of the Effective Specification 51 2.15 Effective Specification for the Path Shown in Figure 2.13 53 2.16 Simplified Version of Effective Specification from Figure 2.15 54 2.17 Effective Specification Derived from the Specification Composition Graph in Figure 2.12 54 3.1 Syntax of MiniMAOo 65 3.2 Operational Semantics of MiniMAOo 67 3.3 Auxiliary Functions for MiniMAOo 70 X 3.4 Subtyping in MiniMAOo 71 3.5 Sample MiniMAOo Program 72 3.6 Static Semantics of MiniMAOo 76 3.7 Syntax Extensions for MiniMAOi 90 3.8 Join Point Stack 92 3.9 Additional Expression Forms for the Operational Semantics of MiniMAOi 93 3.10 Changes to the Operational Semantics for MiniMAOi 95 3.11 Additional Subtyping Rule for MiniMAOi 96 3.12 Auxiliary Functions for MiniMAOi Operational Semantics 97 3.13 Boolean Algebra over Binding Terms 101 3.14 Pointcut Descriptor Matching for MiniMAOi 102 3.15 Comparison of Evaluation in MiniMAOo and MiniMAOi 105 3.16 Sample Program Showing Advice Binding 106 3.17 Sample Derivation of Pointcut Descriptor Matching 107 3.18 Sample Program Showing Advice Chaining 108 3.19 Sample Program Contrasting this vs. target Binding and call vs. execution Advice .... 110 3.20 Additions to the Static Semantics for MiniMAOi 113 3.21 Binding for Type Environments 115 3.22 Static Semantics of Pointcuts in MiniMAOi 116 3.23 Meta-variables Used in the Proof of Lemma 3.15 122 4.1 Schematic View of a Store in MiniMAOg 151 4.2 Syntax of MiniMAO^ 154 4.3 Fragment of a MiniMAOi Program Illustrating New Syntax 155 4.4 Syntax Extensions for the Operational Semantics of MiniMA02 160 4.5 Join Point Stack in MiniMAO^ 161 4.6 Example of Advice Table Construction 162 4.7 Evaluation Relation for the Operational Semantics of MiniMA02 164 4.8 Evaluation Relation for the Operational Semantics of MiniMA02 (Exceptional Rules) ..165 4.9 Auxiliary Functions for Operational Semantics of MiniMA02 167 4.10 More Auxiliary Functions for MiniMA02 Operational Semantics 168 4.11 Subtyping in MMMAO2 169 4.12 Pointcut Descriptor Matching for MiniMAOa 170 xi 4.13 Bindings in MiniMA02 171 4.14 Static Semantics of Declarations in MiniMA02 174 4.15 Auxiliary Functions for Static Semantics of MiniMA02 176 4.16 Auxiliary Typing Judgments for Declarations in MiniMA02 176 4.17 Static Semantics of Expressions in MiniMA02 179 4.18 Sample Expression Type Errors in MiniMAÛ2 180 4.19 Binding for Type Environments 182 4.20 Static Semantics of Pointcuts in MiniMAÛ2 183 4.21 Venn Diagram Illustrating Lemma 4.6 187 4.22 Setup and Common Meta-variable Bindings Used in the Proof of Lemma 4.14 200 4.23 Auxiliary Functions for the Meta-theory of MiniMA02 234 4.24 Schematic View of a Sample Store, S 235 4.25 Recursive Definition of the Locations Included in an Expression 236 5.1 Differences in Syntax of MiniMAOg vs.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages333 Page
-
File Size-