On the Incremental Evaluation of Higher-Order Attribute Grammars

Compilers, amongst other programs, often work with data that (slowly) changes over time. When the changes between subsequent runs of the compiler are small, one would hope the compiler to incrementally update its results, resulting in much lower running time. However, the manual construction of an incremental compiler is hard and error prone and therefore usually not an option. Attribute grammars provide an attractive way of constructing compilers, as they are compositional in nature and allow for aspect oriented programming. This thesis describes the automatic generation of incremental attribute grammar evaluators, with the purpose of (semi-)automatically generating an incremental compiler from the regular attribute grammar definition. In particular this approach supports incremental evaluation of higher order attributes, a well known extension to the classical attribute grammars that is used in many ways in compiler construction, for example to model different compiler phases.

[1]  Tom Staijen,et al.  Graph-based Specification and Verification for Aspect-Oriented Languages , 2010 .

[2]  Hendrik Michaël van der Bijl,et al.  On changing models in model-based testing , 2011 .

[3]  Adrianus Johannus Paulus Jeckmans Cryptographically-Enhanced Privacy for Recommender Systems , 2014 .

[4]  S. Doaitse Swierstra,et al.  Incremental Evaluation of Higher Order Attributes , 2015, PEPM.

[5]  Fides Aarts,et al.  Tomte : bridging the gap between active learning and real-world systems , 2014 .

[6]  Ljp Luc Engelen From napkin sketches to reliable software , 2012 .

[7]  Mari Antonius Cornelis Dekker,et al.  Flexible Access Control for Dynamic Collaborative Environments , 2009 .

[8]  Mohammad Mahdi Jaghoori,et al.  Time At Your Service: Schedulability Analysis of Real-Time and Distributed Services , 2010 .

[9]  Z Zvezdan Protic,et al.  Configuration management for models : generic methods for model comparison and model co-evolution , 2011 .

[10]  C.P.T. deGouw,et al.  Combining Monitoring with Run-Time Assertion Checking , 2013 .

[11]  R. Bakhshi Gossiping Models : Formal Analysis of Epidemic Protocols , 2011 .

[12]  Hossein Rahmani,et al.  Analysis of protein-protein interaction networks by means of annotated graph mining algorithms , 2012 .

[13]  Tim K. Cocx,et al.  Metrics and visualisation for crime analysis and genomics , 2005 .

[14]  Joost Engelfriet,et al.  Simple Multi-Visit Attribute Grammars , 1982, J. Comput. Syst. Sci..

[15]  Wouter Meulemans,et al.  Similarity measures and algorithms for cartographic schematization , 2014 .

[16]  Yanja Dajsuren,et al.  On the design of an architecture framework and quality evaluation for automotive software systems , 2015 .

[17]  C. J. Boogerd,et al.  Focusing Automatic Code Inspections , 2010 .

[18]  J. Kwisthout,et al.  The Computational Complexity of Probabilistic Networks , 2009 .

[19]  Martin R. Neuhäußer,et al.  Model checking nondeterministic and randomly timed systems , 2010 .

[20]  José Proença,et al.  Synchronous Coordination of Distributed Components , 2011 .

[21]  K. Tsirogiannis,et al.  Analysis of flow and visibility on triangulated terrains , 2011 .

[22]  S. Doaitse Swierstra,et al.  The architecture of the Utrecht Haskell compiler , 2009, Haskell.

[23]  Ali Mesbah,et al.  Analysis and Testing of Ajax-based Single-page Web Applications , 2009 .

[24]  Rjm Rolf Theunissen Supervisory control in health care systems , 2015 .

[25]  S. Doaitse Swierstra,et al.  Lazy stateless incremental evaluation machinery for attribute grammars , 2014, PEPM '14.

[26]  Lennart C. L. Kats,et al.  Building Blocks for Language Workbenches , 2011 .

[27]  Roel Verdult,et al.  The (in)security of proprietary cryptography , 2015 .

[28]  Andres Löh,et al.  Type-safe diff for families of datatypes , 2009, WGP '09.

[29]  Tri Minh Ngo Qualitative and quantitative information flow analysis for multi-thread programs , 2014 .

[30]  Kab Kevin Verbeek Algorithms for cartographic visualization , 2012 .

[31]  Christian Krause,et al.  Reconfigurable Component Connectors , 2011 .

[32]  Cynthia Kop Higher Order Termination: Automatable Techniques for Proving Termination of Higher-Order Term Rewriting Systems , 2012 .

[33]  Karina R. Olmos Joffré Strategies for Context Sensitive Program Transformation , 2009 .

[34]  Elisa Costante,et al.  Privacy throughout the data cycle , 2015 .

[35]  Atze Dijkstra,et al.  Linearly Ordered Attribute Grammars: with Automatic Augmenting Dependency Selection , 2015, PEPM.

