Ada 95 Quality and Style Guide Index

Index

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

Symbols

'Base, 5.3.3
'Callable, 6.2.3
'Constrained, 5.3.3
'Count, 6.2.3
    protected objects, 6.2.3, 6.4
    tasks, 6.2.3, 6.4
'First, 5.5, 5.10
'Image, 3.4.2
'Last, 5.5, 5.10
'Length, 5.5, 5.10
'Pos, 3.4.2
'Pred, 3.4.2
'Range, 5.5, 5.10
'Size,5.3.3
'Storage_Size, 7.3
'Succ, 3.4.2
'Terminated,6.2.3, 6.3.2
'Val, 3.4.2
'Value, 3.4.2

A

abbreviation, 3.1.4, 3.2.1, 3.5
    capitalization, 3.1.3
    renames clause, 5.7.2, 5.10
    reusability, 8.1.1
abnormal termination, 6.3.4
abort

    affects 'Count, 6.2.3
    completion point, 6.3.3
    portability, 7.4.6
    statement, 6.3.3, 7.4.6
    task, 7.4.6
abstract data object, 8.3.5
abstract data type, 4.1.5, 62, 8.3.5
abstract data types, 8.3.5, 8.5, 9.2.4
abstract state machine, 8.3.5
abstract subprograms, 9.2.4
abstract types, 9.2.4, 9.3.1, 9.6
abstraction, 5.8.4
    affect on naming, 8.1.1, 8.5
    complete functionality, 8.3.1
    data modeling, 5.4
    enhanced by subprogram, 4.1.3, 4.4
    includes exception, 4.3.1
    name, 3.2.4, 3.5
    protect with exception handler, 5.8.4, 5.10
    supported, 4.1
    using abstract types, 9.2.4, 9.6
    using constrained subtype, 5.6.3
    using nested record, 5.4.4
    using private type,5.3.3
    using types, 5.3.1
accept, 6.2.5, 6.4
    blocking, 6.1.7
    causing deadlock, 6.3.2, 6.4
    closed, 6.2.2, 6.4
    end statement, 5.1.4, 5.10
    indentation, 2.1.2
    minimize, 6.2.1, 6.2.6, 6.4
    rendezvous, 6.2.1, 6.4
    selective, 6.2.1, 6.2.2, 6.4
access, 5.4.5, 5.10
    affects equality, 5.7.5
    I/O portability, 7.7.4
    portability, 7.6.4
    to subprogram, 7.3
access function, 4.1.8
access value, 4.1.6, 4.4
accuracy
    analysis, 7.2.3
    constraints, 7.2.4
    floating point, 7.1, 7.2.3, 7.8
    fraction, 3.1.2
    greater, 7.2.1, 7.8
    model, 7.2.2
    of relational expression, 5.5.6
    portability, 7.2.5
acronym
    capitalization, 6.3.1
active iterator, 8.3.6, 8.5
actual parameter, 5.2, 5.10
    anonymous, 5.3.2
Ada.Command_Line
    and portability, 7.1.4
    versus POSIX, 7.1.4
Ada.Strings_Bounded, 4.2.2
adaptability, 8.3, 8.5
address clause, 5.9.4
adjective
    for boolean object, 3.2.3, 3.5
aggregate, 5.6.10
    function calls in, 4.1.4
    performance, 10.6.1, 10.8
algorithm
    comment in header, 3.3.4
    concurrent, 4.1.9, 4.4
    encapsulated in generic, 8.3.4
    portability, 7.6, 7.8
alias
    of dynamic data, 5.4.5
    using address clause, 5.9.4, 5.10
alignment
    and nesting, 5.6.1
    declaration, 2.1.4
    parameter modes,2.1.5,2.2,
    vertical, 9, 13, 2.1.4,2.1.5,2.2,
allocate
    dynamic data, 5.4.5, 5.10
    dynamic task, 6.1.5, , 6.4
ambiguous
    use clause,5.7.1, 5.10
anonymous type, 5.3.2
    protected objects, 6.1.4, 6.4,
    task, 6.1.4,
anticipated change
    adaptability, 8.3.1
    anonymous task, 6.1.4,
    comment in header, 3.3.3
    encapsulate, 4.1.5, 4.4
    parameter mode, 5.2.4,
apostrophe
spacing, 2.1.1
application domain
abbreviation, 3.1.4, 3.5
abbreviation affects reusability, 8.1.2
application specific
    literal, 31
application-independent
name, 8.1.1
array
anonymous type, 5.3.2, 5.10
attribute, 5.5
constrained, 75, 227, 10.8
function calls in initialization, 4.1.4
indexing, 227, 10.8
parallel
do not use, 5.4.2
parameter passing, 8.2.2, 8.5
performance, 227, 228, 230, 10.8
range, 5.5
slice, 5.6.2, 5.10
unconstrained, 8.2.2, 8.5
assignment
conditional, 230, 10.8
for private type,5.3.3
reduced by aggregate, 5.6.10, 5.10
assumption
document, 8.2.3, 8.5
documented through generic parameter, 8.3.3
minimizing, 8.2.3, 8.5
asynchronous
'Count, 6.2.3
entity, 115, 6.4,
attribute
'Base,5.3.3
'Callable, 6.2.3
'Constrained,5.3.3
'Count, 6.2.3
'First, 5.5, 5.10
'Image, 3.4.2
'Last, 5.5, 5.10
'Length, 5.5, 5.10
'Pos, 3.4.2
'Pred, 3.4.2
'Range, 5.5, 5.10
'Size,5.3.3
'Storage_Size, 7.3
'Succ, 3.4.2
'Terminated, 6.2.3
'Val, 3.4.2
'Value, 3.4.2
implementation-specific, 7.7.5
in generic, 8.2.4, 8.5

B

