SlideShare a Scribd company logo
1 of 194
Download to read offline
Pure and Declarative
Syntax Definition:
Paradise Lost and Regained
Lennart Kats Eelco Visser Guido Wachsmuth
Delft University of Technology
PARADISE
PARADISE LOST
PARADISE
REGAINED
PARADISE DENIED
PARADISE
WORDS
TREES
GRAMMARS
LANGUAGE
ENGINEERS
LANGUAGES
GRAMMARS
NATURAL
PURE
BEAUTIFUL
SOFTWARE
ENGINEERS
LANGUAGE
SOFTWARE
NATURAL
NOT
PURE
NOT
BEAUTIFUL
NOT
SYNTAX
DEFINITIONS
NATURAL
PURE
BEAUTIFUL
THE FALL
PARSER
DEFINITIONS
PARADISE LOST
PAIN
SWEAT
NATURAL
NOT
PURE
NOT
BEAUTIFUL
NOT
THE PLAGUES
context-free grammars
LR(k)
LR(1)
LALR(1)
SLR
LR(0)
LL(k)
LL(1)
LL(0)
GRAMMAR
CLASSES
DISAMBIGUATION
LEXICAL SYNTAX
TREE
CONSTRUCTION
EVOLUTION
COMPOSITION
RESTRICTION
TO PARSERS
PARADISE
WORDS WERE MADETHROUGH
GRAMMARS
GRAMMARS
Num ➝ Digit Num
Num ➝ Digit
Digit ➝ “0”
Digit ➝ “1”
Num ➝ Digit Num
Num ➝ Digit
Digit ➝ “0”
Digit ➝ “1”
production rules
Num ➝ Digit Num
Num ➝ Digit
Digit ➝ “0”
Digit ➝ “1”
terminal symbols
production rules
Num ➝ Digit Num
Num ➝ Digit
Digit ➝ “0”
Digit ➝ “1”
nonterminal symbols
terminal symbols
production rules
Num ➝ Digit Num
Num ➝ Digit
Digit ➝ “0”
Digit ➝ “1”
nonterminal symbols
terminal symbols
production rules
start symbol
WORDS
Num
Num
Digit Num
Num ➝ Digit Num
Num
Digit Num
Digit Digit
Num ➝ Digit Num
Num ➝ Digit
Num
Digit Num
Digit Digit
Digit 0
Num ➝ Digit Num
Num ➝ Digit
Digit ➝ “0”
Num
Digit Num
Digit Digit
Digit 0
1 0
Num ➝ Digit Num
Num ➝ Digit
Digit ➝ “0”
Digit ➝ “1”
SENTENCES
Exp ➝ Exp “+” Exp
Exp ➝ Exp “*” Exp
Exp ➝ Num
production rules
Exp ➝ Exp “+” Exp
Exp ➝ Exp “*” Exp
Exp ➝ Num
terminal symbols
production rules
Exp ➝ Exp “+” Exp
Exp ➝ Exp “*” Exp
Exp ➝ Num
nonterminal symbols
terminal symbols
production rules
Exp ➝ Exp “+” Exp
Exp ➝ Exp “*” Exp
Exp ➝ Num
nonterminal symbols
terminal symbols
production rules
start symbol
Exp
Exp
Exp + Exp
Exp ➝ Exp “+” Exp
Exp
Exp + Exp
Exp * Exp + Exp
Exp ➝ Exp “+” Exp
Exp ➝ Exp “*” Exp
Exp
Exp + Exp
Exp * Exp + Exp
3 * Exp + Exp
Exp ➝ Exp “+” Exp
Exp ➝ Exp “*” Exp
Exp ➝ Num
Exp
Exp + Exp
Exp * Exp + Exp
3 * Exp + Exp
3 * 7 + Exp
Exp ➝ Exp “+” Exp
Exp ➝ Exp “*” Exp
Exp ➝ Num
Exp ➝ Num
Exp
Exp + Exp
Exp * Exp + Exp
3 * Exp + Exp
3 * 7 + Exp
3 * 7 + 21
Exp ➝ Exp “+” Exp
Exp ➝ Exp “*” Exp
Exp ➝ Num
Exp ➝ Num
Exp ➝ Num
THEY MADE LANGUAGES
BY MAKING GRAMMARS
GRAMMAR
LANGUAGE
TRUTH
Exp ➝ Exp “+” Exp
Exp ➝ Exp “*” Exp
Exp ➝ Num
Exp “+” Exp ➝ Exp
Exp “*” Exp ➝ Exp
Num ➝ Exp
productive reductive
3 * 7 + 21
3 * 7 + 21
3 * 7 + Exp
Num ➝ Exp
3 * 7 + 21
3 * 7 + Exp
3 * Exp + Exp
Num ➝ Exp
Num ➝ Exp
3 * 7 + 21
3 * 7 + Exp
3 * Exp + Exp
Exp * Exp + Exp
Num ➝ Exp
Num ➝ Exp
Num ➝ Exp
3 * 7 + 21
3 * 7 + Exp
3 * Exp + Exp
Exp * Exp + Exp
Exp + Exp
Num ➝ Exp
Num ➝ Exp
Num ➝ Exp
Exp “*” Exp ➝ Exp
3 * 7 + 21
3 * 7 + Exp
3 * Exp + Exp
Exp * Exp + Exp
Exp + Exp
Exp
Num ➝ Exp
Num ➝ Exp
Num ➝ Exp
Exp “*” Exp ➝ Exp
Exp “+” Exp ➝ Exp
THEYTURNED WORDS INTO
TREES
SENTENCES
STRUCTURE
Exp ➝ Exp “+” Exp
Exp ➝ Exp “*” Exp
Exp ➝ Num
Exp “+” Exp ➝ Exp
Exp “*” Exp ➝ Exp
Num ➝ Exp
productive reductive
Exp
Num
Exp
+Exp Exp
Exp
*Exp Exp
tree construction
3 * +7 21
Exp Exp
3 * +7 21
Exp
Exp
Num
Exp
Exp
Exp
3 * +7 21
Exp
Exp
+Exp Exp
Exp
*Exp Exp
Exp
Exp
Exp
3 * +7 21
Exp
Exp
Exp
+Exp Exp
ONE FORMALISM
THREE READINGS
PURE
DECLARATIVE
BEAUTIFUL
PARADISE LOST
EFFICIENCY
THE FIRST PLAGUE WERE
GRAMMAR CLASSES
context-free grammars
context-free grammars
LL(0)
context-free grammars
LL(1)
LL(0)
context-free grammars
LL(k)
LL(1)
LL(0)
context-free grammars
LR(0)
LL(k)
LL(1)
LL(0)
context-free grammars
LR(1)
LR(0)
LL(k)
LL(1)
LL(0)
context-free grammars
LR(k)
LR(1)
LR(0)
LL(k)
LL(1)
LL(0)
context-free grammars
LR(k)
LR(1)
SLR
LR(0)
LL(k)
LL(1)
LL(0)
context-free grammars
LR(k)
LR(1)
LALR(1)
SLR
LR(0)
LL(k)
LL(1)
LL(0)
Exp “+” Exp ➝ Exp
Exp “*” Exp ➝ Exp
Num ➝ Exp
Term (“+” Term)* ➝ Exp
Fact (“*” Fact)* ➝Term
Num ➝ Fact
paradise grammar classes
Exp
Exp
Exp
3 + +7 21
Exp
Exp
paradise grammar classes
Fact Fact
3 + +7 21
Fact
*
Exp
Term Term Term
*
THE SECOND PLAGUE WAS
DISAMBIGUATION
Exp
Exp
Exp
3 * +7 21
Exp
Exp
Exp
Exp
Exp
3 * +7 21
Exp
Exp
text books
precedence operators associativity
1 ( ), [ ] non-associative
2 new non-associative
3 . left-associative
4 ++, -- non-associative
5 -, +, !, ~, ++, --, (type) right-associative
6 *, /, % left-associative
7 +, - left-associative
… … …
context-free grammars
LR(k)
LR(1)
LALR(1)
SLR
LR(0)
LL(k)
LL(1)
LL(0)
context-free grammars
unambigous
LR(k)
LR(1)
LALR(1)
SLR
LR(0)
LL(k)
LL(1)
LL(0)
Exp “+” Term ➝ Exp
Term ➝ Exp
Term “*” Fact ➝Term
Fact ➝Term
Num ➝ Fact
grammar classes
FALSE PROPHETS
“a” “b” ➝ A
“a” ➝ A
“a” “b” /
“a” ➝ A
paradise PEGs
L = {ab, a} L = {ab, a}
“a” ➝ A
“a” “b” ➝ A
“a” /
“a” “b” ➝ A
paradise PEGs
L = {ab, a} L = {a}
if c1 then if c2 then s1 else s2
dangling else
“if” E “then” S “else” S /
“if” E “then” S ➝ S
“if” E “then” S /
“if” E “then” S “else” S ➝ S
PEGs
THETHIRD PLAGUE WAS
LEXICAL SYNTAX
morphology & syntax
limited look-ahead
LR(k)
LR(1)
LALR(1)
SLR
LR(0)
LL(k)
LL(1)
LL(0)
scanners
3 * +7 21
3 * +7 21
parsers
3 * +7 21
Exp
Exp
Exp
3 * +7 21
Exp
Exp
array [ ..1 10 ] integerof
x = *1. .10
y :
array [ ..1 10 ] integerof
x = *1. .10
y :
array [ 1. .10 ] integerof
x = *1. .10
y :
THE FOURTH PLAGUE WAS
TREE CONSTRUCTION
Exp
Exp
Exp
3 + +7 21
Exp
Exp
Const
Add
Const
3 7 21
Const
Add
paradise
Const
Add
Const
3 7 21
Const
Add
Fact Fact
3 + +7 21
Fact
*
Exp
Term Term Term
*
grammar classes
expr:
INTEGER { $$ = con($1); }
| expr '+' expr { $$ = opr('+', 2, $1, $3);}
| expr '*' expr { $$ = opr('*', 2, $1, $3);}
;
semantic actions
THE FIFTH PLAGUE WAS
EVOLUTION
Exp “+” Exp ➝ Exp
Exp “*” Exp ➝ Exp
Num ➝ Exp
Exp “+” Term ➝ Exp
Term ➝ Exp
Term “*” Fact ➝Term
Fact ➝Term
Num ➝ Fact
paradise grammar classes
Exp “+” Exp ➝ Exp
Exp “*” Exp ➝ Exp
Num ➝ Exp
Exp “=” Exp ➝ Exp
Exp “<” Exp ➝ Exp
Exp “>” Exp ➝ Exp
CExp “+” Term ➝ CExp
Term ➝ CExp
Term “*” Fact ➝Term
Fact ➝Term
Num ➝ Fact
Exp “=” CExp ➝ Exp
Exp “<” CExp ➝ Exp
Exp “>” CExp ➝ Exp
CExp ➝ Exp
paradise grammar classes
THE SIXTH PLAGUE WAS
COMPOSITION
parsers
context-free grammars
LR(k)
LR(1)
LALR(1)
SLR
LR(0)
LL(k)
LL(1)
LL(0)
context-free grammars
LR(k)
LR(1)
LALR(1)
SLR
LR(0)
LL(k)
LL(1)
LL(0)
context-free grammars
LR(k)
LR(1)
LALR(1)
SLR
LR(0)
LL(k)
LL(1)
LL(0)
context-free grammars
LR(k)
LR(1)
LALR(1)
SLR
LR(0)
LL(k)
LL(1)
LL(0)
scanners
public boolean
authenticate(String user, String pw) {
SQL stm = <| SELECT id FROM Users
WHERE name = ${user}
AND password = ${pw} |>;
return executeQuery(stm).size() != 0;
}
THE SEVENTH PLAGUE WAS
RESTRICTION
TO
PARSERS
PRETTY PRINTERS
SENTENCE
GENERATORS
AST ACCESS
IDE SUPPORT
PARADISE
REGAINED
GENERALISED
PARSING
context-free grammars
LR(k)
LR(1)
LALR(1)
SLR
LR(0)
LL(k)
LL(1)
LL(0)
context-free grammars
paradise SDF
context-free syntax
Exp "+" Exp -> Exp
Exp "*" Exp -> Exp
NUM -> Exp
Exp “+” Exp ➝ Exp
Exp “*” Exp ➝ Exp
Num ➝ Exp
DECLARATIVE
DISAMBIGUATION
context-free grammars
unambigous
LR(k)
LR(1)
LALR(1)
SLR
LR(0)
LL(k)
LL(1)
LL(0)
context-free grammars
unambigous
context-free grammars
text books
precedence operators associativity
1 ( ), [ ] non-associative
2 new non-associative
3 . left-associative
4 ++, -- non-associative
5 -, +, !, ~, ++, --, (type) right-associative
6 *, /, % left-associative
7 +, - left-associative
… … …
context-free priorities
Exp "*" Exp -> Exp {left}
> Exp "+" Exp -> Exp {left}
context-free syntax
	
