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

BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
SoniaTolstoy
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
PECB
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 

Recently uploaded (20)

Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 

Pure and Declarative Syntax Definition: Paradise Lost and Regained