binary operator
spacing, 9
blank lines, 16
for goto statement, 5.6.7
for label, 5.6.7
return statement, 5.6.8, 5.10
block
indentation, 2.1.2
localizing exception, 5.8.4, 5.10
marker comment, 3.3.7, 3.3.7, 3.5
name, 66
nesting, 66, 5.10
performance, 226
statement, 93
to minimize suppress, 105, 5.10
use clause,5.7.1, 5.10
blocking
not busy waiting, 6.1.7
with priority, 122
within protected object, 107
body
comment, 3.3.4
end statement, 5.1.4, 5.10
header
as pagination, 17
hide interface to foreign code, 148
hide Unchecked_Conversion, 5.9, 5.10
name repeated in begin, 3.3.7, 3.5
task, 6.3.3, 139
boolean
function name, 3.2.5, 3.5
object name, 3.2.3-3.5
boundary value, 5.2.4, , 5.10
bounded error, 5.9
busy wait, 122, 6.4
created with priorities, 6.2.5

C

Calendar
portability, 7.4.3
capitalization, 6.3.1
in numeric literal, 3.1.2, 3.4.2
case statement, 5.4.3, 88
indentation, 2.1.2
marker comment, 3.3.7, 3.5
nesting, 5.6.1
performance, 229, 10.8
use constrained subtype, 5.6.3
child package. See package, child
class-wide operation, 212, 9.6
class-wide type, 203, 205, 9.3.1, 216, 9.6
clause
address, 5.9.4
context
minimize, 4.2, 4.4
visibility, 4.2.3, 64
length
for dynamic data, 5.4.5, 5.10
renames, 96
representation, 7.3, 7.6, 7.8
instead of enumeration, 43, 3.5
use,5.7.1, 96, 5.10
closing file
portability, 162
code
formatting, 9
cohesion, 54
colon
alignment, 2.1.4, 15
spacing, 10
comma
spacing, 10
comment, 3.1.2, 31
body header, 3.3.4
data, 38
distinct from code, 40, 3.5
do not repeat, 38, 3.5
exception, 38, 3.5
header, 32, 3.5
file, 33
for group of routines, 3.3.4
purpose, 35
when to omit, 37
label, 5.6.7
machine code insert, 159
marker, 3.3.7
minimize, 32
numerical analysis, 7.2.3
program specification, 3.3.3, 3.5
reduced by naming, 3.2.1, 3.2.6 3.4.2, 66, 5.2, 5.10
reduced by static expression,3.2.6
return statement, 5.6.8, 5.10
statement, 40
tasking implementation, 4.3.1
to document portability, 144
trailing
alignment, 2.1.4
type, 38, 3.5
comments
to document portability, 7.2.2
communication
complexity, 6.2.6
protected objects, 6.2.1
tasks, 6.2.1
compilation
affected by Inline, 236
conditional, 195
separate, 4.1
complex communication, 6.2.6
complex data
comment, 38, 3.5
concurrency, 113, 225. See task. See task
affects exception behavior, 99
concurrent algorithm, 4.1.9, 4.4, 115, 6.4,
conditional compilation, 195
conditional entry
call, 4.3.1, 6.2.5, 6.4
indentation, 2.1.2
conditional expression
in while loop, 5.6.4, 5.10
configuration pragmas, 49
constant,3.2.6
declaration
alignment, 2.1.4
in static expression, 8.2.1
to avoid use clause, 96
to reduce nesting, 5.6.1
type of,3.2.6
constrained, 7.1
constraint, 43, 5.3.1 , 5.10
constraint check
for generic formal, 175
constraint checking, 175
constructor, 4.1.6, 4.4, 212
context
dependency, 4.1.8, 4.4
of exceptions, 4.3.1, 64
to shorten names, 3.2.1
context clause
generic needs elaboration, 193, 8.5
indentation, 12
minimize, 4.2, 4.4
per line, 18
reduced using generic parameter, 8.4.2, 8.5
use type,5.7.1, 5.10
visibility, 4.2.3, 64
continuation condition
for while loop, 5.6.4, 5.10
continuation line
indentation,2.1.1,13, 19
controlled types, 206, 9.6
conversion
of a private type,5.3.3
rational fraction, 3.1.2
type, 5.3.1
unchecked, 5.9, 161
copyright notice, 33
coupling
data, 54
due to pragma, 193
reduced using generic parameter, 8.4.2
cyclic activity, 4.1.9, 4.4
cyclic executive
termination, 6.3.1

D

dangling reference, 5.4.5, 5.10
data
abstract type, 8.3.5, 8.5
comment, 38
coupling, 54
dynamic, 5.4.5
grouped in package, 54, 4.4
in algorithm, 8.3.4, 8.5
iterator for complex, 8.3.6, 8.5
protected, 6.2.4
representation, 7.6, 7.8
shared, 4.1.8, 6.2.4, 6.4
structure, 5.4, 5.10
structures, 227
Unchecked_Conversion, 5.9
data-driven program, 195
dead code, 195, 8.5
deadlock, 4.3.1
eliminate, 122
deallocation, 5.4.5, 5.10
decimal types
and the Information Systems annex, 153
declaration
alignment, 2.1.4
anonymous task, 6.1.4,
array size, 8.2.2, 8.5
blank lines, 16
constant, 3.2.6 3.5
constrained subtype, 5.6.3
digits, 7.2.1, 7.8
floating point, 7.2.2
function call in, 105, 5.10
grouping, 4.1.5, 4.4
hiding, 5.7.2
minimize, 4.2, 4.4
named number, 3.2.6 3.5
per line, 18
range, 7.2.1, 7.8
record
for heterogeneous data, 75, 5.10
renames, 3.1.4, 96, 5.10
type, 3.2.1, 3.4
variable, 54, 4.4
within block, 93, 5.10
default mode, 5.2.4,
default parameter, 5.2.3
delay
drift, 122, 6.1.7
in selective accepts, 6.2.5, 6.4
inaccurate, 122, 6.4
portability, 155
statement, 122, 6.4
statements, 155
to avoid deadlock, 6.3.2, 139
delimiter
spacing, 9, 19
dependency
affects reusability, 191, 8.5
comment about, 3.3.3
context, 4.2, 4.4
reduced using generic parameter, 193
derived type, 3.4, 3.5, 5.2.4,
design
for reusability, 8.0
impact of typing, 43
impact on nesting, 5.6.1
tradeoffs, 4
uses data representation, 7.6, 7.8
digits declaration, 7.2.1, 7.8
Direct_IO,5.3.3, 106, 7.7.4
import private type, 8.3.3
discrete
affects equality, 5.7.5
discriminant
access, 213, 9.6
of a private type,5.3.3
protected objects, 117, 118, 6.4,
tasks, 117, 6.4,
discriminants
tasks, 118
dispatching, 188, 203, 205, 206, 210, 212, 9.6, 231, 10.8
documentation
exception in abstraction, 4.3.1, 64
generic formal parameter, 8.1.2, 8.5
hidden task, 176, 8.5
infinite loop, 5.6.6
invalid state, 8.2.7
object value, 3.2.3, 3.5
of assumption, 8.2.3, 8.5
of implementation dependency, 146, 164
of iterator behavior, 8.3.6, 8.5
of machine code, 159
of numerical analysis, 7.2.2, 7.8
of system call, 162
portability, 144, 164
table-driven code, 196
using named number, 8.2.3
drift
delay, 122
Duration, 143, 164
portability, 7.4.3
dynamic data, 5.4.5
adaptability, 8.3.1, 8.5
deallocation, 103
dynamic storage, 7.3, 7.8
dynamic task, 6.1.5,