[36]  Randal E. Bryant,et al.  Boolean satisfiability with transitivity constraints , 2000, TOCL.

[37]  R.S.S. O'Connor,et al.  Incompleteness & completeness : formalizing logic and analysis in type theory , 2005 .

[38]  Tim K. Cocx,et al.  Algorithmic tools for data-oriented law enforcement , 2009 .

[39]  de A. Bruin,et al.  Service-oriented discovery of knowledge : foundations, implementations and applications , 2010 .

[40]  Eduardo Zambon,et al.  Abstract Graph Transformation - Theory and Practice , 2013 .

[41]  J. van den Berg,et al.  Reasoning about Java programs in PVS using JML , 2009 .

[42]  Marcel Verhoef,et al.  Modeling and validating distributed embedded real-time control systems , 2009 .

[43]  Cor-Paul Bezemer,et al.  Performance Optimization of Multi-Tenant Software Systems , 2014 .

[44]  Ronald Middelkoop,et al.  Capturing and exploiting abstract views of states in OO verification , 2011 .

[45]  Michael Codish,et al.  Pairwise Cardinality Networks , 2010, LPAR.

[46]  Mjm Marcel Roeloffzen Kinetic data structures in the black-box model , 2013 .

[47]  Damiano Bolzoni,et al.  Revisiting Anomaly-based Network Intrusion Detection Systems , 2009 .

[48]  Dina Hadžiosmanović,et al.  The process matters: cyber security in industrial control systems , 2014 .

[49]  Uwe Kastens,et al.  Improvements of an incremental evaluation algorithm for ordered attribute grammars , 1988, SIGP.

[50]  Frank W. Takes Algorithms for analyzing and mining real-world graphs , 2014 .

[51]  Bas Basten,et al.  Ambiguity Detection for Programming Language Grammars , 2011 .

[52]  S. Doaitse Swierstra,et al.  Efficient Incremental Evaluation of Higher order Attribute Grammars , 1991, PLILP.

[53]  Saeed Sedghi,et al.  Towards Provably Secure Efficiently Searchable Encryption , 2012 .

[54]  Yanjing Wang,et al.  Epistemic Modelling and Protocol Dynamics , 2010 .

[55]  Thomas Bäck,et al.  Mixed-integer evolution strategies for parameter optimization and their applications to medical image analysis , 2005 .

[56]  M. Sheeran,et al.  SAT-solving in practice , 2008, 2008 9th International Workshop on Discrete Event Systems.

[57]  Seyyed Hamed Hashemi,et al.  Studies on verification of wireless sensor networks and abstraction learning for system inference , 2008 .

[58]  D. Costa Formal models for component connectors , 2010 .

[59]  Joeri de Ruiter,et al.  Lessons learned in the analysis of the EMV and TLS security protocols , 2015 .

[60]  J. K. Berendsen,et al.  Abstraction, prices and probability in model checking timed automata , 2010 .

[61]  M. D. Berg,et al.  Optimal Geometric Data Structures , 2007 .

[62]  W. Kuijper Compositional Synthesis of Safety Controllers , 2012 .

[63]  Klaus Ostermann,et al.  A theory of changes for higher-order languages: incrementalizing λ-calculi by static differentiation , 2013, PLDI.

[64]  H. Hansen Coalgebraic Modelling : Applications in Automata theory and Modal logic , 2009 .

[65]  Jja Jeroen Keiren,et al.  Advanced reduction techniques for model checking , 2013 .

[66]  Johan Jeuring,et al.  A lightweight approach to datatype-generic rewriting , 2008, WGP '08.

[67]  Anja Guzzi,et al.  Supporting Developers' Teamwork from within the IDE , 2015 .

[68]  Werner Heijstek,et al.  Architecture design in global and model-centric software development , 2012 .

[69]  Michiel Helvensteijn,et al.  Abstract delta modeling : software product lines and beyond , 2014 .

[70]  Joost Winter,et al.  Coalgebraic Characterizations of Automata-Theoretic Classes , 2014 .

[71]  João Saraiva,et al.  Functional Incremental Attribute Evaluation , 2000, CC.

[72]  Young-Joo Moon,et al.  Stochastic models for quality of service of component connectors , 2011 .

[73]  A. Rodriguez Yakushev,et al.  Towards Getting Generic Programming Ready for Prime Time , 2009 .

[74]  Johan Jeuring,et al.  Generic Views on Data Types , 2006, MPC.

[75]  Alfons Laarman,et al.  Scalable multi-core model checking , 2014 .

[76]  S. Doaitse Swierstra,et al.  Exploiting Attribute Grammars to Achieve Automatic Tupling , 2014 .

[77]  Hugo Jonker,et al.  Security matters : privacy in voting and fairness in digital exchange , 2009 .

