
книги из ГПНТБ / Землянский, А. А. Транслирующая система с языка АЛГЭК-М на ЭВМ Минск-32 учеб. пособие
.pdf
|
3 .2 .6 . |
|
Примеры |
запись |
|
Ошибочная запись |
||||||||||
|
|
Правильная |
|
|||||||||||||
|
|
Первичные выражения: |
|
Первичные выражения: |
||||||||||||
|
|
|
|
|
28.3 |
|
|
|
|
|
|
X |
28,3 |
|
|
|
|
|
|
|
|
ХАУ |
|
|
|
|
|
|
ГА] У |
|
|
||
|
|
(А+В [К] |
wer] |
|
5) |
|
|
|
WCi/Kl |
|
||||||
|
|
- Л |
* |
|
|
|
|
(lA^ßLK]-Pf5) |
||||||||
|
|
|
Множители: |
|
|
|
|
Множители: |
||||||||
|
|
|
|
|
РАО |
|
|
|
|
|
|
ИРА+О |
|
В |
||
|
|
|
|
M .Pf |
В |
|
|
|
|
|
|
-.Df |
||||
|
|
|
|
|
|
|
|
|
|
ТЕРМЫ: |
||||||
|
|
|
|
ТЕРШ: |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
25 |
|
|
|
|
|
|
|
2-5 |
|
|
|
|
|
[3 ] |
* |
|
0 .0 |
[ |
|
,L] |
|
|
|
|
0 |
0 |
|
|
|
А |
В |
7 |
|
|
А ГЗ] |
|
. - |
Г ? , А.] |
|||||||
|
|
|
|
|
|
|
|
-В |
|
|||||||
|
|
Арифметичяскиѳ выражения: |
|
Арифметические |
выражения: |
|||||||||||
|
|
А - В + С А Р |
|
|
|
7 А - В + С |
VJD |
|||||||||
((27 |
- F ) |
+ А X (Ä i-Q ]tF ] -0 .J2 ij |
((27 - |
F )VAA(RCQ.]rf-)-0.i2S |
||||||||||||
|
3 .3 . Текстовые |
выражения |
|
|
|
|
|
|
|
|||||||
|
3 .3 .1 . Синтаксис |
|
«.простое |
текстовое |
выражение? |
|||||||||||
«текстовое |
|
выражение> |
||||||||||||||
«простое текстовое выражение? ::= «примитивное текстовое |
||||||||||||||||
|
выражение?/«.простое текстовое выракениѳ>-*-«примитивное |
|||||||||||||||
|
текстовое |
выражение? |
|
« строка?/ <текстовая |
||||||||||||
^примитивное |
текстовое |
выражение? |
||||||||||||||
|
переменная? |
|
|
|
|
|
|
|
|
|
|
|
||||
|
3 .3 .2 , |
Семантике |
|
|
|
|
|
|
|
|
|
|||||
вого |
Текстовое выражение является правилом для вычисления тексто |
|||||||||||||||
эпѳчония. |
Текстовое |
значение |
ость чистая строка |
(си . раз- |
29
дел 2 .6 . Строки). Текстовая |
операция |
( |
— ) не определена, |
если порождаемая ею последовательность |
символов не является |
||
чистой строкой, |
текстовых |
|
выражениях допускѳютоя |
В качествеоперандов в |
|
чистыо строки и текстовые переменные, которые могут ..меть в
описании текстовый формат (см . разделы 5 .2 . |
и 5 . 3 . ) . |
3 .3 .3 . Операция присоединения |
я |
Результатом операции присоединения ( —— ) является последо
вательность символов значения левого операнда, за которой оле-
дует последовательность символов значения правого оперѳндѳ, и
которая не должна превышать І26.оимволов.
3 .3 .4 . Примеры |
|
Ошийс шая запись |
|
Правильная запись |
ТІ |
||
Т |
Г элемент |
6 :1] |
|
ТІ f элемент 25:І2б] |
Т2 |
^ элемент - |
4J |
f ТРАНСЛЯТОР“5 |
‘ ‘ транслятор’’-' |
|
|
‘“ЯЗЫК— ..ПРОГРАММИРОВАНИЯ*" |
‘ язык"" + ‘ программирования’’ |
||
3 .4 . Логические выражения |
|
|
|
3 .4 .1 . Синтаксис |
«логический одночлен>| «.логическое |
||
■ ^логическое выракениѳ> |
|||
выражением V «логический одночлен > |
|
|
|
«логический одночлен> ::= |
«вторичное логическое выражением! |
«логический одночленмл «.вторичное логическое выражением
«.вторичное логическое выражением ::= |
<первичное логическое |
|
выражениемПспервичное логическое выражением |
||
■ «.первичное |
логическое выражение м ::= |
«логическое выражение>| |
«логическая |
пе^еменнанм | « отношением|(«логическое выражением) |
«отношением ::= «арифметическое отношением/«текстовое отиоше-
30
ниѳ> |
отношѳние> ::■ = арифметическое выражением <знок |
||
чврифметическое |
|||
операции отношения> ^арифметическое вырэнение> |
|||
О н а я операции |
отношѳішя> |
: := |
<1 &І ~\^і >ІФ- |
< тѳкотовоѳ отношение> : |
«.текстовое выракениѳхзнвк операции |
отношения> <,текотозое выражение;* 3 .4 .2 . Семантика
Логическое выражение является правилом для вычисления
логического значения. Логическое значение в машине представляет
ся НУЛЕМ (0) для ложъ |
и ЕДИНИЦЕЙ ( I) |
для истина. |
|
||||||||
|
Принципы вычисления полностью аналогичны правилам,данным |
||||||||||
в разделе 3 .2 .2 , |
для |
арифметических выражении. |
|
|
|||||||
|
3 .4 .3 . Типы |
используемые в качестве первичных логических |
|||||||||
|
Переменные, |
||||||||||
выражений, доляны быть описаны как логические переменные (см . |
|||||||||||
раздел 5 .2 . Описание |
переменных). |
|
|
|
|
|
|||||
|
3 .4 .4 . Операции |
|
|
|
|
|
|
|
|
|
|
|
3 .4 ,4 .1 . |
Арифметические отношения принимают значение |
|||||||||
истина в том случае, |
когда соответствующее отношение удовлетво |
||||||||||
ряется для значений, |
входящих в него арифметических выражений; |
||||||||||
в противном случѳе они принимают значение ложь. |
|
||||||||||
на |
Проверка-справедливости текстового отношения основывается |
||||||||||
лексикографической упорядоченности |
строчных символов в поряд |
||||||||||
ке |
воэрѳстѳния: |
|
6 |
7 |
8 |
9 + - / , . _ J |
0 |
t ( ) X = ; П |
^ > |
||
|
I 2 3 4 5 |
|
|
|
|||||||
|
А Б В Г ДR |
Е К З И К Л Ы Н О П Р С Т У Ф Х Ц Ч Ш Щ |
|||||||||
|
Ы Ь Э Ю |
P F & l |
Jb / / Q R S T r V K / 2 |
é=^VA~] |
|||||||
|
При выполнении операции |
|
I |
|
|
|
эиѳчения- |
||||
|
отношения над текстовыми |
31
ми разной длины более короткое из них считается дополненным
справа символами |
пробелов ( |
і__і ) до выравнивания |
1длин, |
. |
3 .4 .4 .2 . |
Значения |
логических операций |
Л,Ѵ. |
|
|
|
определяются следующей функциональной таблицей, в которой И -
означает истина, а Л - ложь: •
|
БІ |
• |
л л и и |
|
|
|||
|
л |
л |
к |
|
|
|||
|
В |
2 |
|
и к |
|
|
|
|
|
7 B I |
|
и л л |
|
|
|||
|
|
л л л и |
|
|
||||
|
ВІЛ В 2 |
|
л и и и |
|
|
|||
З А . 5 . |
в іѵ в г |
|
|
знаков |
операций |
|
||
|
Порядок старшинства |
|
||||||
3 .4 .5 .1 . Синтаксис |
|
|
|
::= < п е ,в ы й порядок |
> 1 |
|||
^.порядок старшинстваа |
знаков операций» |
|
||||||
^второй |
порядок> |
третий порядок» |
операции» |
|
||||
< первый порядок>с<знак |
арифметической |
|
||||||
^второй п орядок > с |
|
|
<знвк операцш; отношения» |
|
||||
^третий порядок»с: |
|
|
^энак логической операции» |
|
||||
3 .4 .5 .2 , Семантика |
|
|
|
|
|
Данный синтаксис задает порядок старшинства знаков опера ций в пределах выражений.
Операции в пределах одного выражения обычно выполняются
слева направо с учетом порядка старшинства и приоритета знаков операций.
3 .4 .6 . Приоритеты |
знаков |
|
|
3 .4 .6 .1 . Синтаксис |
|
^первый приоритет»] |
|
«^приоритет знаков арифметических операций» |
|||
^второй прі эритет» |
і с третий приоритет» |
|
|
< первый приоритет > |
cz |
f |
|
|
|
32
^второй |
приоритет» |
с : |
< знак |
операции |
типа умножение » |
|
|||
<трѳтий |
приоритѳт> |
er |
< зн |
8 |
к |
операции типа сложения» |
|
||
<приоритет знаков операций |
отношения» |
: |
^первый приоритет» |
||||||
<первый |
приоритет |
с г |
< знак |
операции |
отношения > |
>1 |
|||
^приоритет знаков логических операций» |
:*=<первый приоритет |
|
|||||||
и.второй приоритет» ктретий |
приоритет» |
|
|
|
|||||
^первый приоритет» с г |
7 |
|
|
|
|
|
|
|
|
^второй |
приоритет» с г А |
|
|
|
|
|
|
|
|
^.третий |
приоритет» с : V |
|
|
|
|
|
|
|
З Л .6 .2 , Семантика
Приоритет знаков соответствующих операций определяет последовательность выполнения действий над операндами в пределах данного ПОРЯДКА старшинства.
З Л .6 .3 . Применение скобок интерпретируется в смысле, данном
с разделе 3 .2 Л .2 . |
|
З Л .7 . Примеры |
Ошибочная запись |
Правильная запись |
|
|
П А =-В |
R[)J элемент 3:7І->^элемент UiA'] /?£' И элемент 3;77»Ѵ<?(злемені М:ЛО
|
2£-f элемент 2:37] |
~J С [ Т ] , Н |
^ 1 А-Гэлемент 2:37] |
T — S |
= ‘ ИЮНЬ _ 1972^ |
T ~1S 1 |
= ‘ ИЮНЬ<_ I972,) |
ИМЯ |
£BM ! MKPJ |
іимя^=^влАдишар*' |
|
WAAßUCb ä ä |
W A / n s v f C |
||
3 .5 . Именующие выражения |
3 .5 .1 . Синтаксис
^именующее выражение» ::= <идентифигвтор метки »(^указатель переключателя >
зз
^указатель переключателя> : :в «.идентификатор переключателя*
[*индѳкочі
идентификатор |
перѳключатѳля> ::= < идентификатор> |
||
3 .5 .2 . Сѳиаятика |
являетоя правилок для получения метки |
||
Именующее |
выражение |
||
опѳрвтора |
( с и . |
раздел 4 . |
Операторы). Принципы вычисления этого |
.значения |
полностью аналогичны правилам, приведенным для перемен |
||
ных с индексами |
(см . раздел 3 .1 .4 .) . Указатель переключателя |
отсылает к соответствующему опиоѳнию переключателя (см . раздел
5 .5 . Описание переключателей) и по фактическому числовому зна
чению своего индекса выбирает одну из меток, составляющих список
маток в описании переключателя. |
Это значение служит номером мет |
|
ки в спиоке меток, очитая |
слѳ"а |
направо. |
3 .5 .3 . Индекс |
|
0 |
Вычисление значения индекса аналогично такому хе вычислению |
||
для переменных с индексами |
(ом . |
раздел 3 ,1 .4 .) . Значение указа |
теля переключателя определено только в том олучаѳ, когда индѳко принимает одно из положительных значении І , 2 , 3 , - . ? Л ,
где Л - число меток в |
списке |
идентификаторов меток^ |
3 .5 .4 . Примеры |
|
Ошибочная запись |
Правильная звпись |
||
КЛЮЧ |
. |
ю ш ч |
äwri] |
|
s~-wci] |
KSL7J . |
|
KSC-71 |
4 . Операторы Единицы действий в языке называются операторами. Операторы .
выполняются в той последовательности, в которой неписаны. Однако эта последовательность действий может прерываться операторами
34
перехода, которые определяют своего преемника явно, и сокра щаться условными операторами, которые могут вызывать пропуск некоторых операторов.
Для указания порядка выполнения операторов последние могут
снабжаться метками.
Последовательности операторов могут группироваться в состав ные операторы, поэтому определение оператора рекурсивно. Посколь
ку описания, о которых говорится в раэдеде 5 , входят в синтак
сическую структуру программы, синтаксическое определение состав
ного блока и блока должно обеспечивать |
определение описаний. |
|||
4 .1 . Операторы и составные операторы |
|
|||
4 .1 .1 . Синтаксис |
О |
|
|
|
<опер8іор> |
безусловны й опѳр8іор>/<:условный .оператор>| |
|||
соператор |
цикла> • |
: : = < основной |
|
... |
безусловный |
оператор;» |
оператор>/•£.составной |
||
оператор;» |
|
ооновной |
опѳратор>| |
|
^основной оператор;» ;:«* снѳпомеченный |
||||
Х.иетка^ < .основной оператор> |
оператор |
присваивания;»| |
||
<лѳпомѳчѳнный ооновной |
оператора |
^оператор пѳрѳхода>/ ^пуотой оператор;») ^оператор библио теки;»
4 составной |
оператор> |
<непомечѳнный составной опѳрэтор> |
||||
/б ѳ тк а > |
< составной |
оператор>. |
. начало |
вконец |
||
^непомеченный |
составной опѳраю р> |
|||||
составного |
оператора> |
4 непомеченный конец состав |
||||
<конѳц составного опѳратораь |
||||||
ного оператора>/ «матка> |
ікон ѳп |
составного |
оператора > |
<.непомеченный конец составного оператора> ::= <оперѳтор>
конец I опѳратор> ; ^непомеченный конец составного
35
оператора > 4 .1 .2 . Семантика
Значения переменных, включенных в состав операторов, дол-
нны быть определены. Это означает следующее:
4 .1 .2 .1 . Переменным, используемым в качестве операндов
в выражениях, должно быть дано значение. Переменная может получить значение либо после ввода, либо после присваивания ей
значения (в этом случае, |
переменная записывается в левой части |
|||
оператора присваивания, либо является параметром оператора биб |
||||
лиотеки). |
|
с индексами принимают значения либо |
||
4 .1 .2 .2 . Переменные |
||||
посла ввода соответствующих им значений массивов, |
либо в резуль |
|||
тате выполнения операции присваивания. Аналогичные |
действия дол- |
|||
жны быть выполнены и для |
|
|
V |
|
переменных различных типов. |
||||
4 .2 . |
Операторы присваивания |
|
|
|
4 .2 .1 . Синтаксис |
::= «числовая переменная» ^^ариф м етичес |
|||
«оператор |
присваивания.» |
|||
кое выражение»/«переменная типа текстовое» ^«.арифметичес |
||||
кое выражение»/ «. переменная типа текстовое» |
:'= стексто - |
|||
, вое выражение»/«.логическая переменная» := «логическое |
||||
выражение»/«.переменная типа целое» := |
«правая честь» |
|||
«правая часть » ::= «.арифметическое выражение»/«текстовое выра |
||||
жение»/«логическое выражение» |
|
|
||
4 .2 .1 . Семантика |
|
|
значения не- |
|
Оператор присваивания служит для присваивания |
||||
|
о |
|
|
|
которого выражения одной переменной. |
|
|
||
4 .2 .2 . Примеры |
Ошибочная |
запись |
||
Правильная запись |
||||
|
А := І |
А := * 1 |
|
|
36
|
В:=В+А |
' |
.Ъ |
В+І :=В |
:=К |
Ь /'[элвмент 1:37] |
:=К |
|
/ элемент - I :3 7 j |
||
Т |
элемент 2 :5 j |
:=ТІ/ элемент 1:3] |
Т /’ элемент 2 :- 5 J |
:=TIL |
4 .2 .3 . |
Типы и форматы |
элемент 1:3] |
||
|
||||
4 .2 |
.3 .1 . Если переменная левой части имеет тип логический, |
|||
то значение, |
определяемое |
правой |
частью, должно быть типа логи |
|
ческий. |
В противном случае |
оператор присваивания не определен. |
||
4 .2 |
.3 .2 . Если тип переменной |
левой части вещественный или |
||
целый, то значение, определяемое |
правой частью, может быть одно |
|||
го из типов |
вещественный или целый. При несовпадении типов авто- • |
|||
магически подключается соответствующая функция преобразования |
||||
значения |
правой части. Считается, |
что для преобразования из ти |
па вещественный к типу целый функция преобразования дзет резуль
тат, эквивалентный £ /VTI£ R (a m }.t), |
|
|
|
а |
ENTIER- |
|||
где А - значение арифметического |
выражения, |
|
|
|||||
функция, вычисляющая целую часть |
числе. |
части |
целый, |
а значение |
||||
4 .2 .3 .3 . Если тип переменной левой |
||||||||
правой части имеет тип текстовый, |
то |
результат |
определен в |
|||||
случае, когда значением текстового выражения |
являются цифровые |
|||||||
значения, е |
их количество не превышает |
1 0 |
символов, включая знак |
|||||
числа. |
|
|
|
чаоти |
текстовый, а зна |
|||
4 .2 .3 .4 . Если тип переменной левой |
||||||||
чение правой части имеет тип целый, |
то |
результат определен в слу |
||||||
чае, когда количество символов в |
числе |
не превосходит |
формата |
|||||
переменной левой части. |
|
|
|
|
|
|
|
|
4 .2 .4 . |
Роль „позиций |
снабжена позициями, |
то присваи |
|||||
Если переменная левой части |
вание новых значений распространяется только на элементы, выде ленные этими позициями. Значения остальных элементов такой пе ременной не меняются в результате выполнения оператора присваи вания.
4 .2 .5 . Примеры |
Правильная запись |
|
А : = В + М f l , 7 , KJ |
37
£ f i ] 1 • |
4 |
:«>М |
[ I j T |
элемент Н : р] |
|
||||
К Г элемент |
'5:13] |
|
|
13J |
|||||
RtfT, T l.Fl'КІЯ |
|
|
|
|
|||||
|
|
|
|
Гэлеиені 7 ] ;вА /'элемент |
|||||
Ошибочная запись: |
|
|
|
О |
|
||||
|
А :-В + М / > Г ,н ] |
|
|
|
|
||||
|
Л |
Г - і] :»4 |
|
элемент Н :РІ |
|
||||
КГэлемент |
13:5/ |
|
:» м [ і ,7 " |
|
|||||
R L i l . J l F [ Ц К [2.Ш Ш И |
s-A Г эдеыенг |
I3 j |
|||||||
4 .3 . |
Опвраюры |
перехода |
|
|
|||||
4 .3 .1 . Синтакоио |
|
|
|
^именующее выражение:* |
|||||
^оператор |
перехода:*: := де |
4 .3 .2 . Сеиѳі.іикѳ Оператор перехода прерывает последовательность дейотвий,
задаваемую порядкои написания операторов, явно определяя свое
го преѳиника по значения инвнующѳго выражения. Хаким обраеон,
следующим выполнявши опѳраторои будет тот, который ииѳѳт это значение в качестве овоѳй метки.
4 .3 .3 . Ограничение Так как ыеткѳи присуща локѳльноохь, то ни один оператор
перехода не может вести иэвнѳ в (составной) блок. Однеко опера
тор |
перехода может вѳоти |
извне в составной оператор. |
|
|
|
4 .3 .4 . Переход при |
неопределенной указателе |
переключателя |
|
|
В той случае, когда |
ииенующѳѳ выражение ѳоть указатель |
||
переключателя, значение |
которого не определено, |
оператор пере |
||
хода |
не определен. |
|
|
|
|
4 .3 .5 . Примеры |
Ошибочная ввпись |
||
|
Правильная запись |
|||
|
не М2 ^ |
нд У2+ |
W |
|
|
н а а Г I ] |
|||
|
HBÖC I |
|
38