E

Elaborate, 106
elaboration, 105, 5.10, 8.4.3
of value, 3.2.6 3.5
else clause
comment, 3.3.7, 3.5
nesting, 5.6.1
else part
in selective accept, 6.2.5, 6.4
open alternative, 6.2.3
to avoid deadlock, 6.3.2, 139
elsif clause
nesting, 5.6.1
encapsulation, 4.1.5, 4.4
implementation dependency, 146, 7.6
of algorithm in generic, 8.3.4
supported, 4.1
end statement
name, 5.1.4
pagination, 17, 19
entry
address clause, 5.9.4, 5.10
attribute, 6.2.3, 6.4
call, 59, 6.2.5, 6.3.5, , 6.4, 139
avoiding Tasking_Error, 6.2.3, 6.4
circular, 6.3.5, , 139
conditional, 6.2.5, 6.4
named association, 5.2, 5.10
conditional, 4.3.1, 6.2.5, 6.4
default parameter, 5.2.3, 5.10
exceptions raised in, 4.3.1, 64
hiding, 59
indentation, 2.1.2
interrupt, 5.9.4
minimize, 132
minimize accepts, 6.2.6, 6.4
name, 3.2.4, 3.5
parameter list, 5.2, 5.10
parameter mode, 5.2.4, 5.10
queue
'Count, 6.2.3
not prioritized, 120, 6.4
timed, 4.3.1, 6.2.5, 6.4
affects 'Count, 6.2.3
enumeration
alignment, 2.1.4
in case statement, 88, 5.10
literal,5.7.1, 5.10
representation clause, 161
type, 43, 5.4.4
enumeration types
representation clauses, 3.5
equality, 5.7.5, 5.10, 8.3.4, 214, 223
for private type,5.3.3
overload operator, 5.7.4
erroneous execution, 5.9, 5.10
not portable, 141
error
files, 7.7.5
unrecoverable
use exception, 4.3.1
evaluation order
parenthesis, 84, 5.10
select statement, 7.4.4
exception, 4.3.1, 64, 99, 5.10, 210, 9.3.1, 9.6
avoiding, 99, 5.10
cause, 5.8.4
comment, 3.3.3, 38, 3.5
do not propagate, 4.3.1, 64
do not raise, 4.3.1, 64
handler, 4.3.1, 64, 99, 100, 5.8.4, 5.10, 5.10, 6.2.2, 6.4
during rendezvous, 6.2.2, 6.4
for Storage_Error, 5.4.5, 5.10
in block, 93, 5.10
in task body, 6.2.1, 6.3.3, 6.4, 139
reusability, 176, 8.5
to avoid termination, 132, 6.4
implementation-defined, 5.8.4, 5.10, 157
in initialization, 106
keep error separate, 4.3.1
numeric error, 7.1
part of abstraction, 4.3.1
portability, 157, 7.8
predefined, 5.8.4, 5.10, 5.10, 157
Program_Error, 6.2.2, 6.2.3, 6.4
erroneous execution, 5.9
propagation, 5.8.3, 5.10, 176, 8.5
rendezvous, 6.2.3
reusability, 176
Storage_Error, 5.4.5, 5.10
suppress, 105
Tasking_Error, 6.2.2, 6.2.3, 6.4
user-defined, 5.8.3, 5.10
execution pattern
portable, 155, 7.8
exit statement, 5.1.3, 5.6.4, 5.6.5, 5.10
conditional, 86
in loop, 65, 5.6.4, 5.10
exit status
setting, 6.3.6 139
export
overloading in generic, 175, 8.5
expression, 5.5, 5.10
aggregate, 5.6.10
alignment, 13, 15
evaluation
portability,7.2.2 7.2.2
function calls in, 4.1.4
logical, 5.5.5
nesting, 86, 5.10
numeric, 7.2, 7.8
order dependency, 7.2.1, 7.8
parenthesis, 84
relational, 84, 5.5.6, 5.10
slice, 5.6.2
spacing, 10
static, 3.2.6 3.5, 172, 8.5
use named association, 5.2, 5.10

F