"if" E "then" S -> S {prefer}
"if" E "then" S "else" S -> S
SCANNERLESS
PARSING
morphology & syntax
lexical syntax
	
[0-9]+ -> NUM
[ tn] -> LAYOUT
"//" ~[n]* [n] -> LAYOUT
parser
parser
DECLARATIVE
TREE CONSTRUCTION
Exp
Exp
Exp
3 + +7 21
Exp
Exp
Const
Add
Const
3 7 21
Const
Add
paradise
SDF
context-free syntax
	
Exp "+" Exp -> Exp {cons("Add")}
Exp "*" Exp -> Exp {cons("Mul")}
NUM -> Exp {cons("Const")}
Const
Add
Const
3 7 21
Const
Add
paradise SDF
Add(
Add(
Const("3"),
Const("7")
),
Const("21")
)
SEAMLESS
EVOLUTION
context-free syntax
	
Exp "+" Exp -> Exp {cons("Add")}
Exp "*" Exp -> Exp {cons("Mul")}
NUM -> Exp {cons("Const")}
Exp "=" Exp -> Exp {cons("Eq")}
Exp ">" Exp -> Exp {cons("Gt")}
Exp "<" Exp -> Exp {cons("Lt")}
MODULAR
COMPOSITION
context-free grammars
LR(k)
LR(1)
LALR(1)
SLR
LR(0)
LL(k)
LL(1)
LL(0)
context-free grammars
public boolean
authenticate(String user, String pw) {
SQL stm = <| SELECT id FROM Users
WHERE name = ${user}
AND password = ${pw} |>;
return executeQuery(stm).size() != 0;
}
module Java-SQL
imports
Java SQL
exports
context-free syntax
"<|" Query "|>" -> Exp {cons("ToSQL")}
"${" Exp "}" -> SqlExp {cons("FromSQL")}
BEYOND
PARSERS
PRETTY PRINTERS
SENTENCE
GENERATORS
AST ACCESS
IDE SUPPORT
PARADISE DENIED
still around
still around
still have to use it
still have to learn
LL, LR, SLR, LALR
still think using
parser generators is hard
modern parser generator
modern parser generator
PARADISE OPEN
slides title author copyright
1, 2, 42 Jeremiah lamenting Rembrandt public domain
3, 7, 14-16, 19-21,
23-25, 31-33, 43,
88-92
Adam and Eve in the Garden of Eden
Wenzel Peter
photo: Jonathan Linczak
some rights reserved
4, 28, 93 Expulsion from the Garden of Eden Thomas Cole public domain
5, 138, 175 Livres d'heures des Étienne Chevalier Jean Fouquet public domain
6, 167 The Adoration of the Golden Calf Nicolas Poussin public domain
8, 51, 112, 131, 150 Thesaurus Enoch Lau some rights reserved
9, 79, 81 The BurmisTree Monsieur david some rights reserved
10, 13, 22, 45, 69 Latin Grammar Anthony Nelzin some rights reserved
11, 17, 176 The Garden of Earthly Delights (centre panel) Hieronymus Bosch public domain
12, 18, 68 Programming language textbooks K.lee public domain
26 The Fall of Man Jacob Jordaens public domain
27 Illustration d'après un Bison naturalisé d'Eulalie en Margeride F Lamiot some rights reserved
29 Can't Concentrate Sasha Wolff some rights reserved
30 Cold Sweat EricTastad some rights reserved
34 The Fifth Plague of Egypt Joseph M.W.Turner public domain
36 Managed Destruction Harley Kingston some rights reserved
slides title author copyright
37 Book Scanner Ben Woosley some rights reserved
38 Dead trees in the clay pan of the Deadvlei Harald Süpfle some rights reserved
39 Charles Robert Darwin John Maler Collier public domain
40 Black Lego Wallpaper monohex some rights reserved
41 Four - Nova Prospekt (Restricted) |Digressive| some rights reserved
44, 110, 148 Noam Chomsky Fellowsisters some rights reserved
57, 80, 115, 129, 151 Minuscule 798 f.41v - f.42r unknown public domain
70 Latin Bible
Gerard Brils
photo:Adrian Pingstone
public domain
71 Themis and Aegeus
Kodros Painter
photo: Bibi Saint-Pol
public domain
94 IBM System/3 Jonathunder some rights reserved
104 Destruction of the Beast and the False Prophet Benjamin West public domain
168 lex & yacc O’Reilly all rights reserved
169 flex & bison O’Reilly all rights reserved
170-172 Students TU Delft Media Services all rights reserved
173 ANTLR The Pragmatic Bookshelf all rights reserved
174 Xtext all rights reserved

