can only be determined by executing or evaluating program (common error is dividing by 0)
Back
abstract syntax
Front
conceptual structure
Back
Meta Language
Front
the language of description/implementation (haskell)
Back
monad
Front
Monads are a structure composed of two basic
operations (bind and return), which capture a
common pattern that occurs in many types
Back
token
Front
basic syntactic unit of a language, want to make them as simple as possible
Back
Call by name
Front
only evaluates the argument when the value is needed to complete the computation (lazy, haskell)
Back
first-class value
Front
A first-class value is a value that can be used like any other value.
Specifically:
1 A value is first class if it can be passed to functions,
2 returned from functions, and
3 represented in a variable binding.
(functions in haskell can be used as first-class values)
Back
problem with grammar:
Front
ambiguity
Back
syntactic category
Front
"parts of a language" expressions, terms, functions, types, classes, etc
Back
associatity
Front
specifies whether binary operations are grouped left or right in order to resolve ambiguity
Back
first-class function
Front
functions as they occur in functional
languages like Haskell and JavaScript
Back
grammar
Front
set of rules that specify how tokens can be placed together to form valid expressions of a language
Back
static property
Front
can be determined by examining the text of the program without executing it
Back
concrete syntax
Front
the particular details and rules for writing expressions as strings of characters
Back
precedence
Front
order on grammar rules that define which rule applies first in case of ambiguity
Back
syntax
Front
the syntax of an expression describes how the various components of the expressions can be combined.
Ex. (+ +) is not valid
Back
binding
Front
association with variable to a value
Back
literal
Front
constant value that appears in the program
Back
formal parameters
Front
int foo(char c, int x) { ... }
c and x are formal parameters of foo
Back
evaluation
Front
each expression has a meaning (or value) which is defined by the evaluation of that expression