Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Землянский, А. А. Транслирующая система с языка АЛГЭК-М на ЭВМ Минск-32 учеб. пособие

.pdf
Скачиваний:
5
Добавлен:
19.10.2023
Размер:
4.15 Mб
Скачать

4 .4 . Пустые операторы

 

 

 

 

4 .4 .1 . Синтаксис

 

 

 

 

/:пустой опѳрѳтор>

<спусто>

 

 

 

 

4 .4 .2 .

Семантика

 

 

 

 

Пустой оператор не выполняет никакого действия. Он монет

служить для размещения метки.

 

 

 

 

4 .4 .3 . Примеры

запись

Ошибочная

запись

Правильная

Н8Ч8ЛР

В :

 

начало

кон:

А:=0

конец •

. . . ; кон: конеп

4 .5 . Условные операторы

 

 

 

 

4 .5 .1 . Синтаксис

"если";>/ < .услови ѳ >

<оператор

<условный оператор> ::= ^оператор

цикла>/^мѳтка >■

^условный оперѳтор>

 

 

 

^оператор

"еслч">

::= ^.условие >

^.безусловный оператор >

^ усл о ви е > : : *

если, алогическое выражение >

то

 

 

^безусловный

опѳратор> : := 2'основной опера тор>|^составной

оператор >|

 

 

 

 

 

4 .2 .5 . Семантика

 

 

 

 

Условные операторы приводят к пропуску или выполнению некото­ рых операторов в Зависимости от текущих значений логических выра­ жений.

4 .5 .2 .1 . Оператор "есл и ". Безусловный оператор, входящий в оператор "если", выполняется в тон случае, когда логическое выра­ жение, вхрдящѳѳ в условие, является истиным. В противном случве он пропускается и действия продолжаются, начиная со следующего оператора.

4 .5 .2 .2 . Условный оператор вида: ^ условие > ^.оператор цикла>

Оператор цикла, входящий в условный оператор, выполняется в том

39

случае, когда логическое выражение, входящее

в условие,

являет­

ся истидым. В противном случае

он пропускается и действия про­

должаются, начиная со следующего

оператора.

а

 

 

 

 

 

 

 

4 .5 .3 . Примеры

 

 

 

запись

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Правильная

 

 

1.1

 

 

 

 

 

 

 

 

 

 

 

 

если Б = 4 то на

 

 

 

 

 

 

 

 

 

с

 

 

 

если А>В

 

то А : = В

 

 

 

 

Bill;

 

[К 1

 

 

если

К

ф

М

 

то

начало ВГі]

:

=

Р:=В

 

 

если

 

Н L‘ 7j4B

f l , Г

^ элемент

 

К]

 

конек

 

 

 

 

 

 

то для

 

 

 

 

 

 

 

L

:=К:К+ІО

цикл

начало

А Г К І]:= І> Ш

 

 

Ошибочная

запись

 

М £"КІ] := P fV J конец

 

 

 

 

на

М

 

 

 

 

 

 

 

 

 

 

 

если

7

] В V 4

то

 

 

 

 

 

 

 

 

 

 

 

если Ѵ А > В

 

то А :=В

целая

А;

 

ВГі]

:=Вр7-

 

 

 

если

К^М

 

[до начало

 

 

 

 

 

Р:=В

 

 

К]

конец

 

 

 

 

 

 

 

 

 

 

 

 

если77

 

Н С7}Д.В

[ І , Т

элемент к]тр

 

для

 

 

 

 

 

L

:=К:К+І0 цикл

 

 

 

 

 

 

 

 

 

 

 

если

 

А

 

 

 

 

 

 

 

 

 

4 .6 .

 

 

 

[ к ]

:=

F

то

В := І

 

 

 

 

 

 

 

 

Операторы цикла

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 .6 .1 . Синтоксис

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

^оператор цикла > ::= ^заголовок цикла > «соператорядыетка ?

 

/:оператор

циклв>

для

 

д идентификатор

переменной

 

типа

дзаголовок

цикла> ::=

 

 

цѳлое> := ^.список циклам

 

цикл

 

 

 

 

 

 

 

 

 

 

 

