В логике и лингвистике метаязык — это язык, используемый для описания другого языка, часто называемого объектным языком . [1] Выражения на метаязыке часто отличаются от выражений на объектном языке с помощью курсива, кавычек или написания на отдельной строке. [ требуется ссылка ] Структуру предложений и фраз на метаязыке можно описать с помощью метасинтаксиса . [2] Например, чтобы сказать, что слово «существительное» может использоваться в качестве существительного в предложении, можно написать «существительное» — это <существительное> .
Существует множество признанных типов метаязыков, включая встроенные , упорядоченные и вложенные (или иерархические ) метаязыки.
Встроенный метаязык — это язык, формально, естественно и прочно зафиксированный в объектном языке. Эта идея встречается в книге Дугласа Хофштадтера « Гёдель, Эшер, Бах » при обсуждении взаимосвязи между формальными языками и теорией чисел : «... в природе любой формализации теории чисел заложено, что ее метаязык встроен в нее». [3]
Это происходит и в естественных или неформальных языках, например, в английском, где такие слова, как существительное , глагол или даже слово, описывают особенности и концепции, относящиеся к самому английскому языку.
Упорядоченный метаязык аналогичен упорядоченной логике . Примером упорядоченного метаязыка является построение одного метаязыка для обсуждения объектного языка, за которым следует создание другого метаязыка для обсуждения первого и т. д.
Вложенный (или иерархический ) метаязык похож на упорядоченный метаязык тем, что каждый уровень представляет большую степень абстракции. Однако вложенный метаязык отличается от упорядоченного тем, что каждый уровень включает в себя нижележащий.
Парадигматический пример вложенного метаязыка исходит из таксономической системы Линнея в биологии. Каждый уровень в системе включает в себя тот, что находится ниже. Язык, используемый для обсуждения рода, также используется для обсуждения вида; тот, который используется для обсуждения отрядов , также используется для обсуждения родов и т. д., вплоть до царств.
Естественный язык объединяет вложенные и упорядоченные метаязыки. В естественном языке существует бесконечный регресс метаязыков, каждый из которых имеет более специализированный словарь и более простой синтаксис.
Обозначая язык теперь как , грамматика языка представляет собой дискурс на метаязыке , который является подъязыком [4], вложенным в .
Поскольку все эти метаязыки являются подъязыками , является вложенным метаязыком, но и сиквел являются упорядоченными метаязыками. [5] Поскольку все эти метаязыки являются подъязыками , они все являются встроенными языками по отношению к языку в целом.
Все метаязыки формальных систем в конечном итоге сводятся к естественному языку, «общему языку», на котором математики и логики общаются, чтобы определить свои термины и операции и «зачитать» свои формулы. [6]
Существует несколько сущностей, обычно выражаемых в метаязыке. В логике обычно объектный язык, который обсуждает метаязык, является формальным языком , а очень часто и метаязыком.
Дедуктивная система ( или дедуктивный аппарат формальной системы ) состоит из аксиом (или схем аксиом ) и правил вывода , которые могут быть использованы для вывода теорем системы. [7]
Метапеременная (или металингвистическая или метасинтаксическая переменная) — это символ или набор символов в метаязыке, который обозначает символ или набор символов в некотором объектном языке. Например, в предложении:
Символы A и B не являются символами объектного языка , они являются метапеременными в метаязыке (в данном случае английском), на котором обсуждается объектный язык .
Метатеория — это теория , предметом которой является некоторая другая теория (теория о теории). Утверждения, сделанные в метатеории о теории, называются метатеоремами . Метатеорема — это истинное утверждение о формальной системе, выраженное на метаязыке. В отличие от теорем, доказанных в рамках данной формальной системы, метатеорема доказывается в рамках метатеории и может ссылаться на концепции, которые присутствуют в метатеории, но не в объектной теории. [8]
Интерпретация — это придание значений символам и словам языка .
Майкл Дж. Редди (1979) утверждает, что большая часть языка, который мы используем для разговоров о языке, концептуализируется и структурируется тем, что он называет метафорой канала . [9] Эта парадигма действует через две различные, связанные структуры.
Основная концепция рассматривает язык как герметичный канал между людьми:
В рамках второстепенной структуры язык рассматривается как открытая труба, изливающая ментальное содержимое в пустоту:
Компьютеры следуют программам, наборам инструкций на формальном языке. Разработка языка программирования подразумевает использование метаязыка. Акт работы с метаязыками в программировании известен как метапрограммирование .
Форма Бэкуса–Наура , разработанная в 1960-х годах Джоном Бэкусом и Питером Науром, является одним из самых ранних метаязыков, используемых в вычислительной технике. Примерами современных языков программирования, которые обычно используются в метапрограммировании, являются ML , Lisp , m4 и Yacc .