В математике и других дисциплинах, включающих формальные языки , включая математическую логику и информатику , переменную можно назвать либо свободной, либо связанной. В некоторых старых книгах для свободной переменной и связанной переменной используются термины действительная переменная и кажущаяся переменная соответственно. Свободная переменная — это обозначение (символ), которое указывает места в выражении , где может иметь место подстановка , и не является параметром этого или любого выражения-контейнера. Идея связана с заполнителем ( символом , который позже будет заменен некоторым значением) или подстановочным символом , который обозначает неуказанный символ.
В программировании термин свободная переменная относится к переменным, используемым в функции, которые не являются ни локальными переменными , ни параметрами этой функции. Термин нелокальная переменная часто является синонимом в этом контексте.
Экземпляр символа переменной связан , напротив, если значение этого символа переменной было связано с определенным значением или диапазоном значений в области дискурса или вселенной . Это может быть достигнуто с помощью логических квантификаторов, операторов связывания переменных или явного указания допустимых значений для переменной (например, "...где - положительное целое число".) Символ переменной в целом связан , если связано хотя бы одно его вхождение. [1] стр. 142--143 Поскольку один и тот же символ переменной может появляться в нескольких местах выражения, некоторые вхождения символа переменной могут быть свободными, а другие - связанными, [1] стр. 78 , следовательно, "свободный" и "связанный" сначала определяются для вхождений, а затем обобщаются на все вхождения указанного символа переменной в выражении. Как бы это ни было сделано, переменная перестает быть независимой переменной, от которой зависит значение выражения, будь то значение истинности или числовой результат вычисления или, в более общем смысле, элемент множества изображений функции.
Хотя область дискурса во многих контекстах понятна, когда явный диапазон значений для связанной переменной не указан, может потребоваться указать область для правильной оценки выражения. Например, рассмотрим следующее выражение, в котором обе переменные связаны логическими квантификаторами:
Это выражение оценивается как ложное, если областью значений и являются действительные числа, и как истинное , если областью значений являются комплексные числа.
Термин «фиктивная переменная» также иногда используется для связанной переменной (чаще в общей математике, чем в информатике), но его не следует путать с идентично названной, но не связанной концепцией фиктивной переменной , используемой в статистике, чаще всего в регрессионном анализе. [2] стр. 17
Прежде чем дать точное определение свободной переменной и связанной переменной, приведем несколько примеров, которые, возможно, сделают эти два понятия более понятными, чем само определение:
В выражении
n — свободная переменная, а k — связанная переменная; следовательно, значение этого выражения зависит от значения n , но нет ничего с именем k , от чего оно могло бы зависеть.
В выражении
y — свободная переменная, а x — связанная переменная; следовательно, значение этого выражения зависит от значения y , но нет ничего с именем x , от чего оно могло бы зависеть.
В выражении
x — свободная переменная, а h — связанная переменная; следовательно, значение этого выражения зависит от значения x , но нет ничего с именем h , от чего оно могло бы зависеть.
В выражении
z — свободная переменная, а x и y — связанные переменные, связанные с логическими квантификаторами ; следовательно, логическое значение этого выражения зависит от значения z , но нет ничего, называемого x или y, от чего оно могло бы зависеть.
Более широко, в большинстве доказательств, используются связанные переменные. Например, следующее доказательство показывает, что все квадраты положительных четных целых чисел делятся на
В доказательстве в качестве связанных переменных в целом использовались не только k , но и n .
Следующее
некоторые общие операторы связывания переменных . Каждый из них связывает переменную x для некоторого множества S.
Многие из них являются операторами , которые действуют на функции связанной переменной. В более сложных контекстах такие обозначения могут стать неуклюжими и запутанными. Может быть полезно перейти к обозначениям, которые делают привязку явной, например
для сумм или
для дифференциации.
Механизмы связывания переменных встречаются в разных контекстах в математике, логике и информатике. Однако во всех случаях они являются чисто синтаксическими свойствами выражений и переменных в них. Для этого раздела мы можем обобщить синтаксис, отождествив выражение с деревом , конечные узлы которого являются переменными, константами, константами функций или константами предикатов, а неконечные узлы являются логическими операторами. Затем это выражение можно определить, выполнив симметричный обход дерева. Операторы связывания переменных — это логические операторы , которые встречаются почти в каждом формальном языке. Оператор связывания Q принимает два аргумента: переменную v и выражение P , и при применении к его аргументам создает новое выражение Q( v , P ). Значение операторов связывания предоставляется семантикой языка и здесь нас не касается.
Связывание переменных связывает три вещи: переменную v , местоположение a для этой переменной в выражении и неконечный узел n формы Q( v , P ). Примечание: мы определяем местоположение в выражении как конечный узел в синтаксическом дереве. Связывание переменных происходит, когда это местоположение находится ниже узла n .
В лямбда-исчислении , x
является связанной переменной в термине M = λx. T
и свободной переменной в термине T
. Мы говорим, x
что является связанной в M
и свободной в T
. Если T
содержит подтерм, λx. U
то x
является отскоком в этом термине. Говорят, что эта вложенная внутренняя привязка x
"тенит" внешнюю привязку. Вхождения x
в U
являются свободными вхождениями нового x
. [3]
Переменные, привязанные на верхнем уровне программы, технически являются свободными переменными в пределах терминов, к которым они привязаны, но часто обрабатываются особым образом, поскольку их можно скомпилировать как фиксированные адреса. Аналогично, идентификатор, привязанный к рекурсивной функции , также технически является свободной переменной в пределах своего собственного тела, но обрабатываются особым образом.
Закрытый терм — это терм, не содержащий свободных переменных.
Чтобы привести пример из математики, рассмотрим выражение, которое определяет функцию
где t — выражение. t может содержать некоторые, все или ни одного из x 1 , …, x n и может содержать другие переменные. В этом случае мы говорим, что определение функции связывает переменные x 1 , …, x n .
Таким образом, выражения определения функции, показанные выше, можно рассматривать как оператор связывания переменной, аналогичный лямбда-выражениям лямбда-исчисления . Другие операторы связывания, такие как знак суммы , можно рассматривать как функции более высокого порядка, применяемые к функции. Так, например, выражение
можно рассматривать как обозначение для
где — оператор с двумя параметрами — однопараметрической функцией и множеством для оценки этой функции. Другие перечисленные выше операторы могут быть выражены аналогичным образом; например, квантификатор всеобщности можно рассматривать как оператор, который вычисляет логическую конъюнкцию булевой функции P , примененной к (возможно бесконечному) множеству S.
При анализе в формальной семантике можно увидеть, что естественные языки имеют свободные и связанные переменные. В английском языке личные местоимения, такие как he , she , they и т. д., могут выступать в качестве свободных переменных.
В предложении выше притяжательное местоимение her является свободной переменной. Оно может относиться к ранее упомянутой Лизе или к любой другой женщине. Другими словами, her book может относиться к книге Лизы (пример кореференции ) или к книге, которая принадлежит другой женщине (например, Jane's book). Кто бы ни был референтом her , его можно установить в соответствии с ситуативным (т. е. прагматическим ) контекстом. Идентичность референта может быть показана с помощью коиндексных нижних индексов, где i указывает на одного референта, а j указывает на второго референта (отличного от i ). Таким образом, предложение Lisa found her book имеет следующие интерпретации:
Это различие представляет не только академический интерес, поскольку в некоторых языках на самом деле существуют разные формы her i и her j : например, в норвежском и шведском языках кореферентный her i переводится как sin , а некореферентный her j — как hennes .
В английском языке допускается указание кореферентности, но это необязательно, поскольку обе интерпретации предыдущего примера являются допустимыми (грамматически неверная интерпретация отмечена звездочкой):
Однако возвратные местоимения , такие как yourself , yourself , yourself и т. д., и взаимные местоимения , такие как each other , действуют как связанные переменные. В предложении, подобном следующему:
возвратная сама может ссылаться только на ранее упомянутый антецедент , в данном случае Джейн , и никогда не может ссылаться на другую женскую персону. В этом примере переменная сама связана с существительным Джейн , которое находится в позиции субъекта . Указывая на коиндексацию, первая интерпретация с коиндексацией Джейн и сама является допустимой, но другая интерпретация, где они не коиндексированы, является неграмматической :
Связывание кореферентности может быть представлено с помощью лямбда-выражения , как упоминалось в предыдущем разделе Формальное объяснение. Предложение с возвратным падежом может быть представлено как
в котором Jane — это аргумент референта субъекта, а λx.x hurt x — это предикатная функция (абстракция лямбда) с лямбда-нотацией и x, указывающими как семантический субъект, так и семантический объект предложения как связанные. Это возвращает семантическую интерпретацию JANE hurt JANE , где JANE — это одно и то же лицо.
Местоимения также могут вести себя по-разному. В предложении ниже
местоимение her может относиться только к женщине, которая не является Ashley. Это означает, что оно никогда не может иметь возвратного значения, эквивалентного Ashley hit yourself . Грамматические и неграмматические интерпретации следующие:
Первая интерпретация невозможна. Грамматикой допускается только вторая интерпретация.
Таким образом, можно увидеть, что возвратные и реципрокные формы являются связанными переменными (технически известными как анафоры ), в то время как истинные местоимения являются свободными переменными в некоторых грамматических структурах, но переменными, которые не могут быть связаны в других грамматических структурах. Связывающие явления, обнаруженные в естественных языках, были особенно важны для синтаксического управления и теории связывания (см. также: Связывание (лингвистика) ).