More Related Content

What's hot

Regex Presentation
Regex PresentationRegex Presentation
Regex Presentation
arnolambert
 

What's hot (20)

Lexical Analysis
Lexical AnalysisLexical Analysis
Lexical Analysis
 
Static Analysis
Static AnalysisStatic Analysis
Static Analysis
 
Declare Your Language: Syntactic (Editor) Services
Declare Your Language: Syntactic (Editor) ServicesDeclare Your Language: Syntactic (Editor) Services
Declare Your Language: Syntactic (Editor) Services
 
Compiler Components and their Generators - Traditional Parsing Algorithms
Compiler Components and their Generators - Traditional Parsing AlgorithmsCompiler Components and their Generators - Traditional Parsing Algorithms
Compiler Components and their Generators - Traditional Parsing Algorithms
 
Compiler Components and their Generators - Lexical Analysis
Compiler Components and their Generators - Lexical AnalysisCompiler Components and their Generators - Lexical Analysis
Compiler Components and their Generators - Lexical Analysis
 
Introduction - Imperative and Object-Oriented Languages
Introduction - Imperative and Object-Oriented LanguagesIntroduction - Imperative and Object-Oriented Languages
Introduction - Imperative and Object-Oriented Languages
 
Static name resolution
Static name resolutionStatic name resolution
Static name resolution
 
