Конспект установочных лекций по комплексному курсу Информатика, Теория информации

       

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


До сих пор идентификаторы использовались для построения термов или, точнее, полиномов. Одной из важнейших характеристик ЯП является то, что они используют идентификаторы. Идентификаторы используются в ЯП как имена для различных встречающихся элементов. Они служат, кроме всего прочего, для обозначения промежуточных результатов, как держатели мест ("параметры") в выражениях, и для обозначения функций.

Сначала обсуждается вопрос конкретного синтаксического представ­ления для идентификаторов. Большей частью в ЯП для представления идентификаторов берутся слова над некоторым алфавитом (например, малые латинские буквы и цифры), которые для отличия от чисел должны начинаться по меньшей мере одной буквой. Синтаксическая единица <id> обозначает множество слов, которые допускаются в качестве идентификаторов.

<id>::=<буква>{<символ>}*

<буква>::=а| b| с|...| z

<символ>::=<буква>|0| 1|... |9

В простых аппликативных ЯП идентификаторы служат в качестве элементов носителей или n-местных функций (с любым n

 N) над носителями. Обозначим через Н (о чем договорились выше) множество элементов данных и функций. Пусть теперь D - множество идентификаторов для синтаксической единицы <id>. Чтобы выражениям со свободными идентификаторами можно было поставить в соответствие значения, опять применяются конкретизации (англ. environment):

ENV=def{

:ID
H}.

Интерпретация I есть отображение:

I: <выражение>

 (ENV
 Н).

Для идентификатора х мы определяем:

I

 [х]=
(х).

Одна специальная конкретизация представляет то отображение, которое всем идентификаторам ставит в соответствие элемент

. Она обозначается через
. Имеет место

: ID
Н

с

(x) =
 для всех х из ID.

Наряду с идентификаторами часто используются определенные символы и последовательности символов с постоянной, от конкретизации не зависящей интерпретацией. В этом случае говорят о константах. Они могут трактоваться как нульместные функции нашей вычислительной структуры. В ЯП moot быть внесены даже отображения заданной вычислительной структуры и их соотнесение к символам функций ("идентификаторам") вне конкретизации.

В дальнейшем для рассматриваемых ЯП будем предполагать заданными вычислительные структуры BOOL, NAT, SEQ. Тем самым предусмотренные в соответствующих сигнатурах типы и символы функций - частично в инфиксной форме - могут использоваться в программах. В качестве типов, тем самым, пока будем рассматривать только типы, входящие в эти вычислительные структуры. Пусть синтаксическая единица <тип> используется в качестве обозначений типа (т.е. в качестве идентификаторов типа). Для улучшения читаемости программы обозначения типа выделяются жирным шрифтом.



Содержание раздела