family of parts, 8.4.4
file
closing, 162
header, 33
naming convention, 48
naming conventions, 4.1, 4.4
organization, 4.1, 4.4
finalization, 8.3.1, 206, 9.2.3, 9.6
complete functionality, 8.3.1, 8.5
fixed point
in relational expression, 86
precision, 143, 164
flag
in complex loop, 5.6.4
in while loop, 5.6.4
naming, 84, 5.10
floating point
accuracy, 7.2.3
affects equality, 5.7.5
arithmetic, 7.2.1, 7.8
in relational expression, 86
precision, 143, 7.2.3, 164
relational expression, 152, 7.8
flow of control, 99
for loop, 5.6.4, 5.10
indentation, 2.1.2
is bounded, 5.6.7
foreign code, 148
Form
parameter in predefined I/O, 162
formal parameter, 5.2, 5.10
anonymous, 5.3.2
generic, 8.1.2
name, 5.2, 5.10
formatter,2.1.1,13, 2.1.4,2.1.5, 16, 17, 18,2.2, 3.1.2, 3.1.3
FORTRAN, 5.4.2
equivalence, 5.9.4, 5.10
fraction, 3.1.2
free list, 5.4.5
function
access, 4.1.8
body
indentation, 12
call
in declaration, 105, 5.10
named association, 5.2, 5.10
recursive, 91, 5.10
spacing, 9
default parameter, 5.2.3, 5.10
end statement, 5.1.4, 5.10
generic, 8.3.2, 8.4.2, 8.5
Inline, 236, 10.8
interrogative
to avoid exception, 4.3.1, 64
name, 3.2.4, 3.5
overload, 5.7.3, 5.10
parameter list, 5.2, 5.10
return, 5.6.8
side effect, 4.1.4, 4.4
specification
indentation, 12
to reduce nesting, 5.6.1
use of, 4.1.4
functionality
complete, 8.3.1

G

garbage collection
of dynamic data, 5.4.5
Unchecked_Deallocation, 103
generic, 8.3.2, 8.4.2, 8.5, 218, 223
abstract data object, 8.3.5
abstract data type, 8.3.2
abstract data types, 8.3.2, 8.5
families, 8.4.4, 8.5
formal derived types, 9.2.4, 9.6
formal package, 8.4.1, 8.5
formal packages, 193
formal parameters, 176, 8.5
formal subprograms, 216
formal type, 8.3.5, 8.5
instance
indentation, 12
name, 3.2.4, 3.5, 8.1.1, 8.5
named association, 5.2, 5.10
package, 4.2.2, 175, 8.5
parameter, 8.1.2, 8.5
accessed within task, 176, 8.5
indentation, 12
to reduce coupling, 8.4.2
parameters, 8.4.2, 8.5
reusability, 8.0
robustness, 8.2.3
subtype in formal, 8.2.4, 8.5
to encapsulate algorithm, 8.3.4
when formal raise exception, 176, 8.5
generics, 191, 8.5, 216
global data
access, 56, 4.4
global effect
comment, 3.3.3, 3.5
goto, 5.6.7
simulated by exception, 100
guard
causing Program_Error, 6.2.2, 6.4
evaluation order, 7.4.4, 7.8
nonlocal variable, 6.2.4, 6.4
referencing 'Count, 6.2.3
guideline
violation, 32

H

header
file, 33
heterogeneous data, 75, 203
hidden task, 59, 176
hiding
declarations, 5.7.2
horizontal spacing, 9

I

identifier
abbreviation, 3.1.4, 3.5, 8.1.2, 8.5
capitalization, 6.3.1
constant, 3.2.6 3.5
naming convention, 3.1.4
numeric,3.2.6
object, 3.2.3, 3.5
reusability, 8.0, 8.5
type, 3.2.1
use of underscore, 3.1.1
visibility, 4.1.8, 4.4
if statement
avoid exit, 5.6.5, 5.10
indentation, 2.1.2
marker comment, 3.3.7, 3.5
nesting, 5.6.1
positive name, 84
immediately
undefined, 6.2.5
implementation
added feature, 146
comment in header, 3.3.4
encapsulate decisions, 4.1.5, 4.4
hide detail, 56, 4.4
implementation dependent, 7.6, 7.8
at run time, 161, 167
encapsulation, 146
global assumptions, 143
storage specification, 7.3
tentative rendezvous, 6.2.5
implementation-defined
exception, 5.8.4, 5.10, 157
System constant, 159
Unchecked_Conversion, 103
implementation-specific
attribute, 7.7.5
pragma, 7.7.5
in
alignment, 15
in out
used in generic formal, 8.2.4, 8.5
indentation, 10
affects abbreviation, 3.1.4
of declarations, 2.1.4, 19
independence, 31, 191
inequality
for private type,5.3.3
infinite loop, 91, 5.10
information hiding, 4.1, 4.1.5, 4.4
aids adaptability, 8.3.1
effects exception handling, 4.3.1
enforced through visibility, 4.2
using iterator, 189
using private type,5.3.3
inheritance, 201
mixin, 8.3.3, 191, 8.5, 201, 218
multiple, 201, 9.2.4, 220
example, 220
reusability, 8.0
initialization, 105, 8.3.1, 206, 9.2.4, 213, 9.6
in declaration
alignment, 2.1.4
performance, 226, 10.8
procedure, 8.3.1, 8.5
input/output
on access type, 7.7.3
portability, 162, 167
stream_IO, 162
instantiation
name, 3.2.4, 3.5, 8.1.1, 8.5
named association, 5.2, 5.10
reusability, 8.3.2, 8.5
Integer
portability, 143, 164
interface
access to device, 4.1.10, 4.4, 114, 6.4,
comment, 3.3.3, 3.5
implementation-defined exception, 157, 7.8
minimize, 4.2
parameter list, 5.2, 5.10
portability, 7.6
to a device, 4.1.5, 4.4, 75, 5.9.4, 5.10, 5.10
to device data, 7.6
to foreign code, 148, 159
to foreign language, 159, 7.8
undocumented, 56
interrupt
entry, 5.9.4
handler, 233, 10.8
implementation dependent, 146, 7.8
scheduling portability, 7.4.6, 7.8
interval
delay, 6.1.7
iteration
bound, 91
using loop statement, 5.6.4, 5.10
iterator, 8.3.6, 189