Dynamic Semantics
Dynamic SemanticsDynamic Semantics
Dynamic Semantics
 
Ch04
Ch04Ch04
Ch04
 
Regular expression examples
Regular expression examplesRegular expression examples
Regular expression examples
 
Declare Your Language: Type Checking
Declare Your Language: Type CheckingDeclare Your Language: Type Checking
Declare Your Language: Type Checking
 
Declare Your Language: Transformation by Strategic Term Rewriting
Declare Your Language: Transformation by Strategic Term RewritingDeclare Your Language: Transformation by Strategic Term Rewriting
Declare Your Language: Transformation by Strategic Term Rewriting
 
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term RewritingCompiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
 
Ch03
Ch03Ch03
Ch03
 
Declare Your Language: Name Resolution
Declare Your Language: Name ResolutionDeclare Your Language: Name Resolution
Declare Your Language: Name Resolution
 
CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term RewritingCS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
 
Compiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type ConstraintsCompiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type Constraints
 
Regex Presentation
Regex PresentationRegex Presentation
Regex Presentation
 
Type analysis
Type analysisType analysis
Type analysis
 
Dynamic Semantics Specification and Interpreter Generation
Dynamic Semantics Specification and Interpreter GenerationDynamic Semantics Specification and Interpreter Generation
Dynamic Semantics Specification and Interpreter Generation
 

