Save
PROLAN
Save
Share
Learn
Content
Leaderboard
Learn
Created by
Geoff Abas
Visit profile
Cards (49)
Context-free Grammars (a.k.a.
Backus-Naur Form
)
Three formal methods of describing semantics:
Operational
,
Axiomatic, Denotational Semantics
The
syntax
of a programming language is the form of its expressions, statements, and program units.
Its
semantics
is the meaning of those expressions, statements, and program units.
The strings of a language are called
sentences
or
statements.
The small units of the syntax of programming language are called
lexemes.
The
lexemes
of a programming language include its
numerical literals
,
operators
, and
special words
, among others.
Each
lexeme
group is represented by a
name
, or
token.
A
token
of a
language
is a category of its lexemes.
Languages can be formally defined in two distinct ways:
by recognition
and
by generation.
Usually called
grammars
, commonly used to describe the syntax of programming languages.
BNF
of Backus-Naur Form.
If the binding first occurs during run time or can change in the course of program execution it is called
dynamic
Reserved Word
is a special word of a programming language that cannot be used as a name.
Program Variable
is an abstraction of a computer memory cell or collection of cells.
Keyword
is a word of programming language that is special only in certain contexts.
Binding
is an association between an attribute and an entity.
When more than one variable name can be used to access the same memory location, the variables are called
aliases.
The
address of a variable
is the machine memory address with which it is associated
The time at which a binding takes place is called
Binding Time.
A variable's value is sometimes called
R-value.
Name
is a string of characters used to identify some entity in a program
A
metalanguage
is a language that is used to describe another language.
BNF
is a metalanguage for programming language.
The abstraction in a BNF description, or grammar, are often called
nonterminal symbols
, or
simply nonterminals.
The lexemes and tokens of the rules are called
terminal symbols
, or simply
terminals.
A
BNF description
, or
grammar
, is a collection of rules.
The
address
of a variable is sometimes called the
l-value.
The
type
of a
variable
determines the
range
of
values
the
variable
can store and the set of
operations
that are
defined
for
values
of the
type.
The
value of a variable
is the contents of the memory cell or cells associated with the variable.
The term memory cell means
abstract memory cell.
A binding is
static
if it first occurs before run time begins and remains unchanged throughout the program execution.
Program Variable
is an abstraction of a computer memory cell or collection of cells.
Special Words
in programming languages are used to make programs more readable by naming actions to be performed.
Explicit Declaration
is
a statement in a program that lists variable names
and specifies that they are a
particular type.
An
Implicit Declaration
is a means of
associating
variables with
types
through
default
conventions, rather than
declaration
statements.
Another kind of implicit type declaration uses context. This is sometimes called
Type Interference.
Allocation
is a process in which the memory cell to which a variable is bound somewhere must be taken from a pool of a available memory.
Deallocation
is the process of placing a memory cell that has been unbound from a variable back into the pool of available memory.
The
Lifetime
of a
variable
is the time during which the variable is bound to a specific memory location.
See all 49 cards