Midterm Vocab Flashcards

1
Q

absolute address

A

the numeric address of a location in memory.
cf. relative address.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

abstract syntax tree (AST)

A

a tree representation of a program
that is abstracted from the details of a particular programming
language and its surface syntax.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

accepting state

A

a state of a finite automaton in which the input string is accepted
as being a member of the language recognized by the automaton.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

address alignment

A

see storage alignment.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

alphabet

A

a set of symbols used in the definition of a language.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

ambiguity

A

a case where more than one interpretation is possible.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

ambiguous grammar

A

a grammar that allows some sentence or string to be generated
or parsed in more than one way (i.e., with distinct parse trees).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

arity

A

the number of arguments of a function.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

associativity

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

abstract syntax tree

A

AST

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

augmented transition network (ATN)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

base address

A

the address of the beginning of a data area. This address is added to
a relative address or offset to compute an absolute address.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

basic type

A

a data type that is implemented in computer hardware
instructions, such as integer or real.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

BNF

A

Backus-Naur Form, a syntax for writing context-free grammars
that describe computer languages.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

bottom-up parsing

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

cascading errors

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

cast

A

to coerce a given value to be of a specified type.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Chomsky hierarchy

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

code generation

A

the phase of a compiler in which executable output code is generated
from intermediate code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

collision

A

in a hash table, a case in which a symbol has the same
hash function value as another symbol.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

compiler

A

a program that translates a source language into an
object language that is executable on a computer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

compiler-compiler

A

a program that produces a compiler for a language from a specification
of the syntax and semantics of the language, e.g. yacc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

concatenation

A

making a sequence that consists of the elements of a first sequence
followed by those of a second sequence.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

context-free grammar

A