L

label, 5.6.7
delimiter, 10
indentation, 2.1.2
late initialization, 226, 10.8
length
line, 19
length clause
for dynamic data, 5.4.5, 5.10
library
reuse, 5.7.2
separate compilation, 4.1, 4.2.2, 62
library unit
child, 4.4. See also package, child.
limited private type
I/O difficult, 8.3.3
versus private, 5.3.3, 8.3.2
line
continuation
indentation,2.1.2,19
length, 19
multiple, 18, 19
statements per, 18, 19
literal
avoid in generic, 8.2.4, 8.5
enumeration,5.7.1, 5.10
linear independence of, 3.2.6 3.5
numeric, 3.1.2, 3.5, 5.5, 5.10
self-documenting, 31
string, 9
use named association, 5.2, 5.10
localize
declaration, 93, 5.10
implementation dependency, 146
scope,5.7.1, 5.10
logical operator, 5.5.5
loop, 5.6.4
array slices, 5.6.2, 5.10
bound, 91, 5.10
busy wait, 122, 6.2.5, 6.4
conditional exit, 86
exit, 5.6.5, 5.10
using relational expression, 86
indentation, 2.1.2
infinite, 91, 5.10
marker comment, 3.3.7
name, 65, 5.1.4, 5.10
nesting, 65, 5.1.3, 5.10
lower case, 6.3.1

M

machine code
not portable, 159
machine dependency
encapsulated, 4.1.5, 4.4
main program, 144
marker comment, 3.3.7
membership test
of a private type,5.3.3
memory management
of dynamic data, 5.4.5
Unchecked_Deallocation, 103
mode
alignment,2.1.5,2.2,
explicit, 5.2.3, 5.10
model
task, 115, 6.4,
model interval
affects equality, 5.7.5
affects relational expression, 86, 152
modular types, 82, 231, 234
modularity, 4.1.6
multiple inheritance, 218
multiple return statement, 93
multiprocessor, 4.1.9, 4.4, 117

N

name, 3.2.1
abbreviation, 3.1.4, 3.5, 8.1.2, 8.5
block, 66
Boolean, 84, 5.10
capitalization, 6.3.1
convention, 3.1.4, 3.2.4
end statement, 5.1.4
flag, 84, 5.10
formal parameter, 5.2, 5.10
fully qualified, 3.1.4, 96, 5.10
loop, 65, 5.1.3, 5.10
nested record, 5.4.4, 5.10
number, 3.2.6 3.5
object, 3.2.3
overloading
in generic, 175, 8.5
parameter in predefined I/O, 162
predefined, 3.3.7, 3.5
program, 3.2.5
qualified, 4.2.2
repeated in begin, 3.3.7, 3.5
repeated in header, 3.3.3, 3.3.4, 3.5, 3.5
reusability, 8.0
simple, 3.1.2, 3.4.2
state, 84, 5.10
subtype, 3.4, 3.5
type, 3.2.1, 3.4, 3.5
use positive form, 84, 5.10
named association, 5.2, 5.2.3
in aggregate, 5.6.10
named number, 3.2.6 172
negative logic
in name, 84, 5.10
nesting, 86
affects abbreviation, 3.1.4
block, 66, 5.10
control structure, 86, 5.10
expression, 86, 5.10
indentation,2.1.2,19
initialization exception, 106
loop, 65, 5.1.3, 5.10
package, 4.2.2
record, 5.4.4
new
as an allocator, 5.4.5
nonterminating
tasks, 6.3.1, 6.4
normal termination, 6.3.2
noun
as function name, 3.2.5, 3.5
as identifier, 3.2.3, 3.5
for record component, 3.2.3, 3.5
to describe abstraction, 3.2.4, 3.5
numeric
conversion, 3.1.2
encoding, 43, 3.5
expression, 7.2, 7.8
in relational expression, 5.5.6, 5.10
literal, 3.1.2, 3.4.2, 5.5, 5.10
named,3.2.6
type, 7.2, 7.8

O

object
identifier, 3.2.3, 3.5
initialization, 105, 5.10
name, 3.2.3
operating system
dependence, 161, 167
operator
alignment, 13, 2.1.4, 19
bit-wise, 82
equality, 5.7.5
logical, 5.5.5
overload, 5.7.4
performance, 228, 10.8
precedence,2.1.2,84, 5.6.1
renamed, 96, 5.10
short circuit, 5.5.5
spacing, 9
optimizing compiler
values not checked, 106
optional parameter, 5.2, 5.10
order
of arguments in aggregate, 5.6.10, 5.10
of elaboration, 8.4.3
of evaluation, 4.1.44.1.4, 5.5.5, 149
in expression, 84, 5.10
others clause
in case statement, 88, 5.10
in exception, 4.3.1, 64, 100
in task body, 6.3.4, 139
out
alignment, 15
overload
equality, 5.7.5
in generic, 175
operator, 5.7.4
subprogram, 5.7.3
type name, 3.4, 3.5
use clause,5.7.1, 5.10

P

package, 4.1.5
abstract data type, 5.5
Ada.Asynchronous_Task_Control, 236
Ada.Streams.Stream_IO, 7.7.4
Ada.Strings_Bounded, 4.2.2
Ada.Synchronous_Task_Control, 236
Ada.Unchecked Deallocation, 161
portability, 161

