Syntax
Semantics
Lexers
Parsers
Haskell
100
The form of expressions, statements, and other constructs in a programming language.
What is syntax?
100
The meaning of language constructs in a programming language.
What is semantics?
100
Another name for a lexical analyzer
What is a lexer?
100
A program meant to create parse trees for sentences in a given language.
What is a parser?
100
The function necessary to make a haskell program run.
What is the main function?
200
The strings of characters that comprise a language.
What is a sentence?
200
A formal, mathematical method used to describe programming languages.
What is denotational semantics?
200
The common lexical generator used on many Unix systems
What is lex?
200
A method of parsing in which the tree is built from the leaves to the root.
What is bottom-up parsing?
200
An array of chars
What is a string?
300
The smallest possible unit of a language.
What is a lexeme?
300
A semantic style that specifies what can be proven about a program, and focuses on program verification and semantics specification.
What is axiomatic semantics?
300
A state diagram that is made for a lexer
What is a finite automata?
300
When a rule is constructed in such a way that the parser will infinitely recursively descend into the left side of the rule.
What is direct left recursion?
300
The symbol used to denote list construction in Haskell
What is a colon?
400
A device to test and see if a certain sentence is in a given language.
What is a language recognizer?
400
A semantic style that is focused on the execution of the code, including any state changes and the ultimate result of the code.
What is operational semantics?
400
A diagram that allows you to build a lexer if the diagram describes the token patterns of the language (and if you write a program that implements said diagram.)
What is a state transition diagram?
400
A test that determines whether or not a recursive descent parser is able to select the rule based on the next token.
What is a pairwise disjointness test?
400
The symbols used to denote list concatenation in Haskell
What are two plus signs?
500
A production where the nonterminal being defined appears on the left end of the right hand side of the production.
What is a left-recursive production?
500
A condition that remains true before, during, and after a loop's iteration.
What is a loop invariant?
500
A language that is context-free and can only be described using regular expressions
What is a regular language?
500
A parser that constructs a parse tree from the leaves up to the root of the tree.
What is a bottom-up parser?
500
The Haskell command that gives you the first part of a tuple
What is fst?