Recovery, Convergence and Documentation
- f Languages
Doctoral defence of
- Drs. ir. Vadim V. Zaytsev
Recovery, Convergence and Documentation of Languages Doctoral - - PowerPoint PPT Presentation
Recovery, Convergence and Documentation of Languages Doctoral defence of Drs. ir. Vadim V. Zaytsev Acknowledgements ? Outline Recovery, Convergence and Documentation of Languages bgf (115) abstract (78) approach (54) argument
convergence (278) nonterminal (291) production (283) transformation (334) used (275)
case (201) definition (232) example (236) expr (230) expression (216) section (241) syntax (202)
chapter (147) dierent (152) extraction (143)
standard (150) xbgf (149)
bgf (115) defined (126) document (130) list (116) name (106) parsing (108) programming (118) recovery (128) specification (110) step (117) structure (103) study (109) terminal (111) work (110)
abstract (78) code (93) engineering (97) form (73) formal (76) format (73) generated (82) given (88) input (73) java (84) ldf (76) manual (80) model (87)
parser (77) possible (73) process (77) result (79) schema (75) semantics (73) software (84) source (78) str (97) symbol (89) version (87) xml (84)
approach (54) argument (52) artefacts (62) automated (59) bar (61) binary (60) bnf (64) change (53) concrete (52) contains (69) correction (63) corresponding (54) data (61) detail (66) existing (71) foo (53) grammarware (54) infrastructure (55) instance (62) int (64) iso (69) jls (58) needed (62) number (62)
presented (59) refactoring (67) reference (57) replace (52) research (56) rules (53) scope (55) sdf (58) simple (58) subsection (52) suite (54) table (72) thesis (62) tools (56) type (59)
import types.*; import org.antlr.runtime.*; import java.io.*; public class TestEvaluator { public static void main(String[] args) throws Exception { ANTLRFileStream input = new ANTLRFileStream(args[0]); FLLexer lexer = new FLLexer(input); CommonTokenStream tokens = new CommonTokenStream(lexer); FLParser parser = new FLParser(tokens); Program program = parser.program(); input = new ANTLRFileStream(args[1]); lexer = new FLLexer(input); tokens = new CommonTokenStream(lexer); parser = new FLParser(tokens); Expr expr = parser.expr();
}
<?xml version="1.0" encoding="UTF-8"?> <bgf:grammar xmlns:bgf="http://planet-sl.org/bgf">
</bgf:grammar>
http://en.wikipedia.org/wiki/File:Common_Base_amplifier.png
!"#$%& '(% !"# )*% $%&' +,-+ $()* .,! $()* !)*% +,-,./0".1 /0+ #2"0 )/*,$ #(% $()* $()* $)3' 1.2# $()* $()* 4506"- $()* $()* 1278,. 34.#5 9:*); "(% 9(' .!#6!2# $()* 7809, $()* :;<; <827#1, 3=%>- ).% 9(' 4."2"+ $%*' !"( 4."2"+ 4506"- <827#1, &./#6=7> #8% )?@ 1278,. .!# *$) A/=/ !2# 4."2"+ ### &3B 0./!" (8* 4."2"+
Domain IAL Jovial Design Patterns Smalltalk Informix C# MOF XPath concept [Bac60] [MIL84] [GHJV95] [Sha97] [IBM03] [Sta06] [MOF06] [BBC+07] synopsis — ∼ intent synopsis ∼ ∼ ∼ — description ∼ — motivation definition usage ∼ — ∼ syntax —a syntax structure ∼ ∼ ∼ — [NN]b constraints — constraints applicability errors restrictions ∼ constraints ∼ references — — related patterns — references ∼ — ∼ relationship — — consequences return value, related return — ∼ refinement type semantics — semantics collaborations — important ∼ semantics ∼ rationale ∼ notes implementation rationale GLS, ESc note rationale note example examples examples sample code, — ∼ example — ∼ known uses update — — — — — —d changes — default — — — — note default — — values value — — also known as conforms to — — — — list ∼ — — messages, terminals — properties ∼ parameters section ∼ — — — ∼ ∼ — ∼ subtopic — types participants — fields parameters, operations functions methods Coverage
LDF
antlr dcg topdown sdf txl xframeworks ecore ecore2 model xsd xsd2ecore
jaxb xjc java abstract concrete limit
antlr dcg topdown sdf txl xframeworks ecore ecore2 model xsd xsd2ecore
jaxb xjc java abstract concrete limit
Transformations Transformations
jls1 jls12 jls123 jls2 jls3 read12 read123 Total Number of lines 682 5114 2847 6774 10721 1639 3082 30859 Number of transformations 67 290 111 387 544 77 135 1611
45 231 80 275 381 31 78 1121
22 58 31 102 150 39 53 455
— 1 — 10 13 7 4 35 Preparation phase (§4.2.1) 1 — — 15 24 11 14 65
— — — 1 11 — 4 16
— — — 7 8 7 5 27
1 — — 7 5 4 5 22 Resolution phase 21 59 31 97 139 35 43 425
— 17 26 — — 31 38 112
18 39 5 75 112 — 2 251
3 3 — 22 27 4 3 62
jls1 jls12 jls123 jls2 jls3 read12 read123 Total Number of lines 682 5114 2847 6774 10721 1639 3082 30859 Number of transformations 67 290 111 387 544 77 135 1611
45 231 80 275 381 31 78 1121
22 58 31 102 150 39 53 455
— 1 — 10 13 7 4 35 Preparation phase (§4.2.1) 1 — — 15 24 11 14 65
— — — 1 11 — 4 16
— — — 7 8 7 5 27
1 — — 7 5 4 5 22 Resolution phase 21 59 31 97 139 35 43 425
— 17 26 — — 31 38 112
18 39 5 75 112 — 2 251
3 3 — 22 27 4 3 62
jls1 jls12 jls123 jls2 jls3 read12 read123 Total
9 4 2 9 10 — 2 36
2 — — 2 2 2 1 9
1 10 8 11 13 2 3 48
4 11 4 11 13 2 5 50
3 67 8 71 100 — 1 250
— 17 5 18 30 — 5 75
1 — 2 — — 1 4 8
2 13 — 15 32 5 3 70
3 4 2 3 6 — — 18
1 7 3 5 24 3 1 44
2 20 — 25 33 4 3 87
— — — — 1 — 1 2
1 8 1 14 22 — — 46
— 1 30 4 13 3 34 85
— — 2 — — — 1 3
5 7 7 8 22 5 8 62
4 19 5 17 31 4 4 84
1 14 13 7 20 28 20 103
— 8 11 8 25 2 17 71
1 3 — 1 8 1 3 17
— 8 — 14 20 2 2 46
18 2 — 18 21 5 4 68
— 10 1 11 18 — 1 41
— 7 4 11 11 — — 33
— — 1 — 4 — — 5
— 2 — 8 3 — — 13
— 6 — 4 9 1 6 26
— 3 — 5 3 — — 11
— 3 — 8 7 6 2 26
— — — 2 4 — 1 7
— 1 — 1 2 — — 4
3 1 2 3 6 1 1 17
— — — — — — 2 2
!"#$%&'()* +,-.*&-(/ 0.*))*. 12345 !"#$#% &'(()*% !"# 16789$+&:.(9$;;;5 +,-. <!# .+-/0/+,-. 2=4$>?$@<"# "#1234 ('"35" %A4 6,7 ;;; 8 <.*?BC:.)(/ 0.*))*. 12345 +9:7 +9:7 @<"# +,-. 2=4 +,-. %A4 +,-. ;;; +,-.8 (D:EF->:? .(B-.F&-F.>?0 *GB-.*&->:? &:..(&->:? BH(&>*E>I*->:?
!"#$%&'()* +,-.*&-(/ 0.*))*. 12345 !"#$#% &'(()*% !"# 16789$+&:.(9$;;;5 +,-. <!# .+-/0/+,-. 2=4$>?$@<"# "#1234 ('"35" %A4 6,7 ;;; 8 <.*?BC:.)(/ 0.*))*. 12345 +9:7 +9:7 @<"# +,-. 2=4 +,-. %A4 +,-. ;;; +,-.8 (D:EF->:? .(B-.F&-F.>?0 *GB-.*&->:? &:..(&->:? BH(&>*E>I*->:?
!"#$%&'()* +,-.*&-(/ /0&1)(2- 3#456 !"#$#% &'(()*% 789$!"# +,-. :;"# "#/0123('"14" <<< ;.*2=>0.)(/ /0&1)(2- 3#456 +-56 +-56 :;"# +,-. ;(! +,-. 40&?00@ +,-. <<< +,-.7 A45
5#89##: (B0C1-D02 D)E.0B()(2- <<<
Steven Klusener, Vadim Zaytsev,
Language Standardization Needs Grammarware, ISO, 2005
Ralf Lämmel and Vadim Zaytsev,
An Introduction to Grammar Convergence, iFM 2009
Vadim Zaytsev,
Language Convergence Infrastructure, GTTSE 2009
Ralf Lämmel and Vadim Zaytsev,
Recovering Grammar Relationships for the JLS, SCAM 2009 & SQJ
Ralf Lämmel and Vadim Zaytsev,
Reverse Engineering Grammar Relationships, WSR 2010
Vadim Zaytsev and Ralf Lämmel,
A Unified Format for Language Documents, SLE 2010
Vadim Zaytsev,
Correct C♯ Grammar too Sharp for ISO, GTTSE 2005