body, 6.1.1, 6.4,
comment, 3.3.4
file name, 4.1
for different environment, 146, 7.8
hide Unchecked_Conversion, 5.9, 5.10
hide Unchecked_Deallocation, 103, 5.9.3, 5.10
indentation, 12
multiple implementation, 48
using pragma Interface, 159, 7.8
Calendar
portability, 7.4.3
child, 4.1.6, 53, 4.4, 8.4.1, 8.5, 213, 217, 223
cohesion, 54, 4.4
comment, 3.3.3
coupling, 54
dependency, 56
Direct_IO, 106
document nonportable, 144, 164
end statement, 5.1.4, 5.10
generic, 4.2.2, 8.3.2, 8.4.2, 8.5
implementation-defined exception, 157, 7.8
interface, 146, 164
minimize interface, 4.2
name, 3.2.4, 3.5
named in use clause,5.7.1, 5.10
nested, 4.2.2, 214
predefined
type name, 3.2.1, 3.4.2
vendor supplied feature, 146, 7.8
private, 5.3.3, 114, 6.4,
private child, 4.1.6, 53, 56, 4.2.2, 4.4
public child, 4.1.6, 4.4
Sequential_IO, 106
specification, 4.2, 4.2.2, 4.4
exception declaration, 4.3.1, 64
file name, 4.1
indentation, 12
pagination, 17, 19
portability, 146, 164
Standard, 3.3.7, 3.5
predefined numeric type, 7.2.1, 7.8
System
portability, 7.6
portability of Tick, 7.4.3
vendor supplied, 146, 7.8
pagination, 17, 3.3.7, 3.5
paragraphing, 10
parameter
adding to list, 5.2.3, 5.10
aggregate, 5.6.10, 5.10
alignment, 15
anonymous, 5.3.2
array, 8.2.2, 8.5
declaration
per line, 18
default value, 5.2.3
for main program, 144, 164
formal name, 5.2, 5.10
generic formal, 8.1.2
generic reduces coupling, 8.4.2
in predefined I/O, 162
list, 5.2, 5.10
mode, 5.2.4, 5.10
alignment,2.1.5,2.2,
name in header, 3.3.3
named association, 5.2, 5.10
number, 4.1.8, 4.4
optional, 5.2, 5.10
passing mechanism, 7.1.8, 8.2.7
with exception, 8.2.7
profile, 5.7.3, 5.10
size, 8.2.2, 8.5
unmodified with exception, 176, 8.5
parameter type
alignment, 15
parenthesis, 84
alignment,2.1.5,2.2,
spacing, 10
superfluous, 10
parser
use table-driven program, 195
part family, 8.4.4
passive iterator, 8.3.6, 8.5
performance
access to data, 4.1.8
aspects, 225
comment in header, 3.3.3, 3.5
measuring, 225
named number,3.2.6
period
spacing, 10
persistent object, 56
plain loop, 5.6.4, 5.10
pointer. See access.
to task, 120
polymorphism, 5.4.3, 197, 201, 206, 216, 223
portability,2.2, 4.1.6, 141
and obsolescent features, 7.1
assumptions, 143
target platforms, 143
comment in header, 3.3.4
execution pattern, 155
of relational expression, 86
order dependency, 149
principles, 141
positional association, 5.2.3, 5.6.10, 5.10
positive logic
naming, 84
pragma
Atomic, 6.2.4, 6.4
configuration, 49, 62
Discard_Names, 237, 10.8
Elaborate, 106
Elaborate_All, 8.4.3
Elaborate_Body, 193, 8.5
implementation-specific, 7.7.5
Inline, 236, 10.8
Interface
portability, 7.6
to foreign code, 159, 7.8
introduce coupling, 193
Preelaborate, 8.4.3, 237, 10.8
Priority, 120
portability, 7.4.6, 7.8
Pure, 8.4.3, 237, 10.8
Restrictions, 237, 10.8
Reviewable, 237, 239
Shared
portability, 157
Suppress, 49, 105, 237, 239
Volatile, 6.2.4, 128, 6.4
precedence of operator, 84, 5.6.1
precision
fixed point, 143, 164
floating point, 143, 7.2.2, 164, 7.8
predefined
exception
do not raise, 4.3.1, 64
handle, 5.8.2, 5.10
portability, 157
I/O parameter, 162, 167
predefined type, 3.4, 3.5
as a name, 3.2.1, 3.4.2
numeric, 149
predicate
as function name, 3.2.5, 3.5
for boolean object, 3.2.3, 3.5
preemptive scheduling, 7.4.6
prioritized activity, 4.1.8, 4.4
priority, 120
can create busy wait, 6.2.5
ceiling priority, 115, 120, 122, 6.4
mutual exclusion, 122
portability, 7.4.6, 7.8
priority ceiling blocking, 122
priority ceiling emulation, 122
priority inversion, 122
protected objects, 120, 6.4
sequence of execution, 122
tasks, 120, 122, 6.4
priority inversion, 122
private type, 5.3.3, 18.3.3, 8.5
equality, 5.7.5, 5.10
for numeric type, 7.2.1, 7.8
versus limited, 8.3.3
problem domain
model with task, 115, 6.4,
procedure
as main program, 144, 164
call
named association, 5.2, 5.10
recursive, 91, 5.10
default parameter, 5.2.3, 5.10
end statement, 5.1.4, 5.10
generic, 8.3.2, 8.4.2, 8.5
Inline, 236, 10.8
name, 3.2.4, 3.5
overload, 5.7.3, 5.10
parameter list, 5.2, 5.10
parameter mode, 5.2.3, 5.10
return, 5.6.8
to reduce nesting, 5.6.1
processor
multiple, 117
virtual, 117
program
body
indentation, 12
grouping, 4.1.5, 4.4
name, 3.2.4
pagination, 17, 19
structure, 226
termination, 5.8.3, 6.3.1
unit, 8.4.1
visibility, 4.2.3, 64
Program_Error, 6.2.2, 6.4
erroneous execution, 5.9
project
abbreviation, 3.1.4
entry name, 29
prologues
as pagination, 17
propagation, 5.8.3
exception, 5.8.4, 176, 8.5
protected objects, 107
and interrupt handlers, 114, 115, 6.4,
and tagged types, 6.1.8, 6.4
communication, 6.2.1, 6.2.2, 6.4
entries, 6.2.3, 6.4
'Count, 6.2.3, 6.4
execution overhead, 6.2.5
mutual exclusion, 114, 6.4,
performance, 233, 10.8
reusability, 6.1.8
synchronization, 114, 6.2.2, 6.2.5, 6.2.5, 6.4,
versus rendezvous, 6.2.5, 6.2.5, 6.4

