Papers
Topics
Authors
Recent
Search
2000 character limit reached

V-Star: Learning Visibly Pushdown Grammars from Program Inputs

Published 5 Apr 2024 in cs.PL and cs.FL | (2404.04201v1)

Abstract: Accurate description of program inputs remains a critical challenge in the field of programming languages. Active learning, as a well-established field, achieves exact learning for regular languages. We offer an innovative grammar inference tool, V-Star, based on the active learning of visibly pushdown automata. V-Star deduces nesting structures of program input languages from sample inputs, employing a novel inference mechanism based on nested patterns. This mechanism identifies token boundaries and converts languages such as XML documents into VPLs. We then adapted Angluin's L-Star, an exact learning algorithm, for VPA learning, which improves the precision of our tool. Our evaluation demonstrates that V-Star effectively and efficiently learns a variety of practical grammars, including S-Expressions, JSON, and XML, and outperforms other state-of-the-art tools.

Authors (2)
Definition Search Book Streamline Icon: https://streamlinehq.com
References (37)
  1. Benchmarking Combinations of Learning and Testing Algorithms for Automata Learning. Form. Asp. Comput. 36, 1, Article 3 (mar 2024), 37 pages. https://doi.org/10.1145/3605360
  2. Rajeev Alur. 2007. Marrying words and trees. In Proceedings of the Twenty-Sixth ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems (¡conf-loc¿, ¡city¿Beijing¡/city¿, ¡country¿China¡/country¿, ¡/conf-loc¿) (PODS ’07). Association for Computing Machinery, New York, NY, USA, 233–242. https://doi.org/10.1145/1265530.1265564
  3. Congruences for visibly pushdown languages. In Proceedings of the 32nd International Conference on Automata, Languages and Programming (Lisbon, Portugal) (ICALP’05). Springer-Verlag, Berlin, Heidelberg, 1102–1114. https://doi.org/10.1007/11523468_89
  4. Rajeev Alur and P. Madhusudan. 2004. Visibly pushdown languages. In Proceedings of the Thirty-Sixth Annual ACM Symposium on Theory of Computing (Chicago, IL, USA) (STOC ’04). Association for Computing Machinery, New York, NY, USA, 202–211. https://doi.org/10.1145/1007352.1007390
  5. Rajeev Alur and P. Madhusudan. 2009. Adding nesting structure to words. J. ACM 56, 3, Article 16 (may 2009), 43 pages. https://doi.org/10.1145/1516512.1516518
  6. Dana Angluin. 1987. Learning regular sets from queries and counterexamples. Inf. Comput. 75, 2 (nov 1987), 87–106. https://doi.org/10.1016/0890-5401(87)90052-6
  7. Fast Deterministic Black-box Context-free Grammar Inference. In 2024 IEEE/ACM 46th International Conference on Software Engineering (ICSE). IEEE Computer Society, Los Alamitos, CA, USA, 901–901. https://doi.ieeecomputersociety.org/
  8. Extracting Context-Free Grammars from Recurrent Neural Networks using Tree-Automata Learning and A* Search. In Proceedings of the Fifteenth International Conference on Grammatical Inference (Proceedings of Machine Learning Research, Vol. 153), Jane Chandlee, Rémi Eyraud, Jeff Heinz, Adam Jardine, and Menno van Zaanen (Eds.). PMLR, 113–129. https://proceedings.mlr.press/v153/barbot21a.html
  9. Synthesizing program input grammars. SIGPLAN Not. 52, 6 (jun 2017), 95–110. https://doi.org/10.1145/3140587.3062349
  10. “Synthesizing input grammars”: a replication study. In Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation (San Diego, CA, USA) (PLDI 2022). Association for Computing Machinery, New York, NY, USA, 260–268. https://doi.org/10.1145/3519939.3523716
  11. Swarat Chaudhuri and Rajeev Alur. 2007. Instrumenting C programs with nested word monitors. In Proceedings of the 14th International SPIN Conference on Model Checking Software (Berlin, Germany). Springer-Verlag, Berlin, Heidelberg, 279–283.
  12. T. S. Chow. 1978. Testing Software Design Modeled by Finite-State Machines. IEEE Trans. Softw. Eng. 4, 3 (may 1978), 178–187. https://doi.org/10.1109/TSE.1978.231496
  13. Frank Drewes and Johanna Högberg. 2007. Query Learning of Regular Tree Languages: How to Avoid Dead States. Theor. Comp. Sys. 40, 2 (feb 2007), 163–185. https://doi.org/10.1007/s00224-005-1233-3
  14. MAT learners for tree series: an abstract data type and two realizations. Acta Informatica 48, 3 (May 2011), 165–189. https://doi.org/10.1007/s00236-011-0135-x
  15. Test selection based on finite state models. IEEE Transactions on Software Engineering 17, 6 (1991), 591–603. https://doi.org/10.1109/32.87284
  16. Streaming tree automata. Inform. Process. Lett. 109, 1 (2008), 13–17. https://doi.org/10.1016/j.ipl.2008.08.002
  17. Secure programming via visibly pushdown safety games. In Proceedings of the 24th International Conference on Computer Aided Verification (Berkeley, CA) (CAV’12). Springer-Verlag, Berlin, Heidelberg, 581–598. https://doi.org/10.1007/978-3-642-31424-7_41
  18. Nested interpolants. SIGPLAN Not. 45, 1 (jan 2010), 471–482. https://doi.org/10.1145/1707801.1706353
  19. Falk Howar. 2012. Active learning of interface programs. Ph. D. Dissertation. https://doi.org/10.17877/DE290R-4817
  20. Angluin style finite state machine inference with non-optimal counterexamples. In Proceedings of the First International Workshop on Model Inference In Testing (Trento, Italy) (MIIT ’10). Association for Computing Machinery, New York, NY, USA, 11–19. https://doi.org/10.1145/1868044.1868046
  21. Malte Isberner. 2015. Foundations of active automata learning: an algorithmic perspective. https://api.semanticscholar.org/CorpusID:45690562
  22. A derivative-based parser generator for visibly Pushdown grammars. Proc. ACM Program. Lang. 5, OOPSLA, Article 151 (oct 2021), 24 pages. https://doi.org/10.1145/3485528
  23. A Derivative-based Parser Generator for Visibly Pushdown Grammars. ACM Trans. Program. Lang. Syst. 45, 2, Article 9 (may 2023), 68 pages. https://doi.org/10.1145/3591472
  24. Neil Kulkarni. 2023. Arvada. https://github.com/neil-kulkarni/arvada.
  25. Learning highly recursive input grammars. In Proceedings of the 36th IEEE/ACM International Conference on Automated Software Engineering (Melbourne, Australia) (ASE ’21). IEEE Press, 456–467. https://doi.org/10.1109/ASE51524.2021.9678879
  26. Minimization, learning, and conformance testing of boolean programs. In Proceedings of the 17th International Conference on Concurrency Theory (Bonn, Germany) (CONCUR’06). Springer-Verlag, Berlin, Heidelberg, 203–217. https://doi.org/10.1007/11817949_14
  27. Visibly pushdown automata for streaming XML. In Proceedings of the 16th International Conference on World Wide Web (Banff, Alberta, Canada) (WWW ’07). Association for Computing Machinery, New York, NY, USA, 1053–1062. https://doi.org/10.1145/1242572.1242714
  28. Oded Maler and Amir Pnueli. 1991. On the learnability of infinitary regular sets. In Proceedings of the Fourth Annual Workshop on Computational Learning Theory (Santa Cruz, California, USA) (COLT ’91). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 128–138.
  29. Jakub Michaliszyn and Jan Otop. 2022. Learning Deterministic Visibly Pushdown Automata Under Accessible Stack. In 47th International Symposium on Mathematical Foundations of Computer Science (MFCS 2022) (Leibniz International Proceedings in Informatics (LIPIcs), Vol. 241), Stefan Szeider, Robert Ganian, and Alexandra Silva (Eds.). Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl, Germany, 74:1–74:16. https://doi.org/10.4230/LIPIcs.MFCS.2022.74
  30. From regular expressions to nested words: unifying languages and query execution for relational and XML sequences. Proc. VLDB Endow. 3, 1–2 (sep 2010), 150–161. https://doi.org/10.14778/1920841.1920865
  31. High-performance complex event processing over XML streams. In Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data (Scottsdale, Arizona, USA) (SIGMOD ’12). Association for Computing Machinery, New York, NY, USA, 253–264. https://doi.org/10.1145/2213836.2213866
  32. Dong Ha Nguyen and M. Sudholt. 2006. VPA-Based Aspects: Better Support for AOP over Protocols. In Fourth IEEE International Conference on Software Engineering and Formal Methods (SEFM’06). 167–176. https://doi.org/10.1109/SEFM.2006.39
  33. LearnLib: a library for automata learning and experimentation. In Proceedings of the 10th International Workshop on Formal Methods for Industrial Critical Systems (Lisbon, Portugal) (FMICS ’05). Association for Computing Machinery, New York, NY, USA, 62–71. https://doi.org/10.1145/1081180.1081189
  34. R.L. Rivest and R.E. Schapire. 1993. Inference of Finite Automata Using Homing Sequences. Information and Computation 103, 2 (1993), 299–347. https://doi.org/10.1006/inco.1993.1021
  35. A. Thomo and S. Venkatesh. 2011. Rewriting of visibly pushdown languages for XML data integration. Theoretical Computer Science 412, 39 (2011), 5285–5297. https://doi.org/10.1016/j.tcs.2011.05.047
  36. M. P. Vasilevskii. 1973. Failure diagnosis of automata. Cybernetics 9, 4 (July 1973), 653–665. https://doi.org/10.1007/BF01068590
  37. REINAM: reinforcement learning for input-grammar inference. In Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (Tallinn, Estonia) (ESEC/FSE 2019). Association for Computing Machinery, New York, NY, USA, 488–498. https://doi.org/10.1145/3338906.3338958

Summary

No one has generated a summary of this paper yet.

Paper to Video (Beta)

No one has generated a video about this paper yet.

Whiteboard

No one has generated a whiteboard explanation for this paper yet.

Open Problems

We haven't generated a list of open problems mentioned in this paper yet.

Continue Learning

We haven't generated follow-up questions for this paper yet.

Collections

Sign up for free to add this paper to one or more collections.

Tweets

Sign up for free to view the 2 tweets with 0 likes about this paper.