Viewers also liked (6)

Register Allocation
Register AllocationRegister Allocation
Register Allocation
 
Language
LanguageLanguage
Language
 
Software languages
Software languagesSoftware languages
Software languages
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
LR Parsing
LR ParsingLR Parsing
LR Parsing
 
Garbage Collection
Garbage CollectionGarbage Collection
Garbage Collection
 

Similar to Pure and Declarative Syntax Definition: Paradise Lost and Regained

The Magnificent Seven
The Magnificent SevenThe Magnificent Seven
The Magnificent Seven
Mike Fogus
 
Scala presentation by Aleksandar Prokopec
Scala presentation by Aleksandar ProkopecScala presentation by Aleksandar Prokopec
Scala presentation by Aleksandar Prokopec
Loïc Descotte
 
Feel of Kotlin (Berlin JUG 16 Apr 2015)
Feel of Kotlin (Berlin JUG 16 Apr 2015)Feel of Kotlin (Berlin JUG 16 Apr 2015)
Feel of Kotlin (Berlin JUG 16 Apr 2015)
intelliyole
 
Clojure for Java developers - Stockholm
Clojure for Java developers - StockholmClojure for Java developers - Stockholm
Clojure for Java developers - Stockholm
Jan Kronquist
 

Similar to Pure and Declarative Syntax Definition: Paradise Lost and Regained (20)

