До сих пор идентификаторы использовались для построения термов или, точнее, полиномов. Одной из важнейших характеристик ЯП является то, что они используют идентификаторы. Идентификаторы используются в ЯП как имена для различных встречающихся элементов. Они служат, кроме всего прочего, для обозначения промежуточных результатов, как держатели мест ("параметры") в выражениях, и для обозначения функций.
Сначала обсуждается вопрос конкретного синтаксического представления для идентификаторов. Большей частью в ЯП для представления идентификаторов берутся слова над некоторым алфавитом (например, малые латинские буквы и цифры), которые для отличия от чисел должны начинаться по меньшей мере одной буквой. Синтаксическая единица <id> обозначает множество слов, которые допускаются в качестве идентификаторов.
<id>::=<буква>{<символ>}*
<буква>::=а| b| с|...| z
<символ>::=<буква>|0| 1|... |9
В простых аппликативных ЯП идентификаторы служат в качестве элементов носителей или n-местных функций (с любым n
N) над носителями. Обозначим через Н (о чем договорились выше) множество элементов данных и функций. Пусть теперь D - множество идентификаторов для синтаксической единицы <id>. Чтобы выражениям со свободными идентификаторами можно было поставить в соответствие значения, опять применяются конкретизации (англ. environment):ENV=def{
:IDH}.Интерпретация I есть отображение:
I: <выражение>
(ENV Н).Для идентификатора х мы определяем:
I
[х]= (х).Одна специальная конкретизация представляет то отображение, которое всем идентификаторам ставит в соответствие элемент
. Она обозначается через . Имеет место : ID Нс
(x) = для всех х из ID.Наряду с идентификаторами часто используются определенные символы и последовательности символов с постоянной, от конкретизации не зависящей интерпретацией. В этом случае говорят о константах. Они могут трактоваться как нульместные функции нашей вычислительной структуры. В ЯП moot быть внесены даже отображения заданной вычислительной структуры и их соотнесение к символам функций ("идентификаторам") вне конкретизации.
В дальнейшем для рассматриваемых ЯП будем предполагать заданными вычислительные структуры BOOL, NAT, SEQ. Тем самым предусмотренные в соответствующих сигнатурах типы и символы функций - частично в инфиксной форме - могут использоваться в программах. В качестве типов, тем самым, пока будем рассматривать только типы, входящие в эти вычислительные структуры. Пусть синтаксическая единица <тип> используется в качестве обозначений типа (т.е. в качестве идентификаторов типа). Для улучшения читаемости программы обозначения типа выделяются жирным шрифтом.