[78]  S. Doaitse Swierstra,et al.  Higher order attribute grammars , 1989, PLDI '89.

[79]  D. E. Nadales Agut,et al.  A Compositional Interchange Format for Hybrid Systems: Design and Implementation , 2012 .

[80]  Marijn Paul Schraagen,et al.  Aspects of record linkage , 2014 .

[81]  S. Doaitse Swierstra,et al.  The Kennedy-Warren Algorithm Revisited: Ordering Attribute Grammars , 2012, PADL.

[82]  M. J. de Mol,et al.  Reasoning about functional programs : Sparkle, a proof assistant for Clean , 2009 .

[83]  S. Doaitse Swierstra,et al.  Dependently Typed Attribute Grammars , 2010, IFL.

[84]  Ken Kennedy,et al.  Automatic generation of efficient evaluators for attribute grammars , 1976, POPL.

[85]  B. Lijnse,et al.  TOP to the rescue. Task-oriented programming for incident response applications , 2005 .

[86]  van Mj Muck Weerdenburg,et al.  Efficient rewriting techniques , 2009 .

[87]  Sebastiaan Gijsbert Marinus Cornelissen,et al.  Evaluating Dynamic Analysis Techniques for Program Comprehension , 2009 .

[88]  L. Lensink,et al.  Applying formal methods in software development , 2013 .

[89]  Taolue Chen Clocks, Dice and Processes , 2009 .

[90]  Gheorghe Paun Spiking Neural P Systems: A Tutorial , 2007, Bull. EATCS.

[91]  Ralf Hinze,et al.  Type-indexed data types , 2004, Sci. Comput. Program..

[92]  J. van den Bos,et al.  Gathering evidence: Model-driven software engineering in automated digital forensics , 2014 .

[93]  B. J. Arnoldus,et al.  An illumination of the template enigma : software code generation with templates , 2011 .

[94]  John Businge,et al.  Co-evolution of the Eclipse SDK Framework and Its Third-Party Plug-Ins , 2013, 2013 17th European Conference on Software Maintenance and Reengineering.

[95]  Emmanuele Zambon,et al.  Towards optimal IT availability planning: methods and tools , 2011 .

[96]  Tim Teitelbaum,et al.  Higher-order attribute grammars and editing environments , 1990, PLDI '90.

[97]  A. Morali,et al.  IT architecture-based confidentiality risk assessment in networks of organizations , 2011 .

[98]  S. Georgievska Probability and Hiding in Concurrent Processes ( thesis abstract ) , 2011 .

[99]  J. Endrullis Termination and Productivity , 2010 .

[100]  Lionel Mamane,et al.  Interactive mathematical documents: creation and presentation , 2004 .

[101]  Michael Hicks,et al.  Adapton: composable, demand-driven incremental computation , 2014, PLDI.

[102]  Sander Vermolen,et al.  Software Language Evolution , 2008, 2008 15th Working Conference on Reverse Engineering.

[103]  Koen Claessen,et al.  Linearly Ordered Attribute Grammar Scheduling Using SAT-Solving , 2015, TACAS.

[104]  Mohammed G. Khatib MEMS-Based Storage Devices : Integration in Energy-Constrained Mobile Systems , 2009 .

[105]  Lacramioara Astefanoaei,et al.  An executable theory of multi-agent systems refinement , 2011 .

[106]  van Mpwj Michiel Osch Automated model-based testing of hybrid systems , 2009 .

[107]  T. Forshaw Everything you always wanted to know , 1977 .

[108]  Minh Tri Ngo,et al.  Qualitative and Quantitative Information Flow Analysis for Multi-threaded Programs , 2014 .

[109]  Gerhard de Koning Gans,et al.  Outsmarting smart cards , 2013 .

[110]  Koen Claessen,et al.  Generating constrained random data with uniform distribution , 2014, Journal of Functional Programming.

[111]  José Pedro Magalhães,et al.  Generic representations of tree transformations , 2013, WGP '13.

[112]  van der,et al.  Domain specific languages and their type systems , 2014 .

[113]  T. V. Bui,et al.  A software architecture for body area sensor networks : flexibility and trustworthiness , 2015 .

[114]  Johan Jeuring,et al.  Generic selections of subexpressions , 2010, WGP '10.

[115]  Simon L. Peyton Jones,et al.  Lazy functional state threads , 1994, PLDI '94.

[116]  Pim Vullers,et al.  Efficient implementations of attribute-based credentials on smart cards , 2014 .

[117]  Mark Timmer,et al.  Efficient modelling, generation and analysis of Markov automata , 2013 .

[118]  Bn Bogdan Vasilescu Social aspects of collaboration in online software communities , 2014 .

[119]  Tiago Espinha,et al.  Web Service Growing Pains: Understanding Services and Their Clients , 2015 .