Declarative Syntax Definition - Pretty Printing
Declarative Syntax Definition - Pretty PrintingDeclarative Syntax Definition - Pretty Printing
Declarative Syntax Definition - Pretty Printing
 
The Magnificent Seven
The Magnificent SevenThe Magnificent Seven
The Magnificent Seven
 
Scala presentation by Aleksandar Prokopec
Scala presentation by Aleksandar ProkopecScala presentation by Aleksandar Prokopec
Scala presentation by Aleksandar Prokopec
 
Abstract machines for great good
Abstract machines for great goodAbstract machines for great good
Abstract machines for great good
 
Introduction To Lisp
Introduction To LispIntroduction To Lisp
Introduction To Lisp
 
Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to Scala
 
Open course(programming languages) 20150225
Open course(programming languages) 20150225Open course(programming languages) 20150225
Open course(programming languages) 20150225
 
codin9cafe[2015.02.25]Open course(programming languages) - 장철호(Ch Jang)
codin9cafe[2015.02.25]Open course(programming languages) - 장철호(Ch Jang)codin9cafe[2015.02.25]Open course(programming languages) - 장철호(Ch Jang)
codin9cafe[2015.02.25]Open course(programming languages) - 장철호(Ch Jang)
 
groovy & grails - lecture 3
groovy & grails - lecture 3groovy & grails - lecture 3
groovy & grails - lecture 3
 