дсписок цикла> : ;= дсписок арифметических выражении>(

 

 

 

дарифметическое вырааенке>

 

шаг

^арифметическое

 

выражением

до

^арифметическое

 

выражение>/ < арифметическое

 

выражение> :

40

^арифметическое выражением

дсписок арифметических выражѳний> ::= ^арифметическое выраке-

ние>/<еписок арифметических выражений^- , дарифметическое

выражением

4 .6 .2 . Семантика Заголовок цикла заставляет стоящий за ним оператор ^

выполняться повторно несколько раз или ни р азу . Кроме того,он осуществляет последовательные присваивания значений идентифика­

тору переменной типа целое и/или вещественное в дальнейшем будем именовать "параметр цикла", указанному в данном заголовке.

Этот процесс может быть пояснен следующей схемой:

-------------------------------1

начало; проверка; оператор; продвижение; преемник список цикла исчерпан

В этой схеме слово "начало" означает: произвести первое присваивание в заголовке цикла. "Проверка" означает: если очеред­

ное присваивание допускается заголовком цикла, то

перейти

на

выполнение оператора ^ следующего за заголовком

цикла,

в

противном случае - продолжвть выполнение программы

с оператора,

следующего за оператором цикла. "Продвижение" означает: произ­

вести очередное присваивание

в

заголовке цикла.

4 .6 ,3 .

Элементы списка

цикла

Список

цикла дает правило

для получения значений, которые

последовательно присваиваются параметру цикла. Эта последова­ тельность значений получается из элементов списка цикла путем

их последовательного перебора в порядке написания. Последователь­ ность значений, порождаемая каждой из трех разновидностей элемен­ тов списка цикла, и соответствующее выполнение оператора опреде­ ляется следующими правилами.

41

4 .6 .3 .1 . Арифметическое выражение. Этот элемент списка

цикла задает только

одно значение,

а именно значение

данного

арифметического выражения, вычисленное£непосредственно.

перед

соответствующим выполнением

оператора

 

 

 

4 .6 .3 .2 . Элемент типе арифметической прогрессии

 

 

Элемент,

имеющий вид А шаг В до С ,

где А ,В

и С - арифметичес­

кие выражения,

ведает порядок выполнения,

который можно

описать

с помощью дополнительных операторов

следующим образом:

 

 

 

 

L

I :

ас

jm(V-tygl

 

V

:=А;

то на .ЭЛЕМЕНТ ИСЧЕРПАН

 

 

 

 

Ѵ .- - ѵ * в ;

G/S(ß)>0

 

 

 

 

 

 

 

 

 

 

 

 

на

 

 

 

 

 

 

 

 

 

 

 

 

L

I ;

 

 

 

 

 

 

 

где V -

 

 

 

. . .

ЭЛЕМЕНТ ИСЧЕРПАН : . . .

 

 

 

 

параметр

цикла и "ЭЛЕМЕНТ ИСЧЕРПАН" указывает на пере­

ход либо к вычислениям, соответствующим следующему элементу

списка цикла, либо,

если данный элемент типа арифметической

прогрессии

стоит

последним в

списке, к следующему оператору

программы;

 

5 I& / V -

функция,

определяющая

знак.'

при шаге,

4 .

6

.3 .3 . Элемент типа арифметической

прогреосии

равном единице.

Элемент, имеющий вид А :С ,

где А и С -

арифмети­

ческие выражения,

трактуется

кѳк элемент,

имеющий вид

 

 

А шагУдо С .

 

 

 

параметра

цикла после выхода

 

 

4 .6 .4 . Значение

 

 

После

выхода

из

оператора

ä

(предполагаемого

составным)

 

посредством какого-либо оператора

перехода

значение

параметре

цикла будет таким, каким оно было

непосредственно

перед выпол­

нением оператора перехода.

списке

цикла,

то

значение

Если выход вызван исчерпанием

42

параметра цикла после выхода не определено.

оператор цикле

4 .6 ,5 .

 

Оператор перехода,

ведущий в

Результат действия оператора перехода, стоящего вне опера­

торе цикла и обращающегося к метке внутри операторе цикла, не

определен.

Выполняемый в цикле

 

оператор

5*

не должен

изменять

4 .6 .6 .

 

ни значения параметра цикла,

ни арифметического

выражения,

обоз­

наченного через С .

 

 

Превильная

запись

 

 

 

4 ,6 .7 .

Примеры

 

 

 

 

 

 

 

для И :* І

шаг I до 10 цикл

 

 

 

 

 

 

А Г И ]

:=0;

 

а

 

 

 

 

если А

ДЛЯ 7 s s ls l0 0

цикл

 

 

 

 

 

Ш

=3

то

начало A I:=A l'X J

$

A2:=Al'J-j+l

 

 

 

конец ,

 

 

 

 

 

 

 

 

 

 

 

щя

К :=3,

 

F A fr B .II. 4 цикл

 

ГК] :<=М;М:<=а

 

 

 