[120]  S Sjoerd Cranen,et al.  Getting the point : obtaining and understanding fixpoints in model checking , 2015 .

[121]  Arie Middelkoop,et al.  Functional Instrumentation of ActionScript Programs with Asil , 2011, IFL.

[122]  Miguel E. Andrés,et al.  Quantitative Analysis of Information Leakage in Probabilistic and Nondeterministic Systems , 2011, ArXiv.

[123]  Zef Hemel Methods and Techniques for the Design and Implementation of Domain-Specific Languages , 2012 .

[124]  Thomas W. Reps,et al.  The synthesizer generator , 1984, SDE 1.

[125]  Peter Dybjer,et al.  Dependent Types at Work , 2009, LerNet ALFA Summer School.

[126]  N Neda Noroozi,et al.  Improving input-output conformance testing theories , 2014 .

[127]  Axel Belinfante,et al.  JTorX: exploring model-based testing , 2014 .

[128]  Thomas W. Reps,et al.  Incremental evaluation for attribute grammars with application to syntax-directed editors , 1981, POPL '81.

[129]  M. S. Greiler,et al.  Test Suite Comprehension for Modular and Dynamic Systems , 2013 .

[130]  S. D. Swierstra,et al.  Using attribute grammars to derive efficient functional programs , 1986 .

[131]  Gergely Alpár,et al.  Attribute-based identity management : [bridging the cryptographic design of ABCs with the real world] , 2015 .

[132]  Johan Jeuring,et al.  Generic programming with fixed points for mutually recursive datatypes , 2009, ICFP.

[133]  João Saraiva,et al.  Designing and Implementing Combinator Languages , 1998, Advanced Functional Programming.

[134]  Scw Bas Ploeger,et al.  Improved verification methods for concurrent systems , 2009 .

[135]  Daan Leijen,et al.  Helium, for learning Haskell , 2003, Haskell '03.

[136]  Hasan Sözer,et al.  Architecting Fault-Tolerant Software Systems , 2009 .

[137]  Gang Chen,et al.  Guarded recursive datatype constructors , 2003, POPL '03.

[138]  Dhp Dirk Gerrits Pushing and pulling : computing push plans for disk-shaped robots, and dynamic labelings for moving points , 2013 .

[139]  Paul Klint,et al.  ATerms for manipulation and exchange of structured data: It's all about sharing , 2007, Inf. Softw. Technol..

[140]  Andres Löh,et al.  Generic storage in Haskell , 2010, WGP '10.

[141]  James Cheney,et al.  First-Class Phantom Types , 2003 .

[142]  Carst Tankink Documentation and formal mathematics : web technology meets theorem proving , 2013 .

[143]  Arthur I. Baars,et al.  Embedded Compilers , 2009 .

[144]  Stephanie Kemper,et al.  Modelling and analysis of real-time coordination patterns , 2011 .

[145]  Adriaan Middelkoop,et al.  Inference of Program Properties with Attribute Grammars, Revisited , 2012 .

[146]  Sander van der Burg,et al.  A Reference Architecture for Distributed Software Deployment , 2013 .

[147]  Trajce Dimkov,et al.  Alignment of organizational security policies: Theory and Practice , 2012 .

[148]  M Muhammad Atif,et al.  Formal modeling and verification of distributed failure detectors , 2011 .

[149]  Stefan Dietzel,et al.  Resilient in-network aggregation for vehicular networks , 2015 .

[150]  Georgeta Igna,et al.  Performance analysis of real-time task systems using timed automata , 2013 .

[151]  van den,et al.  Composition and synchronization of real-time components upon one processor , 2013 .

[152]  van Pja Paul Tilburg From computability to executability : a process-theoretic view on automata theory , 2011 .

[153]  A. J. van der Ploeg,et al.  Efficient abstractions for visualization and interaction , 2015 .

[154]  Fpm Frank Stappers Bridging formal models : an engineering perspective , 2012 .

[155]  van Mf Marcel Amstel,et al.  Assessing and improving the quality of model transformations , 2012 .

[156]  Marcin Czenko,et al.  TuLiP : reshaping trust management , 2009 .

[157]  Somayeh Malakuti Khah Olun Abadi Event composition model: achieving naturalness in runtime enforcement , 2011 .

[158]  Umut A. Acar,et al.  Refinement Types for Incremental Computational Complexity , 2015, ESOP.

[159]  Farhad Arbab,et al.  Model Checking of Component Connectors , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[160]  Görel Hedin,et al.  Automated Selective Caching for Reference Attribute Grammars , 2010, SLE.

[161]  Tingting Han,et al.  Diagnosis, Synthesis and Analysis of Probabilistic Models , 2009, Ausgezeichnete Informatikdissertationen.

[162]  Jan van Leeuwen,et al.  Maintenance of Transitive Closures and Transitive Reductions of Graphs , 1987, WG.