Juggrnaut


Juggrnaut (Just Use Graph GRammars for Nicely Abstracting Unbounded sTructures) is an abstraction framework for Java Bytecode which allows to automatically derive abstract versions of pointer-manipulating operations. 

States of the JVM are modeled as hypergraphs, and both pointer operations and abstraction mappings are represented by hypergraph transformations. More concretely we employ hyperedge replacement grammars to specify data structures and their abstractions. The key idea is to use the replacement operations which are induced by the grammar rules in two directions. By a backward application of some rule, a subgraph of the heap can be condensed into a single nonterminal edge, thus obtaining an abstraction of the heap. By applying rules in forward direction, certain parts of the heap which have been abstracted before can be concretized again.

 



Related Source Code


GNF/IGNF Generator:

Command-line tool for generating (incremental) Greibach Normal Form for context-free string grammars (Diploma thesis, M. Bals).

 

 


Syntactic and Semantic Analysis of Hyperedge Replacement Grammars for Heap Abstraction (bachelor thesis).

 


Related Talks and Publications

2018
DOIHannah Arndt, Christina Jansen, Joost-Pieter Katoen, Christoph Matheja, Thomas Noll. Let this Graph be your Witness! An Attestor for Verifying Java Pointer Programs. Proc. CAV 2018, Part II, Volume 10982 of LNCS, pages 3–11, Springer, 2018.
2017
DownloadThomas Noll. Graph-Based Abstract Interpretation of Pointer Programs, Talk at NII Shonan Seminar on Analysis and Verification of Pointer Programs, Hayama, Japan, 2017.
Christina Jansen. The Attestor Tool - Graph-based Abstract Interpretation in Practice, Talk at NII Meeting, Shonan, Japan, 2017.
DOIChristina Jansen. Static Analysis of Pointer Programs – Linking Graph Grammars and Separation Logic. Phd Thesis at RWTH Aachen University, 2017.
Christina Jansen. Graph-based Abstract Interpretation for Pointer Programs, Talk at Twente, Netherlands, 2017.
DownloadThomas Noll. Graph-Based Static Analysis of Concurrent Pointer Programs, Talk at WIAI-Fakultätskolloquium, Universität Bamberg, Germany, 2017.
Daniel Cloerkes. A Cyclic Proof System for Graph Grammar Inclusion. Bachelor Thesis at RWTH Aachen University, 2017.
LinkHannah Arndt, Christina Jansen, Christoph Matheja, Thomas Noll. Heap Abstraction Beyond Context-Freeness. Technical report at arxiv number 1705.03754, 2017.
Christina Jansen. Graph-based Abstract Interpretation for Pointer Programs, Talk at Söllerhaus, Hirschegg, 2017.
DOIChristina Jansen, Jens Katelaan, Christoph Matheja, Thomas Noll, Florian Zuleger. Unified Reasoning about Robustness Properties of Symbolic-Heap Separation Logic. Proc. ESOP 2017, Volume 10201 of LNCS, pages 611–638, Springer, 2017.
LinkMarieke Huisman, Thomas Noll, Makoto Tatsuta. Analysis and Verification of Pointer Programs. Technical report at National Institute of Informatics number 2017-14, 2017.
2016
LinkChristina Jansen, Jens Katelaan, Christoph Matheja, Thomas Noll, Florian Zuleger. Unified Reasoning about Robustness Properties of Symbolic-Heap Separation Logic. Technical report at arXiv number 1610.07041, 2016.
2015
DownloadThomas Noll. Modular Analysis of Concurrent Pointer Programs Using Graph Grammars, Talk at Dagstuhl Seminar on Verification of Evolving Graph Structures, Wadern, Germany, 2015.
DOIJonathan Heinen, Christina Jansen, Joost-Pieter Katoen, Thomas Noll. Juggrnaut: Using Graph Grammars for Abstracting Unbounded Heap Structures. Formal Methods in System Design 47(2), pages 159–203, 2015.
Christoph Matheja. Tree-like Grammars and Separation Logic, Talk at KPS 2015, Pörtschach, Austria, 2015.
LinkChristoph Welzel. Thread-Modular Analysis of Heap-Manipulating Programs. Bachelor Thesis at RWTH Aachen University, 2015.
LinkChristoph Matheja, Christina Jansen, Thomas Noll. Tree-Like Grammars and Separation Logic. Technical report at RWTH Aachen University number AIB-2015-12, 2015.
Christina Jansen. Generating Abstract Graph-Based Procedure Summaries for Pointer Programs. Proceedings of the Young Researchers’ Conference “Frontiers of Formal Methods”, Volume of Aachener Informatik Berichte, pages 145-150, RWTH Aachen, 2015.
Christina Jansen. Generating Abstract Graph-Based Procedure Summaries for Pointer Programs, Talk at FFM 2015, 2015.
DOIJonathan Heinen, Christina Jansen, Joost-Pieter Katoen, Thomas Noll. Verifying Pointer Programs using Graph Grammars. Science of Computer Programming 97, pages 157–162, 2015.
DOIChristoph Matheja, Christina Jansen, Thomas Noll. Tree-Like Grammars and Separation Logic. Programming Languages and Systems (APLAS 2015), Volume 9458 of LNCS, pages 90–108, Springer, 2015.
2014
LinkThomas Noll. Generating Abstract Graph-Based Procedure Summaries for Pointer Programs, MOVES Seminar Talk at RWTH Aachen University, Germany, 2014.
DownloadChristoph Matheja. Reconciling Decidability of Separation Logic Entailment and Graph Grammar Language Inclusion. Master Thesis at RWTH Aachen University, 2014.
Christina Jansen. Generating Inductive Predicates for Symbolic Execution of Pointer-Manipulating Programs, Talk at 7th Int. Conference on Graph Transformation (ICGT 2014), 2014.
LinkChristina Jansen, Florian Göbe, Thomas Noll. Generating Inductive Predicates for Symbolic Execution of Pointer-Manipulating Programs. Technical report at RWTH Aachen University number AIB-2014-08, 2014.
DOIChristina Jansen, Thomas Noll. Generating Abstract Graph-Based Procedure Summaries for Pointer Programs. Proc. 7th Int. Conf. on Graph Transformation (ICGT 2014), Volume 8571 of LNCS, pages 49–64, Springer, 2014.
DOIChristina Jansen, Florian Göbe, Thomas Noll. Generating Inductive Predicates for Symbolic Execution of Pointer-Manipulating Programs. Proc. 7th Int. Conf. on Graph Transformation (ICGT 2014), Volume 8571 of LNCS, pages 65–80, Springer, 2014.
2013
Yannis Samiro Discher. Graph-Based Interprocedural Analysis of Heap-Manipulating Programs. Bachelor Thesis at RWTH Aachen University, 2013.
DownloadChristina Jansen. A Graph-Based Approach to Heap Abstraction, Seminar Talk at AlgoSyn Seminar, 2013.
DownloadChristina Jansen. Juggrnaut - A Graph-Based Approach to Heap Abstraction, Talk at Queen Mary University London, 2013.
LinkMarkus Bals, Christina Jansen, Thomas Noll. Incremental Construction of Greibach Normal Form for Context-Free Grammars. Proc. Int. Symp. on Theoretical Aspects of Software Engineering (TASE 2013), pages 165–168, IEEE Computer Society, 2013.
2012
DownloadFlorian Göbe. Transformation von Separation Logic Prädikaten durch Hyperkantenersetzungsgrammatiken. at RWTH Aachen, 2012.
DownloadMax Görtz. Deciding MSO over Languages of Hypergraphs. Bachelorthesis at RWTH Aachen University, 2012.
DownloadAlexander Dominik Weinert. Inferring Heap Abstraction Grammars. Bachelor Thesis at RWTH Aachen University, 2012.
DownloadTobias Hoffmann. Model Checking Quantifizierter Linearer Temporaler Logik über Pointerprogrammen. Diplomarbeit at RWTH Aachen University, 2012.
Jonathan Heinen. Analysis and Verification of Heap-Manipulating Programs, Talk at D-CON 2012, Kaiserslautern, 2012.
Christina Jansen. Verifying Pointer Programs Using Hyperedge Replacement Grammars, Talk at ULB Bruxelles, 2012.
Jonathan Heinen. Juggrnaut: The Analysis of Object Oriented Programs, Talk at mac, Uni Bamberg, 2012.
DownloadJonathan Heinen, Christina Jansen, Henrik Barthels. Juggrnaut - An Abstract JVM. 2nd Int. Conf. on Formal Verification of Object-Oriented Software (FoVeOOS 2011), Volume 7421 of LNCS, pages 142–159, Springer, 2012.
2011
Jonathan Heinen. Juggrnaut - An Abstract JVM, Talk at the 2nd International Conference on Formal Verification of Object-Oriented Software (FoVeOOS 2011) Turin, Italy, 2011.
DownloadJonathan Heinen, Christina Jansen. Juggrnaut - An Abstract JVM. Formal Verification of Object-Oriented Software. Papers presented at the 2nd International Conference, October 5-7, 2011, Turin, Italy, Volume 2011 of Karlsruhe Reports in Informatics, pages 226–243, Karlsruhe, 2011.
DownloadJonathan Heinen, Christina Jansen. Juggrnaut - An Abstract JVM. Technical report at RWTH Aachen University, Germany number AIB 2011-21, 2011.
DownloadHenrik Barthels. Automata-Based Detection of Hypergraph Embeddings. Bachelorarbeit at RWTH Aachen University , 2011.
Christina Jansen. Heap Abstraction by means of Hyperedge Replacement Grammars, Talk at YR-CONCUR 2011, 2011.
DownloadGereon Kremer. Syntaktische und semantische Analyse von Hyperkantenersetzungsgrammatiken zur Heapabstraktion. Bachelors Thesis at RWTH Aachen University, 2011.
DownloadChristina Jansen. Heap Abstraction by means of Hyperedge Replacement Grammars, Talk at Summer School Marktoberdorf 2011, 2011.
DownloadMarkus Bals. Incremental Greibach Normal Form. Diploma Thesis at RWTH Aachen University, 2011.
DownloadChristina Jansen, Jonathan Heinen, Joost-Pieter Katoen, Thomas Noll. A Local Greibach Normal Form for Hyperedge Replacement Grammars. 5th Int. Conf. on Language and Automata Theory and Applications (LATA 2011), Volume 6638 of LNCS, pages 323–335, Springer-Verlag, 2011.
Christina Jansen. A Local Greibach Normal Form for Hyperedge Replacement Grammars, Talk at LATA 2011, 2011.
Jonathan Heinen. Verification of Object Oriented Programs, Talk at Universität Duisburg-Essen, 2011.
Jonathan Heinen. Verificación de Programas Orientados a Objetos, Talk at Universidad Nacional de Colombia, 2011.
Jonathan Heinen. Verifying Pointer Programs Using Graph Grammars (Theory and Practice), Talk at D-CON 2011, Münster, 2011.
DownloadChristina Jansen, Jonathan Heinen, Joost-Pieter Katoen, Thomas Noll. A Local Greibach Normal Form for Hyperedge Replacement Grammars. Technical report at RWTH Aachen University, Germany number AIB 2011-04, 2011.
2010
Joost-Pieter Katoen. Verifying Pointer Programs Using Graph Grammars, Talk at LIAFA Workshop on Automata and Logic for Data Manipulating Programs, 2010.
Johanna Nellen. Konfluenzanalyse und Vervollständigung von Graphersetzungssystemen. Diplomarbeit at RWTH Aachen University, 2010.
DownloadChristina Jansen. Entwicklung eines Inferenzalgorithmus für Hyperkantenersetzungsgrammatiken. Diplomarbeit at RWTH Aachen University, 2010.
LinkJonathan Heinen, Thomas Noll, Stefan Rieger. Juggrnaut: Graph Grammar Abstraction for Unbounded Heap Structures. Proc. 3rd Int. Workshop on Harnessing Theories for Tool Support in Software (TTSS 2009), Volume 266 of ENTCS, pages 93–107, Elsevier, 2010.
2009
Stefan Rieger. Verification of Pointer Programs. Phd Thesis at RWTH Aachen University, 2009.
Christina Jansen. Generierung von Hyperkantenersetzungsgrammatiken zur Heapabstraktion, Talk at KPS 2009, 2009.
Ralf Grossmann. Heapabstraktion durch partielle Graphreduktion mittels Graphgrammatiken . Diplomarbeit at Faculty of Mathematics, Computer Sciences and Natural Sciences,RWTH Aachen University , 2009.
Jonathan Heinen. Juggrnaut: Graph Grammar Abstraction for Unbounded Heap Structures, Talk at TTSS 2009, 2009.
2008
LinkStefan Rieger, Thomas Noll. Abstracting Complex Data Structures by Hyperedge Replacement. 4th Int. Conference on Graph Transformations (ICGT 2008), Volume 5214 of LNCS, pages 69–83, Springer, 2008.
2007
DownloadJonathan Heinen. Graph Grammar Abstraction for Complex Dynamic Data Structures, Talk at KPS 2007, Timmendorfer Strand, 2007.