Q

qualified name, 4.2.2, 96, 5.10
queue
entry not prioritized, 122

race condition, 4.3.1, 6.3.1
attribute, 6.2.3
in tentative rendezvous, 6.2.5
priority, 122
with shared variable, 6.2.4
race conditions
avoiding, 6.4, , 139
radix, 3.1.2, 3.5
raise statement
in abstraction, 4.3.1
range
constraint, 5.2.4, , 5.10
declaration, 7.2.1, 7.8
Duration, 143, 164
in case statement, 88, 5.10
scalar types, 3.4, 3.5
subexpression, 7.2.6
values, 5.5
real operand
in relational expression, 5.5.6, 5.10
recompilation
reduced by separate file, 48
record
assignment, 5.6.10, 5.10
component
name, 3.2.3, 3.5
heterogeneous data, 75
indentation, 12
map to device data, 75, 5.10
nesting, 5.4.4
performance, 227, 228, 10.8
variant, 5.4.2, 5.4.3
with access type component, 5.4.5, 5.10
recursion
bound, 91
relational expression(s), 84, 5.5.6, 5.10
portability, 152
renames clause, 3.1.4, 96
declare in block, 93, 5.10
for a type, 43
rendezvous
efficient, 6.2.1, 6.4
exception during, 6.2.2, 6.4
tentative, 6.2.4
versus shared variable, 157, 7.8
with exception handler, 132, 6.4
repeat until
how to simulate, 5.6.4
representation clause
evaluate during porting, 7.6
for device data, 5.4.2
indentation, 12
instead of enumeration, 43, 3.5
portability, 7.3, 7.6, 7.8
reserved word
capitalization, 6.3.1, 3.5
return statement, 5.6.8
reusability
library, 5.7.2
of nonterminating program, 6.3.1
renames clause, 96, 5.10
robust software, 172, 8.5
Root_Integer
portability, 143
run time system
dependence, 161, 167
runaway task, 6.3.3

S

safe programming, 5.6.6
scheduling
algorithm
affected by hidden task, 176
portability, 7.4.6
delay, 6.1.7
task, 6.2.6
using priority, 6.1.6
scientific notation, 3.1.2 3.5
scope
access type
portability, 7.7.5
exception, 4.3.1, 64
minimize, 4.2.2, 64
use clause, 96
select
minimize, 6.2.6, 6.4
select statement
asynchronous, 6.3.1, 139
blocking, 6.1.7
portability, 7.4.6
terminate alternative, 6.3.1, 6.4
to provide normal termination, 6.3.2, 6.4
selected component
of a private type,5.3.3
selective accept
closed alternatives, 6.2.2, 6.4
efficient, 6.2.1, 6.4
with else, 6.2.5, 6.4
selectiveaccept
indentation, 2.1.2
semicolon
spacing, 10
sentinel value, 5.3.1
separate
compilation, 4.1
indentation, 12
to reduce visibility, 59
separation of concerns, 4.1.8
Sequential_IO, 106, 7.7.4
import private type, 8.3.3
Shared
portability, 157
shared data, 4.1.8, 6.2.4
hidden task in generic, 176
shared variable, 6.2.4
portability, 157
unprotected, 6.2.4, 6.4
short circuit operator, 5.5.5
side effect, 4.1.4, 62, 5.5.5
simplification heuristics, 86, 5.10
slice, 5.6.2
source text, 9, 143, 164
spacing, 9, 19
for goto statement, 5.6.7
for label, 5.6.7
horizontal, 9
Specialized Needs annexes
implementation, 147
specification
comment, 3.3.3, 3.5
end statement, 5.1.4, 5.10
generic, 8.2.4, 8.5
header
as pagination, 17
indentation, 12
package, 4.1.8, 4.2.2, 4.4
reusable part family, 8.4.4, 8.5
task hiding, 59, 176, 8.5
spelling, 3.1
abbreviation, 3.1.4
in comments, 32, 3.5
Standard, 3.3.7, 3.5
predefined numeric type, 7.2.1, 7.8
starvation, 4.3.1
state
and exception, 4.3.1, 64
naming, 84, 5.10
statement, 86, 5.10
abort, 6.3.1, 7.4.6
accept, 6.2.2, 6.2.6, 6.4
block, 93
case, 88
comment, 40
delay, 122, 6.4, 155
end, 5.1.4
exit, 5.1.3, 5.6.4, 5.6.5, 5.10
goto, 5.6.7
indentation, 10
loop, 5.6.2, 5.10
conditional exit, 86
marker comment, 3.3.7
per line, 18, 19
return, 5.6.8
select, 6.2.2, 6.2.6, 6.4
portability, 7.4.6
tentative rendezvous, 6.2.4
static
data, 5.4.5, 5.10
expression, 3.2.6, 3.5, 172, 8.5
storage control
and portability, 7.3
storage pool mechanisms, 7.3
Storage_Error, 5.4.5, 5.10
Stream_IO, 7.7.4
string
handling, 196, 8.5
strings
performance, 235, 10.8
strong typing, 3.4, 4.1, 5.3.1 , 5.10
to enforce assumption, 8.2.3, 8.5
to reduce constraint check, 235, 10.8
subprogram, 4.1.3
call
named association, 5.2, 5.10
overhead, 4.1.3
recursive, 91, 5.10
default parameter, 5.2.3, 5.10
document nonportable, 144, 164
end statement, 5.1.4, 5.10
exceptions raised in, 4.3.1, 64
generic, 8.3.2, 8.4.2, 8.5
grouped in package, 54, 4.4
grouping, 4.1
hiding task entries, 59
Inline, 236, 10.8
main, 144
name, 3.2.4
overload, 5.7.3
overloading in generic, 175, 8.5
parameter list, 4.1.8, 4.4, 5.2, 5.10
procedure versus function, 4.1.4, 62
return, 5.6.8
to reduce nesting, 5.6.1
subrecord, 5.4.4, 5.10
subtype, 3.4, 3.5, 5.3.1
in case statement, 5.6.3
in generic, 8.2.4, 8.5
used as range, 5.5, 5.10
using suffixes, 3.2.1, 3.5
subunit
embedded
pagination, 17
file name, 4.1
indentation, 12
Suppress, 105
symbolic
value, 3.2.6, 3.5
synchronization, 4.1.10, 4.4, 114, 6.4,
portability, 7.4.6, 7.8
using shared variable, 6.2.4, 6.4
System
portability, 7.6
portability of Tick, 7.4.3

