Кратко
ГОСТ 27831-88 встановлює державний стандарт на мову програмування Ада, визначаючи її синтаксис, семантику та правила написання коду. Документ орієнтований на створення високонадійних програмних систем для управління складними об'єктами.
Что сделать
При розробці або аудиті систем автоматизації на базі мови Ада необхідно дотримуватися встановлених синтаксичних конструкцій для мінімізації помилок у критичному ПЗ.
Темы
Касается профессий
Скачать документ
Формат .docx · доступно зарегистрированным пользователям
Текст документа
• ( .. -
1. 1.1. 1.1.1. а?) б?) д?) *
е?) ж?) з?) и?) к?) л?) •? •? 1.1.2. а?) б?) в?) г?)
д?) е?) 1.2. •? •? •? •? 1.3. —? —? —?
1.4. 1.5. а?) б?) array
в?) г?) д?) [ е?) * if elsif [else
end if;
1.6. а?) б?) в?)
г?) 2. 2.1. IIIа?) ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
в?) ”#&’()* + , — ./:;< = >_!
г?) д?) abcdefghijklmnopqrstuvwxyz
е?) ! ■? ‘ =>> * * = /= >= <= 2.4. 2.4.1. 12 12.0 0.0 0.456 3.14159_26 -- 1.34 2.4.2. [. 2#1111_1 - - 16# - - 16#F.FF#E+2 2#1.1111_1111_111# - - 2.5. ' 2.6. ” ”” -- ” ” " ’’ ’’ ’’ ’’ 2.7. - - - - end; - - - - - 2.8. [ ( [ I [ •? •? pragma LIST (OFF);
pragma OPTIMIZE (TIME);
pragma INLINE ( pragma SUPPRESS (RANGE CHECK, ON => 2.9. accept - and - 2.10. •? •? •? 3. 3.1. IIIII 3.2. •? •? •? •? •? •? I : — - - - - - - - - 3.2.1. б?) в?) г?) •? •? . •? 3.2.2. - - 3.3. 3.3.1. type is IIIIII ( array (1 . . 10) of INTEGER
type type type A: array (1 . . 10) of BOOLEAN;
В?: array (1 . . 10) of BOOLEAN;
3.3.2. subtype IIIIа?) б?) subtype subtype subtype subtype subtype subtype subtype 3.3.3. •? •? •? •? 3.4. new ' • •? •? •? •? •? •? •? type - - - - - - procedure - - function (X, 3.5. I
T'FIRST T'LAST 3.5.1. ( <, type type type type type type - - type type subtype subtype subtype - - 3.5.2, type 3.5.3. 3.5.4. type type subtype type type subtype subtype subtype 3.5.5. T'WIDTH T'POS T'VAL T'SUCC T'PRED T'lMAGE , - - - - - - - - - - - - 3.5.6. 3.5.7. [ digits ( type type subtype [range type type type subtype - - subtype - - 3.5.8. FIRST T'DIGITS T'MANTISSA T'EPSILON T'LARGE T'SAFE_EMAX T'SAFE_SMALL T'SAFE_LARGE MACHINE-MANTISSA, MACHINE-ROUNDS T'EPSILON = 2.0 ** (1 - T'MANTISSA)
T'SMALL = 2.0 ** (- T'LARGE = 2.0 ** T'BASE'EMAX <= T'SAFE EMAX
t'base'small >= T'SAFE_SMALL
T'BASE'LARGE <= T'SAFE LARGE
3.5.9. [ delta type type subtype type subtype - - - - - - type 3.5.10. T'DELTA T'MANTISSA T'FORE T'AFT T'SAFE__SMALL T'LARGE = (2 **T'MANTISSA -1) * T'SMALL
T'SAFELARGE = T'BASE'LARGE
T'SAFESMALL_= T'BASE'SMALL
3.6. | , ( •? •? type type type type type type type type of subtype type subtype 3.6.1. •? •? •? •? •? - - type end record;
- - 3.6.2. A'FIRST A'FIRST ( A'LAST A'LAST ( A'RANGE A'RANGE ( A'LENGTH A'LENGTH ( - - - - - - - - - -
A'LENGTH = A'LAST - A'FIRST +1
A'LENGTH ( 3.6.3. subtyp e POSITIVE is INTEGER range 1. .INTEGER'LAST;
type STRING is array (POSITIVE range < >) of CHARACTER;
- - BOnPOC'FIRST = 1, BOnPOC'LAST = 17 ( 3.7. record
end record
I [ := type record
end record;
type record
end record;
- - 3.7.1. ( [: = type end record;
type record
end record;
type end record;
type record
- - end record;
3.7.2. ( [ I
•? •? •? •? ■? - - ( - - ( 3.7.3. case end case;
when type type type case when when others = >
end case;
end record;
subtype subtype 3.7.4. A'CONSTRAINED 3.8. type type 3.8.1. type /
type type type record
end record;
type type type type record
end record;
type when end record;
3.8.2. 3.9. IIII •? •? •? 4. 4.1. I I I •? •? -
- - - - - - - - - - - - - 4.1.1.
-- - - - - - - 4.1.2. - - - - - - 4.1.3. I а?) б?) ' г?) д?) е?) -- - - - - - - - - STANDARD.BOOLEAN - - 4.1.4. UBET'FIRST - - - - - - 4.2.
- - - - -- - - 4.3. 4.3.1. (4, ( ( ( ( 4.3.2. а?) б?) в?) (1. .5 => (1. .8 => 0.0)) - - (1. . - - (1=> (1.1, 1.2, 1.3), 2=> (2.1, 2.2, 2.3))
(1 => (1 => 1.1, 2=> 1.2, 3=> 1.3), 2=> (1 => 2.1, 2 => 2.2, 3 => 2.3))
В?: С?: constant D: Е?: F: STRING (1. .1) : = (1 => 'F') ; - - 4.4. IIIII abs I I I
4.0 -- (1. . 10 = > 0) - - INTEGER'LAST - - -
- - - - - - - - - - - - - - - - - - - - - - - 4.5. not -
- - - —? - - - - - - 4.5.1. 4.5.2. BOOLEAN
BOOLEAN
X/= Y
””<” ” 4.5.3.
- - X - - - - - - 4.5.4. 4.5.5. (_ I: INTEGER: = 1;
J: INTEGER: = 2;
К?: INTEGER: = 3;
X: Y: F: G: A rem (- (- A mod 4.5.6. 4.5.7. •? •? •? 4.6. а?) б?) в?)
INTEGER (1.6) - - INTEGER (-0.4) - - type Y: X: = Y : = type subtype X: INTEGER : = 2;
X + 1 + 2 - - 1 + 2 + X - - X + (1 + 2) - - 2 = (1 + 1) - - A'LENGTH = B'LENGTH - - X = 3 and 1 = 2-- 4.7. type type PRINT ( PRINT ( for - - for - - for - - 4.8. I new а?) б?) pragma CONTROLLED ( в?) new new • - new new new new new - - 4.9. а?) б?) в?) г?) д?) е?) ж?) з?) 4.10. 1 + 1 -- 2
abs (-10) *3--30
-- 5. 5.1.
IIII
I I I << 5.2. ■? I, J: INTEGER range 1. .10;
I: — J; - - J: = 5.2.1. A: STRING (1. .31);
В?: STRING (3. .33);
5.3. if elsif [else
end if;
if end if;
if raise LAYOUT-ERROR;
elsif NEW_LINE,
PUT ( else PUT ( end if;
if end if;
5.4. case end case ;
when case when when when end case;
case when when when when end case;
case when 1 => when 2 = > when3|4 => when others => raise end case;
5.5. [ [ end loop [ I for loop
GET ( exit when end loop;
while end loop;
for J in if end if;
end loop;
while end loop for J in reverse 1., for J in 0. .1
5.6. [ [declare
begin
[exception
declare
begin
5.7. for exit when end loop;
loop;
- - exit - - end loop 5.8. return; - - return 5.9. if if I: = goto end if;
- - end if;
6. 6.1. procedure I function ( procedure procedure procedure procedure function function function - - function - - function ( procedure 6.2.
•? •? 6.3. [ begin
[exception
end [ procedure if else
C.MECTO ( end if;
end 6.3.1. •? •? •? procedure procedure? (X: INTEGER; Y: INTEGER)
procedure P (X, Y: in INTEGER)
6.3.2. pragma INLINE ( 6.4. [ ( [ I - - CLOCK- - 6.4.1. •? •? 6.4.2. procedure procedure ’ 6.5. function return begin = for end loop;
return end 6.6. procedure PUT (X: INTEGER);
procedure PUT (X: STRING);
procedure SET ( procedure SET ( PUT (28);
PUT G, SET ( SET ( SET ( - - SET ( - - 6.7. function ”+” ( function ”+” ( - - - - 7. 7.1. package [private
•f end [ padcage body [ [begin
[exception
end [ 7.2. package end package type type type ( end 7.3. package type record
end record;
function function (X, Y: INTEGER) return - - function (X, Y: function (X, Y: function (X, Y: function (X, Y: package body procedure - - end;
function А?, begin
A: = X;
B: = Y;
return end function ”/” (X, Y: INTEGER) return if Y > 0 then
return ( else
return ( end
function ”+” (X, Y: function (X, Y: function (X, Y: function (X, Y: end 7.4. type
type type 7,4.1.
7.4.2. T'CONSTRAINED package type procedure function ”<” (X, Y: private
type end;
package body procedure end function ”<” (X, Y: begin
return INTEGER (X) < INTEGER (Y);
end ”<”;
end 7.4.3. 7.4.4. •? •? •? •? package type procedure procedure procedure procedure private
type record
end record;
end package body type procedure procedure procedure procedure end 7.5. package type record
end record;
( procedure procedure - - package body subtype type end record;
function function procedure procedure begin
if raise end if;
- - end procedure begin
- - end 7.6. package - - subtype type function function function function - - function f unction - - S'LENGTH - function function”*” ( function ”&” ( function ”&” ( function ”&” ( function ”&” ( function ”=” ( function ”<” ( function ”<=” ( function ”>” ( function ”>—” ( procedure procedure procedure procedure procedure procedure - - - - f unction f unction f unction - - private
type end [ function begin
if if end if;
if return end 8. 8.1. •? •? •? •? •? 8.2. а?) б?) в?) г?) д?) е?) 8.3. •? •? а?) б?) в?) г?) д?) е?) а?) б?) procedure procedure Q is
C: BOOLEAN;
В?: BOOLEAN; - - 'begin
В?: = С?: = end;
begin
end;
procedure procedure Q(X: - - procedure R(R: - - 8.4. • • use use procedure R is
package type end package type end use use - - - - subtype - - subtype begin
endP;
package end procedure package end E;
procedure H is
T, X: use begin
- - - - - - - - - - - - end begin
end 8.5. I I package I
declare
end;
- - package function function function function function function function subtype 8.6. 8.7. •? •? •? а?) б?) в?) г?) д?) е?) 9. 9.1. task [type] end [ task body [ begin
[exception
< end [ task type entry entry end task type entry entry end task entry entry end;
task entry end task task - - end;
task body loop
select
accept V: = end or
accept end end select;
end loop;
end 9.2. - - type 9.3. procedure begin
- - - - end;
9.4. а?) б?) •? •? declare
type begin
- - type X: begin
- - end; - - end; - - 9.5. entry accept end [ •? •? entry entry entry accept accept end accept end 9.6. package CALENDAR is
type TIME is private;
subtype YEAR NUMBER is INTEGER range 1901. .2099;
subtype MONTH_NUMBER is INTEGER range 1. .12;
subtype DAY NUMBER is INTEGER range 1. .31;
subtype DAY_DURATION is DURATION range 0.0. .86400.0;
function CLOCK return TIME;
function YEAR (DATE:TIME) return YEAR_NUMBER;
function MONTH (DATE:TIME) return MONTH-NUMBER;
function DAY (DATErTIME) return DAY-NUMBER;
function SECONDS (DATE:TIME) return DAY DURATION;
procedure SPLIT (DATE: in TIME;
YEAR: out YEAR_NUMBER;
MONTH: out MONTH-NUMBER;
DAY: out DAY_NUMBER;
SECONDS: out DAY DURATION);
function TIME_OF (YEAR: YEAR-NUMBER;
MONTH: MONTH-NUMBER;
DAY: DAY_NUMBER;
SECONDS: DAY-DURATION: =0.0) return TIME;
function ”+” (LEFT: TIME; RIGHT: DURATION) return TIME; function(LEFT: DURATION; RIGHT: TIME) return TIME;
function ” (LEFT:TIME; RIGHT: DURATION) return TIME;
function (LEFT:TIME; RIGHT:TIME) return DURATION;
function ”<” (LEFT,RIGHT: TIME) return BOOLEAN;
function ”< = ”(LEFT, RIGHT: TIME) return BOOLEAN;
function ”>” (LEFT, RIGHT: TIME) return BOOLEAN;
function”>=” (LEFT, RIGHT: TIME) return BOOLEAN;
TIME ERROR: exception; - - - - TIME_OF - - end;
delay 3.0; - - declare
use CALENDAR;
- - begin
loop
•delay - - end loop;
end;
9.7 . I 9.7 .1. select
or
[else
end select;
[when I •? •? • select
accept or
delay 30.0 * end select;
task body begin
loop
select
when not accept end;
or
accept end;
or
terminate;
end select;
end loop;'
end 9.7.2. select
[ else
end select;
procedure begin
loop
select
return;
else;
null; - - end select;
end loop;
end;
9.7.3. select
[ end select;
select
delay 45.0;
- - end select;
9.8. pragma PRIORITY (
9.9. T'TERMINATED E'COUNT 9.10. abort 9.11. •? •? pragma S