![]() |
![]() |
![]() |
|||||||
![]() |
![]() |
||||||||
![]() |
![]() |
||||||||
![]() |
![]() |
||||||||
![]() |
![]() |
||||||||
![]() |
|||||||||
Выражения -
численные,
логические и
адресные: правила построения |
|||||||||
|
|||||||||
ВыраженияВыражения на Pascal'е бывают двух видов правильно построенные и нецензурные (не пропускаемые цензурой). За обнаружение последних отвечает компилятор, а за удаление - программист. Рассмотрим правила построения (правильных) выражений. Главным свойством выражений является возможность иметь значение, которое может быть проанализировано или присвоено некоторой переменной. Выражения делятся по типу значения на следующие типы:
Рассмотрим правила нотации, а затем - правила построения каждого из этих типов. Фраза вида
<определяемое_понятие> ::
<понятие3> будет означать, что <определяемое_понятие> по определению состоит либо из конкатенации <понятия1> и <понятия2> или из <понятия3> (1). В принципе, используя такую (или похожую нотацию), можно задать любую (контекстно-свободную) грамматику, в том числе и весь язык программирования. Итак, численное выражение по определению есть (2)
<ч_выр> ::
<ч_знач><ч_опер><ч_знач> | Not <ц_ч_знач> <ч_знач> ::
<ч_перем> | <ч_конст> | <ч_функ> <ч_опер> ::
div | mod | pred(<ц_ч_знач>) | succ(<ц_ч_знач>) В первом определении численные значения стоящие справа и слева от операции называются операндами. Cтоит отметить следующие моменты
Логическое выражение по определению есть
<л_выр> ::
<л_знач><л_опер><л_знач> | Not <л_знач> | <результат_сравнения> <л_знач> ::
<л_перем> | <л_конст> | <л_функ> <л_опер> ::
Or | Xor <результат_сравнения> ::
<знак_операции> ::
>= | <> | = Знаки имеют тот же смысл, что и слова их прочтения: меньше, больше, меньше (или) равно... Знак <> означает "не равно". Результат сравниния равен True, если выражения стоящие по бокам находятся в отношении, определяемом знаком_операции и False - в противном случае. Выражения при этом должны быть сравнимыми. Адресное выражение по определению есть
<ук_выр> ::
Addr(<объект>) | New([. . . ])| Ptr(<число>, <число>)| <ук_функ> Здесь <объект> - идентификатор любого объекта, занимающего некоторое место в памяти (то есть обладающего адресом) - переменной, типизированной константы, процедуры или функции. Параметры у функции New зависят от типа создаваемого объекта. Каждое <число> в параметрах Ptr должно быть совместимо с типом Word. (1) Наверх Более уместно вместо слова "выражение" использовать слово "терм". (2) Наверх Сокращения следующие
Префиксы сокращений имеют следующий смысл
|
|||||||||
|