T

tab character,2.1.1,19
table-driven programming, 195
tagged type, 216
derived, 218
hierarchies, 197, 8.5, 9.2.1
operations, 9.3
visibility, 218
tagged typed, 214
tagged types, 191, 8.5, 206
and dispatching, 203, 9.6
and maintainability, 203
and protected objects, 6.1.8, 6.4
derived, 217, 223
naming, 26
redispatching, 38, 40, 3.5
task, 4.1.9, 117, 6.4,
activation order, 155
allocate, 6.1.4, , 6.4
anonymous type, 6.1.4,
asynchronous control, 115, 6.4,
attribute, 6.2.3, 6.4
avoid termination, 132
body
exception handler, 6.3.4, 139
indentation, 12
communication, 59, 6.2.1, 6.2.1
complexity, 6.2.6, 6.4
portability, 157, 7.8
deadlock, 6.3.5,
declaration, 6.1.4,
document nonportable, 144, 164
dynamic, 6.1.5, , 120
end statement, 5.1.4, 5.10
entries, 6.2.3, 6.4
'Count, 6.2.3, 6.4
hidden, 59, 176
comment in header, 3.3.3
model, 115, 6.4,
name, 3.2.4, 3.5
nonterminating, 6.3.2, 6.4
portability, 155, 7.4.5, 7.8
receiving interrupt, 146, 7.8
rendezvous, 115, 118, 6.2.1, 6.2.4, 6.4, , 6.4
reusability, 176
runaway, 6.3.3
scheduling, 122, 6.1.7, 6.3.1
portability, 7.4.5
specification
indentation, 12
pagination, 17, 19
synchronization, 117, 6.2.3, 6.2.5, 6.4
point, 7.4.5, 7.8
portability, 157, 7.8
termination, 132, 6.3.2, 6.3.1, 6.3.4, 139
type, 6.1.4,
Tasking_Error, 6.2.2, 6.2.3, 6.4
temporary file
portability, 7.7.3
tentative rendezvous, 6.2.4
terminate alternative
to avoid deadlock, 6.3.2, 139
termination
abnormal, 6.3.4
controlled, 5.8.3
file status, 7.7.5
normal, 6.3.2
of loop, 5.6.4, 5.10
of task, 132
undesired, 132, 6.4
thread of control, 117
Tick
portability, 7.4.3
time sliced
scheduling, 7.4.5
timed entry, 6.2.5, 6.4
affects 'Count, 6.2.3
call, 4.3.1
indentation, 2.1.2
tool, 9, 33, 96
type, 5.3.1 , 5.10
access, 5.4.5, 5.10
portability, 7.7.5
anonymous, 5.3.2
anonymous task, 6.1.4,
attribute
for real value, 152, 7.8
boundary value, 5.2.4, , 5.10
choice affects equality, 5.7.5
comment, 38, 3.5
conversion, 5.3.1
declaration, 3.3.7
derived, 3.3.7, 3.5, 5.2.4,
Duration, 143, 164
portability, 7.4.5
enumeration, 43
grouped in package, 54, 4.4
identifier, 3.2.2
Integer, 143, 164
limited private, 5.3.2, 8.3.3
modular, 82, 5.10, 234, 10.8
name, 3.2.1, 3.3.7, 3.5
numeric, 7.2, 7.8
of constant,3.2.6
predefined, 3.3.7, 3.5, 149
private, 5.3.3, 8.3.3
renaming, 43
strong, 3.3.7, 4.1, 5.2.4, , 5.10, 235, 10.8
subtype, 5.3.1
suffix, 3.2.2, 3.5
tagged, 9.2.1
unconstrained array, 8.2.2, 8.5
universal,3.2.6
used as range, 5.5, 5.10

U

Unchecked_Conversion, 5.9
portability, 161
Unchecked_Deallocation, 103
portability, 7.6.4
underscore, 3.1.1, 3.5
in file name, 4.1
in numbers, 3.1.1, 3.5
significant in name, 3.1.4
universal_integer,3.2.6
universal_real,3.2.6
until loop
    how to simulate, 5.6.4
upper case, 6.3.1
use clause,5.7.1, 96, 5.10. See context clause
use type clause, 5.7.2, 5.10
user-defined exception, 5.8.4, 5.10
    replaces implementation-defined, 7.8

V

variable
    declaration
        alignment, 14
    localize declaration, 5.6.9
    of access type, 5.4.5, 5.10
    referenced in guard, 6.2.4, 6.4
    replaced with aggregate, 5.6.10, 5.10
    to reduce nesting, 5.6.1
    valid state, 176, 8.5
verb
    as entry name, 3.2.5, 3.5
    as procedure name, 3.2.5, 3.5
vertical alignment, 13,2.1.4, 2.1.5,2.2. See alignment
virtual processor, 117
visibility, 53, 4.2, 56, 4.2.3, 4.4,5.7.1, 5.10, 217, 223
    use type clause, 5.7.2, 5.10
    using renames clause, 96, 5.10

W

while loop. Seeloop
    indentation, 2.1.2
with clause. See context clause


< Previous Page Search Contents Index < END >
1 2 3 4 5 6 7 8 9 10 11
TOC TOC TOC TOC TOC TOC TOC TOC TOC TOC TOC
Appendix References Bibliography