to Grammarware
- Dr. Vadim Zaytsev
From Compilers to Grammarware Dr. Vadim Zaytsev Introduction - - PowerPoint PPT Presentation
From Compilers to Grammarware Dr. Vadim Zaytsev Introduction Compilers Grammarware T ransformation Maturity Consistency Understanding T esting Conclusion Introduction Vadim Zaytsev MSc in appl.math (2003) & telematics
Introduction Compilers Grammarware T ransformation Consistency Maturity Understanding T esting Conclusion
Klint, Lämmel, Verhoef, T
Declarative Multi-Purpose Language Definition Syntax Definition Name Binding Type Constraints Dynamic Semantics Transform
Visser,
Introduction Compilers Grammarware T ransformation Consistency Maturity Understanding T esting Conclusion
Lämmel, Zaytsev, Recovering Grammar Relationships for the
ISO/IEC 9126.
Paulk, Weber, Curtis, Chrissis, Capability Maturity Model for Software
+metadata
http://slebok.github.io/zoo
Zaytsev, Grammar Maturity Model Zaytsev, Grammar Zoo: A Corpus of Experimental Grammarware
expr : …; atom : ID | INT | '(' expr ')'; expr : …; atom : ID; atom : INT; atom : expr; expr : …; expr : ID; expr : INT; expr : expr; expr : …; expr : ID; expr : INT; expr : …; atom : ID | INT | expr;
abstractize vertical unite abridge
Lämmel, Zaytsev, An Introduction to Grammar Convergence, IFM’
T s
Zaytsev, Guided Grammar Convergence,
pmaster = p(ε, expr, expr · operator · expr) F pantlr = p(ε, binary, s(l, atom) · ∗(s(o, ops) · s(r, atom))) F pdcg = p(binary, expr, atom · ∗(ops · atom)) pemf = p(ε, Binary, s(ops, Ops) · s(left, Expr) · s(right, Expr)) pjaxb = p(ε, Binary, s(Ops, Ops) · s(Left, Expr) · s(Right, Expr)) pom = p(ε, Binary, s(ops, Ops) · s(left, Expr) · s(right, Expr)) F ppython = p(ε, binary, atom · ∗(operators · atom)) padt = p(ε, FLExpr, s(binary, s(e1, FLExpr) · s(op, FLOp) · s(e2, FLExpr))) prascal = p(binary, Expr, s(lexpr, Expr) · s(op, Ops) · s(rexpr, Expr)) psdf = p(binary, Expr, Expr · Ops · Expr) ptxl = p(ε, expression, expression · op · expression) pxsd = p(ε, Binary, s(ops, Ops) · s(left, Expr) · s(right, Expr)) Zaytsev, Guided Grammar Convergence,
Zaytsev, Pending Evolution of Grammars Zaytsev, Negotiated Grammar Evolution
rename(expr,Expr)
no expr! rename(exp,Exp)
Zaytsev, Negotiated Grammar Evolution
grouped tokens typed tokens slices/ tokens raw string visual diagram graph model vector drawing raster picture abstract model concrete model parse graph parse forest
Zaytsev, Bagge, Parsing in a Broad Sense, MoDELS'
Introduction Compilers Grammarware T ransformation Consistency Maturity Understanding T esting Conclusion
Fischer, Lämmel, Zaytsev, Comparison of CFGs Based on … T est Data
G G’ P P’
250 500 750 1,000 1,250 TC PC NC BC CDBC TC PC NC BC CDBC TC PC NC BC CDBC TC PC NC BC CDBC TC PC NC BC CDBC Java (Habelitz) Java (Parr) Java (Stahl) Java (Studman) TESCOL (00001)
Fischer, Lämmel, Zaytsev, Comparison of CFGs Based on … T est Data
Butrus, Zaytsev, Grammar-based T esting Made Easy with Mutations
Fischer, Lämmel, Zaytsev, Comparison of CFGs Based on … T est Data
Fischer, Lämmel, Zaytsev, Comparison of CFGs Based on … T est Data
G G’ P P’
McKeeman, Differential T esting for Software
The First Computer Bug Photo #
processes languages
deal with bugs
Stevenson, Cordy, A Survey of Grammatical Inference in Software Engineering Roș
1 1 1 1 R 1 6 2 3 4 5 7 8 9
APTA state 0 (before any merge)
T aba, Khomh, Zou, Hassan, Nagappan, Predicting Bugs Using Antipatterns, ICSM 2013 Sajnani, Saini, Lopes, A Comparative Study of Bug Patterns in Java, SCAM 2014 T rubiani, Di Marco, Cortellessa, Mani, Petriu, Exploring Synergies…
analysis
analysis
structure
analysis
sentences
parsing
parsing
analysis
relaxation
grammars
repair
error recovery
parsing
Zaytsev, Formal Foundations for Semi-parsing, CSMR-WCRE’
Grammarware is more than just compilers Borrow methods from other domains Automate whenever possible Compare & combine Advance taxonomies & formalisms Bet on robust/tolerant methods
Introduction Compilers Grammarware T ransformation Consistency Maturity Understanding T esting Conclusion