начало А :=ВІ ЦК] ; B I

 

 

для

И := І

 

Ошибочная запись

 

конец

 

 

 

шаг - I

 

до

10 цикл

 

 

 

 

 

для

А ГИ]

:=0}

цикл

 

 

 

 

 

й := - І[

:

-100

 

 

 

 

 

 

 

А

 

й ]

:=’і ;

 

цикл

 

 

 

 

 

для[К :=3,

 

А+В, 1:10

 

 

 

начало А:=В

К] ;

 

В

[К]

:d i;

М:=А

конец

 

4 .7 .

Операторы

библиотеки

 

 

 

 

 

 

4 .7 ,1 .

Синтаксис

 

<.опарагор обращения

к программа

из

сопѳрвтор

библиотеки>

43

БПІ >/<оператор обращения к программе из БП2>/<оператор обмена с внешним устройством > 4 .7 .2 . Семантика

Операторы библиотеки служат для включения в исходную языко­ вую программу личных программ пользователя, программ, находящих­

ся на системной ленте, а также программ, осуществляющих обмен

информации с внешними устройствами.

 

 

Синтаксис и семантике операторов обращения к программам биб­

лиотеки

программ (БПІ

и БП2) изложены во второй глава,

а опера­

торов обмена с внешними устройствами

в главе 4 . .

 

4 .7 .3 . Примеры

 

Ошибочная запись

Правильная запись

Х. У)

библиотека

(

библиотека

X)

библиотека ('КОРЕНЬ'’,X ,У )

библиотека ('К0РЕНЬ;,У)

5 .

Программа и

описания

некоторых свойств

величин,

Описания служат

для определения

используемых в программе, и для связи с их идентификаторами.

Описание идентификаторе Аіеѳт оилу только в одном (составном)

блоке. Вне данного (составного) блока конкретный‘идентификатор

монет использоваться для других целей (см . раздел

5 .1 .2 .) .

В динамике

работы программы это влечет за собой

следующее:

с момента входа

в (составной) блок (через начало,

так

как

внутренние метки локальны, и, следовательно, нодостижимы извне)

все величины, описанные в (составном) блоке, употребляются в

смысле,

 

соответствующем природе данных описаний. Если эти вели-

чины уже

о

другими описателями, находящимися вне-

были определены

(составного) блока, то на

некоторое время им предается новый

смысл.

С

другой стороны,

те идентификаторы, которые не описаны

44

в (составном) блоке, сохраняют прешіий смысл.

 

После выхода из (составного) блока (через КОНЕЦ) все

теря­

идентификаторы, которые были

описаны в (составном)блоке,

ют свой локальный смысл.

не должен быть в (составном)

блоке

Ни один идентификатор

описан более одного раза, за

исключением случаев, когда он

является идентификатором элемента структуры составной единицы

информации

(см.

раздел 5 .4 .

Описание

 

составной).

 

 

Идентификаторы,

введенные любым описанием, не являющимся

элементом описания структуры (см . раздел

5 .4 .

Описание

состав­

ной), считаются

идентификаторами первого

уровня.

 

 

5 .1 . Программа

 

 

 

 

 

 

«•

 

 

5 .1 .1 .

Синтаксис

 

 

 

 

 

 

 

 

 

^.программа? ::= дблок?/^составной блок>

 

 

£.блок> ::= ^непомеченный блок?/<меткэ?

< блок?'

 

^непомеченный блок> ::= ^начало блока? ; <конец блока>

днѳчадо блока? ::=

нвчало

^совокупность

описаний?

описаний*

^.совокупность

описаний?

: ; = < описание>| «совокупность

«.описание?

«описание

переменной

> 1

«-описание ыассива>|

«описание?

::=

 

 

4

: описание составной > /

«. описание

переключателя >

 

вконец блока?

::= «.совокупность операторов >

конец

 

«совокупность

операторов?

::= « : оператор?/«.совокупность опера­

 

торов?

«.оператор?

 

 

 

 

 

блок ?/« .метка ?

«соотавной

блок? ::= « . непомеченный составной

«составной блок?

«непомеченный составной блок? : : = < начало составного б л о к а ?;

«конец составного блока ?

45

■ снѳчвло составного блокам ::=

начало

т. совокупность описаний;»/

с

^начало

составного блока> ;

^совокупность описаний>

 

конец составного блока> ::= < і элемент

составного

блока >

 

коней /

с

элемент составного блокв> $ о ф н е ц

составного

 

блока>

 

 

бопере ю р > к блок >■ /<. составной

т. элемент составного блока> ::=

 

блок>

 

 

 

 

 

 

5 .1 .2 . Семантика

 

 

обозначений.

 

ІСѳядый

(составной) блок вводит новый уровень

Это реализуется следующим образом. Любой идентификатор, встречаю­ щийся внутри (составного) блока, может быть определен посредст­

вом соответствующего описания, как локальный в данном (составном)

блокѳл Это означает: в) что объект, представленный этим иденти­

