TY - JOUR
T1 - V-Star
T2 - Learning Visibly Pushdown Grammars from Program Inputs
AU - Jia, Xiaodong
AU - Tan, Gang
N1 - Publisher Copyright:
© 2024 Owner/Author.
PY - 2024/6/20
Y1 - 2024/6/20
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=85196771834&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85196771834&partnerID=8YFLogxK
U2 - 10.1145/3656458
DO - 10.1145/3656458
M3 - Article
AN - SCOPUS:85196771834
SN - 2475-1421
VL - 8
JO - Proceedings of the ACM on Programming Languages
JF - Proceedings of the ACM on Programming Languages
M1 - 228
ER -