A meta-language operator representing the cardinality of a set
( )
Grouping.
*
(BNF, EBNF, RE) The Kleene closure; zero or more occurances.
::=
(BNF, EBNF) is defined as, may consist of.
The empty string
A metalanguage operator used to enclose a type.
|
(BNF, RE, EBNF) or, or alternatively. (binary operator)
abstract machine
A virtual machine.
abstract syntax
A syntax which defines only the phrase structure of a grammar.
abstract syntax tree
A syntax tree generated by an abstract syntax.
applied occurence
An occurence of an identifier which uses it.
assembler
A translator from an assembly language to the corresponding machine language.
assembly language
A symbolic language closely related to a machine language.
associativity rule
A rule which governs the evaluation of a series of operands with the same precedence.
backpatching
A code generation techniques which flags jumps to unknown locations for later completion (patching).
Backus-Naur Form (BNF)
A formal notation for specifying the production rules of a syntax devised by John Backus and Peter Naur.
BASIC
(Beginner's All-purpose Symbolic Instruction Code) A simple language designed by John G. Kemeny and Thomas E. Kurtz at Dartmouth College in 1963.
best fit
A placement strategy which selects the smallest space from the free list which is large enough.
binding occurence
The occurence of an identifier which declares it.
black box
A system characterized only by its external interface behavior.
block
A physical data record, separated on the medium from other blocks by inter-block gaps.
bottom-up parsing
Parsing in which the syntax tree is built from the terminal symbols toward the root.
class
A composite type which can contain both data and subprograms, and which can participate in inheritance.
code function
A function which translates instances of a source program phrase class into object code.
code generation
The phase of compilation which translates the source program into a semantically equivalent object program.
code movement
The movement of object code outside of the range of the source statement from which it was generated.
code specification
A collection of code functions and code templates
code template
A function which translates forms of a source program phrase class into object code.
common subexpression evaluation
The saving of the results of expression evaluation to be used when the same expression occurs again in the source code.
compiler
A translator from a high level language to a low level language.
concrete syntax
A syntax which defines the concrete details of a grammar.
constant folding
The evaluation of constant expressions at compile time rather than at run time.
constant size representation
Representation in which all values (of a given type) occupy the same space.
contextual analysis
The phase of compilation which analyzes a parsed program according to the contextual constraints of the language.
contextual restraints
The restriction of the use of symbols and words in particular kinds of phrases (context).
cross compiler
A compiler which runs on one machine and produces code for another machine.
decompiler
A translater from a low level language to a high level language.
decorated syntax tree
A syntax tree with added information from contextual analysis.
decoration
Addition of contextual information to the syntax tree.
direct representation
Representation which is itself the value of a data item.
disassembler
A translator from machine language to assembler language.
dynamic binding
A binding which is determined during execution.
dynamic typing
A typing which is determined during execution.
editor
A program allowing text to be entered and changed.
emulator
An interpreter which executes programs expressed in the code of a virtual machine.
entity description
A structure containing details of how an entity will be represented.
error recovery
The handling of an error in such a way that program continuation is possible and useful.
Extended Backus-Naur Form (EBNF)
BNF augmented by the use of regular expressions on the right hand side of productions.
first fit
A placement strategy which selects the first space on the free list which is large enough.
flat block structure
A program structure consisting of disjoint blocks.
formal specification
A specification written in precise notation.
function
A subprogram which returns a value to its point of invocation.
global
having a scope consisting of an entire program.
handle
A value which indirectly locates another value.
hidden register
A register which cannot be accessed explicitly by machine code.
high-level language
A programming language which is not a low-level language.
high-level translator
A translator from one high-level language to another.
identification table
A table which associates identifiers with their attributes.
implementation language
The language in which a program is expressed.
indirect representation
Representation which is not itself the value of a data item, but which is a locator for the value.
infix notation
A notation in which the operation appears between its operands.
informal specification
A specification written in a natural language.
interpreter
A program expressed in one language which executes programs expressed in another language.
interpretive compiler
A program which combines a compiler that produces object code in an intermediate language with an interpreter for that intermediate language.
iterative interpreter
An interpretater which repeats a sequence of fetching, analyzing, and executing.
language
The set of all sentences.
left factorization
The regrouping of expressions so that the repetion of symbols on the left side is eliminated.
left recursion
The condition in which the definition of a symbol begins with the same symbol.
lexical grammar
A grammar which describes tokens.
lifetime
The period during execution of a program in which a variable or function exists.
linker
A program which combines two or more object modules into a single object module or into an executable file.
local
having a scope limited to a program block.
low-level language
Machine language or assembly language.
machine code
Text expressed in machine language.
machine language
A programming language which can be directly executed by a machine.
method
A function contained in a class.
mnemonic
A symbolic label or code reminder that assists the user in remembering a specific operation or command.
monolithic Block Structure
A program structure consisting of a single block.
N-phrase
A phrase of the nonterminal symbol N.
N-tree
A syntax tree with the nonterminal symbol N as its root.
name space
A logical subdivision of a program within which all names must be unique
nested block structure
A program structure in which program blocks can contain other blocks.
non-confusion
Representation in which different values (of a given type) have different representations.
nonterminal symbol
A syntax symbol which is not a terminal symbol.
object
A variable which is the instantiation of a class.
object program
The output text of an assembler or compiler.
parsing
The process of analyzing a source program syntactically to determine its phrase structure.
pass
A complete traversal of the source program.
pass by reference
A parameter passing mechanism which makes the address of the actual parameter available to the subprogram.
pass by value
A parameter passing mechanism which makes only the value of the actual parameter available to the subprogram.
phrase
A string of terminal symbols labeling the terminal nodes (taken from left to right) of a syntax tree.
phrase structure
The way in which a program is formed from phrases and subphrases.
pointer
The address of a value.
portable program
A program which can be (compiled and) run on any machine.
postfix notation
A notation in which the operation appears after its operands.
precedence
A property of operators which affects the order of evaluation of different operators in an expression. affects the order of evaluation of different operators in an expression.
primitive type
A type whose values cannot be decomposed into simpler values.
procedure
A subprogram which does not return a value.
production rule
A rule which define the composition of a nonterminal symbol from symbols of the grammar.
prototype
A quickly developed version of software which is probably incomplete or inefficient.
real machine
A machine which exists physically as hardware.
recursive interpreter
Interpretater which recursively analyzes an entire program and then recursively executes the program.
regular expression
A shorthand for expressing patterns of text. An expression which generates a language from the operations union (alternation), concatenation, and concatenation closure.
regular language
A language which can be generated by regular expressions.
RISC
A computer which implements a small number of machine instructions, all of which are simple.
scope
The portion of a program in which a declaration is in effect.
Scope error
An error caused by a missing or duplicated declaration.
scope rule
A rule which defines the scope for an identifier.
self-embedding
A characteristic of languages in which an N-phrase of the language may contain an N-phrase.
self-embedding language
A language which is self-embedding.
semantics
The branch of language study which treats of meanings of symbols, words, and phrases.
sentence
A phrase of the start symbol.
separator
A value which can be compared to a key to determine the proper block of an index.
source language
The input language of a translator.
source program
The input text of an assembler or compiler.
standard environment
A standard collection of predefined variables, constants, types, procedures, and functions which is included implicitly in programs.
start symbol
A symbol which provides a starting point for a grammar.
starter Set
The set of all terminal symbols which can begin a non-terminal symbol.
static binding
A binding which is determined during compilation.
static typing
A typing which is determined during compilation.
storage class
Property of an item which determines when and in what area of memory a data item is assigned an address, and when it the address is unassigned.
syntactic analysis
The phase of compilation which parses a source program to verify its syntax and to determine its phrase structure.
syntactic error
An error caused by an unexpected, missing, or misplaced symbol, token, or phrase.
syntax
The branch of language study which treats of the combination of words and symbols into phrases.
syntax tree
An ordered labeled tree such that: (a) the terminal nodes are labeled by terminal symbols; (b) the nonterminal nodes are labeled by by nonterminal symbols; and (c) each nonterminal node labeled by N has children labeled by X1, ..., Xn (in order from left to right) such that N ::= X1 ... Xn is a production rule.
target language
The output language of a translator.
terminal symbol
An atomic symbol which actually appears in language text.
token
An atomic symbol of the source program.
tombstone diagram
A graphical representation of the overall function of a system.
top-down parsing
Parsing in which the syntax tree is built from the root toward the terminal symbols.
translator
A program that accepts text expressed in one language and generates semantically equivalent text expressed in another language.
type
A classification of values which defines internal representation, and, by implication, range of possible values.
type checking
verification that the types of variables and expressions are compatible.
type error
An error caused by attempting to apply an operation to an of incorrect or unsupported type.
virtual machine
A machine which is implemented in software.
worst fit
A placement strategy which selects the largest space from the free list (if it is large enough.)