a grammar in which the left-hand side of each production consists of a
single nonterminal symbol.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
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.
26
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.
27
derivation
a list of steps that shows how a sentence in a language is derived from a grammar by application of grammar rules.
28
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.
29
DFA
deterministic finite automaton.
30
disambiguating rules
rules that allow an ambiguous situation to be resolved to a single outcome, e.g. rules of operator precedence.
31
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.
32
enumerate
to generate all of the members of a set.
33
enumerated type
a scalar type consisting of a finite set of enumerated values, e.g. type boolean = (false, true);.
34
equivalent grammars
grammars that denote the same language.
35
error production
a grammar production, as in a Yacc grammar, that is executed if no other production matches the input.
36
FA
finite automaton.
37
FAR
finite automaton recognizable.
38
field
a component part of a data record.
39
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.
40
finite automaton recognizable
a language that is regular. Abbreviated FAR.
41
finite state machine
see finite automaton.
42
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.
43
hash function
a deterministic function that converts converts a symbol or other input to a ``randomized'' integer value.
44
hash table
a table that associates key values with data by use of a hash function.
45
identifier
a symbol that is used as the name of a variable, type, constant, procedure, etc.
46
infix
an expression written with an operator between its operand, e.g. a + b . cf. prefix, postfix.
47
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.
48
Kleene closure
zero or more occurrences of a grammar item; indicated by a superscript *.
49
language denoted by a grammar
L(G), the set of strings that can be derived from a grammar, beginning with the start symbol.
50
left-associative operator
an operator in an arithmetic expression such that if there are two adjacent occurrences of the operator, the left one should be done first.
51
left factoring
a method of modifying a grammar to eliminate left recursion.
52
left recursion
in top-down parsing, a grammar rule whose right-hand side begins with the nonterminal symbol on the left-hand side will cause an infinite recursion, called left recursion. Also, describes such a production.
53
leftmost derivation
a derivation in which the leftmost nonterminal of the string is replaced at each step.
54
lexeme
a basic symbol in a language; e.g., a variable name would be a lexeme for a grammar of a programming language.
55
lexical analysis
parsing and conversion to internal form of the simplest elements of a language, usually specified by a regular grammar, such as variable names, numbers, etc.
56
lexical analyzer
a program that performs lexical analysis and outputs the internal form of lexemes.
57
lexical scoping
a convention in a block-structured programming language that a variable can only be referenced within the block in which it is defined and blocks contained within that block; thus, the scope of a variable is completely determined at compile time. cf. dynamic scoping.
58
local ambiguity
a case in which a language construct might be parsed in more than one way; the correct parsing is determined by examining the wider context of the construct. Example: 3.14 vs. 3..14
59
nondeterministic finite automaton
a finite automaton that has multiple state transitions from a single state for a given input symbol, or that has a null transition, not requiring an input symbol. Abbreviated NFA.
60
nonterminal symbol
a symbol that names a phrase in a grammar.
61
object language
the output language of a compiler.
62
offset
the location of data relative to the start of a data area.
63
operand
a data value upon which an operation is performed.
64
operator
a symbol that denotes an operation to be performed on data in an expression.
65
optimization
transformation of a program to produce a program whose input-output behavior is equivalent to that of the original program, but that has lower cost, e.g. faster execution time.
66
overloading
the assignment of multiple meanings to an operator, depending on the type of data to which it is applied; e.g., the symbol + could represent integer addition, floating-point addition, or matrix addition.
67
padding
insertion of an area of unused storage in order to achieve storage alignment.
68
parser
a data structure that shows how a statement in a language is derived from the context-free grammar of the language; it may be annotated with additional information, e.g. for compilation purposes.
69
parsing
the process of reading a source language, determining its structure, and producing intermediate code for it.
70
pass
a phase of a compiler or assembler in which the entire source program (in its original form or some later representation) is processed.
71
phase of compiler
a major section of the compilation process, generally involving examination of the entire program, e.g., syntax analysis, optimization, or code generation.
72
postfix
a way of writing expressions in which an operator appears after its operands: ab+.
73
postorder
an order of visiting trees, in which the children of a node are examined first, in left-to-right order, followed by examination of the node itself.
74
precedence
an ordering of operators that specifies that certain operators should be performed before others when no ordering is otherwise specified.
75
precedence relations
a specification of the relative precedence of a set of operators, i.e., that one operator is less, equal, or greater in precedence than another.
76
predictive parsing
a form of parsing in which the grammar rule to be used for later input is predicted, e.g., on the basis of a keyword that begins a statement.
77
prefix
1. a contiguous set of symbols at the beginning of a string. 2. a way of writing expressions in which an operator appears before its operands: +ab.
78
preorder
an order of visiting trees, in which a node is examined first, followed by recursive examination of its children, in left-to-right order, in the same fashion.
79
production
a rule of a context-free grammar, specifying that a nonterminal symbol can be replaced by another string of symbols.
80
recognizer
a program or abstract device that can read a string of symbols and decide whether the string is a member of a particular language.
81
record
a data area consisting of contiguous component fields, which may be of different types.
82
recursive descent
a method of writing a parser in which a grammar rule is written as a procedure that recognizes that phrase, calling subroutines as needed for sub-phrases and producing a parse tree or other data structure as output.
83
reduce-reduce conflict
in a grammar for a shift-reduce parser, a case in which an input might be reduced by more than one production.
84
reduction step
in shift-reduce parsing, the reduction of items at the top of the stack to a phrase that encompasses those items.
85
regular expression
an algebraic expression that denotes a regular language.
86
regular grammar
a grammar that denotes a regular language; its productions can only have on the right-hand side either a terminal string or a terminal string followed by a single nonterminal.
87
regular language
a language described by a regular grammar, or recognizable by a finite automaton, e.g. a simple item such as a variable name or a number in a programming language.
88
relative address
an address specified by an offset relative to some other address.
89
reserved word
a word in a programming language that is reserved for use as part of the language and may not be used as an identifier.
90
right-associative operator
an operator in an arithmetic expression such that if there are two adjacent occurrences of the operator, the right one should be done first.
91
rightmost derivation
a derivation in which the rightmost nonterminal in the string is replaced at each step. Also, canonical derivation.
92
scalar type
a data type that occupies a fixed amount of storage.
93
semantics
the meaning of a statement in a language. cf. syntax.
94
shift-reduce conflict
in a grammar for a shift-reduce parser, a case in which an input might either be shifted onto the stack or reduced.
95
shift-reduce parser
a parser that operates by alternately shifting input elements onto the top of a stack or reducing a group of elements from the top of the stack to a larger element representing a phrase.
96
start symbol
the initial, or ``sentence'' nonterminal symbol S of a grammar.
97
static
refers to things that can be determined or performed prior to execution of a program, e.g., at compile time. cf. dynamic.
98
static analysis
analysis of a program by examining it, but without running it.
99
static data
data whose address in memory is constant during execution of a program
100
static type checking
checking or determination of the types of variables in a language at compile time. This eliminates the need for dynamic type checking, but requires that a variable have only a single type.
101
storage alignment
1. the requirement of some CPU's that certain data have addresses that fall at even memory word boundaries, so that the data will be contained in whole memory words. 2. in a compiler or assembler, the adjustment of memory addresses so that data will be properly aligned.
102
storage allocation
the assignment of memory locations to data and program code.
103
string
a sequence of symbols or characters.
104
subrange
a contiguous subsequence of a sequence, e.g. 1..10 is a subrange of integer.
105
substring
a sequence of symbols that matches a contiguous subsequence of another string.
106
suffix
a sequence of symbols at the end of a string.
107
symbol table
a data structure that associates a name (symbol) with information about the named object.
108
syntax
the rules by which legitimate statements can be constructed. cf. semantics.
109
syntax analysis
1.the analysis of the form of a statement, such as a programming language statement or command, to determine its component parts; parsing. 2. the syntax analysis phase of a compiler.
110
syntax directed translation
in parsing a programming language, building the translation of a statement or construct in a mechanical way from the translations of its syntactic components.
111
synthesized translation
a method of translating statements, e.g. in a programming language, such that the translation of a phrase is built up from the translations of its components.
112
terminal symbol
a symbol in a phrase structure grammar that is a part of the language described by the grammar, such as a word or character of the language. cf. nonterminal symbol.
113
token
a word, name, or sequence of characters having a meaning as a unit in a language.
114
top-down parsing
a predictive form of parsing, such as recursive descent, in which the parse tree of a statement is constructed starting at the root (sentence symbol).
115
type
a description of a kind of variables, including a set of possible values and a set of operations.
116
type coercion
the automatic conversion of data from its existing type into the type required for an operation.
117
type constructor
an operator that makes a type from other types, e.g. array or record.
118
variable
an element of computer memory that can hold a value.