Midterm Vocab Flashcards
absolute address
the numeric address of a location in memory.
cf. relative address.
abstract syntax tree (AST)
a tree representation of a program
that is abstracted from the details of a particular programming
language and its surface syntax.
accepting state
a state of a finite automaton in which the input string is accepted
as being a member of the language recognized by the automaton.
address alignment
see storage alignment.
alphabet
a set of symbols used in the definition of a language.
ambiguity
a case where more than one interpretation is possible.
ambiguous grammar
a grammar that allows some sentence or string to be generated
or parsed in more than one way (i.e., with distinct parse trees).
arity
the number of arguments of a function.
associativity
a specification of the order in which operations should be performed
when two operators of the same precedence are adjacent. Most operators
are left-associative, e.g. the expression A - B - C
should be interpreted as ((A - B) - C).
abstract syntax tree
AST
augmented transition network (ATN)
a formalism for describing parsers, especially for natural language.
Similar to a finite automaton, but augmented in that arbitrary tests may be
attached to transition arcs, subgrammars may be called recursively, and
structure-building actions may be executed as an arc is traversed.
base address
the address of the beginning of a data area. This address is added to
a relative address or offset to compute an absolute address.
basic type
a data type that is implemented in computer hardware
instructions, such as integer or real.
BNF
Backus-Naur Form, a syntax for writing context-free grammars
that describe computer languages.
bottom-up parsing
a parsing method in which input words are matched against the right-hand
sides of grammar productions in an attempt to build a parse tree from the
bottom towards the top.
cascading errors
a situation, e.g. in compiling a program, where one error causes many
reported errors. For example, failure to declare a variable may cause
an error every time that variable is referenced.
cast
to coerce a given value to be of a specified type.
Chomsky hierarchy
the hierarchy of formal language types: regular, context free, context
sensitive, and recursively enumerable languages, each of which is a proper
subset of the following class.
code generation
the phase of a compiler in which executable output code is generated
from intermediate code.
collision
in a hash table, a case in which a symbol has the same
hash function value as another symbol.
compiler
a program that translates a source language into an
object language that is executable on a computer.
compiler-compiler
a program that produces a compiler for a language from a specification
of the syntax and semantics of the language, e.g. yacc.
concatenation
making a sequence that consists of the elements of a first sequence
followed by those of a second sequence.
context-free grammar
a grammar in which the left-hand side of each production consists of a
single nonterminal symbol.
data area
a contiguous area of memory, specified by its base address and size.
Data within the area are referenced by the base address of the area and
the offset, or relative address, of the data within the area.
declaration
a statement in a programming language that provides
information to the compiler, such as the structure of a data record,
but does not specify executable code.
derivation
a list of steps that shows how a sentence
in a language is derived from a grammar by application of grammar rules.
deterministic finite automaton
a finite automaton that has at most one transition from a state for each
input symbol and no empty transitions. Abbreviated DFA.
DFA
deterministic finite automaton.
disambiguating rules
rules that allow an ambiguous situation to be resolved to a single
outcome, e.g. rules of operator precedence.
dynamic scoping
a convention in a language, such as Lisp, that a variable can be referenced
by any procedure that is executed after it has become bound and before
it becomes unbound; thus, the scope of the variable can depend on the
execution sequence.
enumerate
to generate all of the members of a set.
enumerated type
a scalar type consisting of a finite set of
enumerated values, e.g. type boolean = (false, true);.
equivalent grammars
grammars that denote the same language.
error production
a grammar production, as in a Yacc grammar,
that is executed if no other production matches the input.
FA
finite automaton.
FAR
finite automaton recognizable.
field
a component part of a data record.
finite automaton
an abstract computer consisting of an alphabet of symbols, a finite
set of states, a starting state, a subset of accepting states, and
transition rules that specify transitions from one state to another
depending on the input symbol. The machine begins in the starting
state; for each input symbol, it makes a transition as specifies by the
transition rules. If the automaton is in an accepting state at the end
of the input, the input is recognized. Also, finite state machine.
Abbreviated FA.
finite automaton recognizable
a language that is regular. Abbreviated FAR.
finite state machine
see finite automaton.
grammar
a formal specification of a language, consisting of a set of nonterminal
symbols, a set of terminal symbols or words, and production rules that specify
transformations of strings containing nonterminals into other strings.
hash function
a deterministic function that converts converts a
symbol or other input to a ``randomized’’ integer value.
hash table
a table that associates key values with data by use of
a hash function.
identifier
a symbol that is used as the name of a variable, type,
constant, procedure, etc.
infix
an expression written with an operator between its operand,
e.g. a + b . cf. prefix, postfix.
intermediate language
an internal language used as the representation of a program during
compilation, such as trees or quadruples. The source language is
translated to intermediate language, then to the object language.