фикатором внутри денного (составного) блока, на существует вне

(составного) блоке; б) что любой объект, представленный тем же идентификатором вне данного (составного) блока, полностью не доступен внутри (составного) блока.

Идентификаторы (за исключением тех, которые изображают

метки),

встречающиеся

внутри (составного) блока и не

описанные

в нем,

не локальны в

(составном) блоке, т .е . представляют

одни

и те же объекты

как внутри (составного) блоке, таки

вне его.

Метка, помечающая оператор, действует

так, как будто

она

описѳ-

H8 в заголовке

наименьшего объемлющего составного блока,

т .ѳ ,

наименьшего составного блока, скобки начало и конец которого

заключают этот

оператор.

 

 

 

Поскольку блок иля составной блок может входить в другой

составной блок,

то концепция локальности и нелокѳльности в

составном блока должна пониматься р курсивно. Таким обпааом,

идентификатор,

не локальный в блоке

и/или составном

блоке А,

<6

Ошибочная запись

может быть локальным или на локальным в блока и/или составном блока В, для которого блок и/или составной блок А входит в составной блок В.

5.1.3. Примеры Правильная запись

ВЛ О К И

начало

 

целое

И,

іо

 

 

начэло

$ :=0;

 

$

 

 

 

а

 

 

 

 

 

 

 

 

[

 

];

 

 

 

целый массив

 

 

 

 

 

 

*-0»

 

 

 

 

 

 

8+ А[и]

для

И ;= І:І0 цикл

 

 

 

 

 

 

 

 

 

для И := І!ІО цикл

8 := 8 + А [и ]

 

 

 

 

 

конец

 

конец

 

 

 

 

СОСТАВНЫЕ БЛОКИ

 

 

 

 

 

 

 

 

начало целый массив А [5,10.] }

начало целое

массив A/lo]j

целое $ }’

б := 0;

 

 

 

 

для

И :* І :І 0 цикл

начало' целые I,

J j

 

 

 

 

для I : * I j 5 цикл

 

 

 

 

 

для Т :=І5І0 цикл

6:=S'>ACI1JJ;

'

 

если A L I,T J> 0

IS

 

 

 

 

 

конец

 

конец

 

 

 

 

 

 

 

 

 

5.2.

Описания переменных

 

 

 

5.2.1. Синтаксис

^описание переменной>::= <описание переменной типа целое>|

дописание переменной типа вещественное>1 ^описание1перемен­ ной типа логическое >1 д. описание переменной типа текстовое:*

^описание переменной типа целое>::= целое ^список переменных типа целое>

^ список переменных типа целоѳ^ ::= ^элемент списка переменных

47

типа

целое?) / список переменных типа ц е л о е ? ,/ . элемент

списка переменных типа целое>

 

/элемент

списке переменных типа целое> ::= /идентификатор

переменной типа

целое?

.

/описание

переменной

типа вещественное?

::= вещественное

/список переменных типа вещественное?

/список переменных типа вещественное? ::= /элемент спискѳ

переменных типа веществениое>|/список переменных типа

вещественное > } /элемент списка поременных типа веществен­

ное >

/элемент списка переменных типа вещественное? ::= ^идентифика­

тор переменн-'й типа вещественный?

/описание переменных типа логическое ? : := лоическое ^спи­

сок переменных типа логическое?

/список переменных типв логическое? ::= /элемент списка

переменных типа логичѳскоѳ?//список переменных типа логи­

ческое?^ /элемент списка переменных типа логическое?

/элемент списка переменных типа логическое? ::= /идентификатор

переменной типа логический>

/описание переменных

типа текстовый? : := текстовое /список

.переменных типа

текстовое?

/список переменных типа текстовое? : : = /элемент списка пере­

менных

типа

текстовое?|/список переменных типа текстовое?^

/элемент списка переменных типа текстовое?

/элемент списка

переменных типа текстовое? : : = /идентификатор

переменной типа текстовый?)сидентиаикатор переменной типа

текстовый?

вид

/текстовый формат?^

5 .2 ,2 .

Семантика

 

48

Соседние файлы в папке книги из ГПНТБ