Feel of Kotlin (Berlin JUG 16 Apr 2015)
Feel of Kotlin (Berlin JUG 16 Apr 2015)Feel of Kotlin (Berlin JUG 16 Apr 2015)
Feel of Kotlin (Berlin JUG 16 Apr 2015)
 
Lambda? You Keep Using that Letter
Lambda? You Keep Using that LetterLambda? You Keep Using that Letter
Lambda? You Keep Using that Letter
 
Clojure for Java developers - Stockholm
Clojure for Java developers - StockholmClojure for Java developers - Stockholm
Clojure for Java developers - Stockholm
 
Scope Graphs: A fresh look at name binding in programming languages
Scope Graphs: A fresh look at name binding in programming languagesScope Graphs: A fresh look at name binding in programming languages
Scope Graphs: A fresh look at name binding in programming languages
 
Macros and reflection in scala 2.10
Macros and reflection in scala 2.10Macros and reflection in scala 2.10
Macros and reflection in scala 2.10
 
Lambda? You Keep Using that Letter
Lambda? You Keep Using that LetterLambda? You Keep Using that Letter
Lambda? You Keep Using that Letter
 
Perl 6 in Context
Perl 6 in ContextPerl 6 in Context
Perl 6 in Context
 
Regexp secrets
Regexp secretsRegexp secrets
Regexp secrets
 
Scala Parallel Collections
Scala Parallel CollectionsScala Parallel Collections
Scala Parallel Collections
 
Quantifiers and its Types
Quantifiers and its TypesQuantifiers and its Types
Quantifiers and its Types
 
SparkSQLの構文解析
SparkSQLの構文解析SparkSQLの構文解析
SparkSQLの構文解析
 

More from Guido Wachsmuth

Domain-Specific Type Systems
Domain-Specific Type SystemsDomain-Specific Type Systems
Domain-Specific Type Systems
Guido Wachsmuth
 

More from Guido Wachsmuth (8)

Domain-Specific Type Systems
Domain-Specific Type SystemsDomain-Specific Type Systems
Domain-Specific Type Systems
 
Compiler Components and their Generators - LR Parsing
Compiler Components and their Generators - LR ParsingCompiler Components and their Generators - LR Parsing
Compiler Components and their Generators - LR Parsing
 
Compiling Imperative and Object-Oriented Languages - Garbage Collection
Compiling Imperative and Object-Oriented Languages - Garbage CollectionCompiling Imperative and Object-Oriented Languages - Garbage Collection
Compiling Imperative and Object-Oriented Languages - Garbage Collection
 
Compiling Imperative and Object-Oriented Languages - Register Allocation
Compiling Imperative and Object-Oriented Languages - Register AllocationCompiling Imperative and Object-Oriented Languages - Register Allocation
Compiling Imperative and Object-Oriented Languages - Register Allocation
 
Compiling Imperative and Object-Oriented Languages - Dataflow Analysis
Compiling Imperative and Object-Oriented Languages - Dataflow AnalysisCompiling Imperative and Object-Oriented Languages - Dataflow Analysis
Compiling Imperative and Object-Oriented Languages - Dataflow Analysis
 
Compiling Imperative and Object-Oriented Languages - Activation Records
Compiling Imperative and Object-Oriented Languages - Activation RecordsCompiling Imperative and Object-Oriented Languages - Activation Records
Compiling Imperative and Object-Oriented Languages - Activation Records
 
Declarative Semantics Definition - Code Generation
Declarative Semantics Definition - Code Generation Declarative Semantics Definition - Code Generation
Declarative Semantics Definition - Code Generation
 
Software Languages
Software LanguagesSoftware Languages
Software Languages
 

Recently uploaded

Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Recently uploaded (20)

SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 

Pure and Declarative Syntax Definition: Paradise Lost and Regained