Связанные понятия
Формальный язык в математической логике и информатике — множество конечных слов (строк, цепочек) над конечным алфавитом. Понятие языка чаще всего используется в теории автоматов, теории вычислимости и теории алгоритмов. Научная теория, которая имеет дело с этим объектом, называется теорией формальных языков.
Отображение онтологий (англ. ontology alignment или ontology matching) — это процесс установления соответствий между понятиями (концептами) нескольких онтологий. Множество таких соответствий и называется «отображением». Термин имеет разное значение в компьютерной, когнитивной областях и философии.
Сема́нтика в программировании — дисциплина, изучающая формализации значений конструкций языков программирования посредством построения их формальных математических моделей. В качестве инструментов построения таких моделей могут использоваться различные средства, например, математическая логика, λ-исчисление, теория множеств, теория категорий, теория моделей, универсальная алгебра. Формализация семантики языка программирования может использоваться как для описания языка, определения свойств языка...
Предме́тная о́бласть — множество всех предметов, свойства которых и отношения между которыми рассматриваются в научной теории. В логике — подразумеваемая область возможных значений предметных переменных логического языка.
Упоминания в литературе
Как уже было отмечено, в отличие от Витгенштейна члены Венского кружка пришли к выводу, что можно анализировать и выражать в языке логическую форму языковых выражений. Осуществление такого анализа стало одной из главных задач в творчестве Карнапа. Воспринимая язык как систему знаков[45], организованную согласно определенным правилам, Карнап проводил четкую границу между естественными и формализованными языками. Если правила естественных языков являются эмпирическими обобщениями, полученными при описании действительного лингвистического употребления или поведения, и изучаются эмпирической лингвистикой, то правила формализованных языков представляют собой соглашения, явно сформулированные для конкретных целей их создателями. Вслед за Расселом и Витгенштейном Карнап полагал, что для философии интересны именно вторые языки, поскольку только с их помощью можно выявить правильную логическую форму языковых выражений. Кроме того, под влиянием А. Тарского Карнап принял строгое различение объектного языка и
метаязыка : объектный язык используется для того, чтобы говорить об объектах, находящихся вне этого языка, тогда как метаязык – это язык, в котором описываются и анализируются свойства объектного языка[46]. Именно таким образом Карнап надеялся преодолеть вывод Витгенштейна о мистической невыразимости логической формы языковых выражений.
5. Семантика в ее современном виде, по-видимому, подошла к решению проблемы, волновавшей многих лингвистов и нашедшей выражение в знаменитой формуле Л. Блумфилда, согласно которой смысл существует, но мы не можем сказать о нем что-нибудь осмысленное. И действительно, если известная «материальность» означающего служит гарантом научного описания, то план означаемого, который мы можем только предполагать, ускользал от позитивного изучения. Нужна была революция в умах ученых: на смену их уверенности в том, что они описывают «факты» языка, пришла идея, что лингвистика – это лишь теоретический конструкт, – построение, стремящееся объяснить явления, иначе (и непосредственно) непостижимые. Лишь после этого могла быть допущена и признана семантика как искусственно построенный язык, способный говорить о языке-объекте. Следует отметить, что признание семантики
метаязыком привело к более или менее осознанному размежеванию специалистов в этой области: наряду с пониманием семантики как научного метаязыка, к которому присоединяемся мы, семантический язык часто рассматривается как обычное парафразирование на естественном языке.
Теория может сформироваться и быть сформулированной лишь на уровне перекодировки. Знание усваивается лишь через злоупотребление «правильным» языком. Его место – на уровне концептов. Таким образом, оно не заключается ни в каком-то особом языке, ни в
метаязыке , пусть эти концепты и подходят науке о языке как таковой. Познание пространства не может с самого начала замыкаться в этих категориях. Код кодов? Если угодно, да, но эта функция теории по «возведению в квадрат» мало что проясняет. Если в прошлом существовали коды пространства, отличающие каждую пространственную (социальную) практику, если эти кодификации и соответствующее им пространство уже были произведены, то теория должна будет описать их генезис, их влияние, их угасание. Ясно, что подобный анализ должен вестись в иной плоскости, нежели работы специалистов в данной области: следует не подчеркивать формальную строгость кодов, но привнести диалектику в само это понятие. Оно займет место в практических отношениях и взаимодействиях «субъектов» с их пространством, с окружающими их местами. Следует показать генезис и исчезновение кодировок и расшифровок. Следует вывести на свет все содержания – социальные (пространственные) практики, неотделимые от форм.
У философии нет других средств, кроме высокопорядковых рефлексивных концептов, задаваемых не дефинициями, а каскадами разверток и сериями сборок, выписыванием проектов, ценностей и целей, принципов и предпосылок, технологий и приемов, инструментов и операций, последовательностями дискурсивных шагов и процедур, которые выполняются в определенном социокультурном контексте, включающем условия возможности собственного производства. Конечно, было бы весьма соблазнительно попытаться построить наконец-то «общую теорию всего» как универсальную метатеорию на универсальном
метаязыке , однако «“метаязыка не существует”» [188, с. 155][27] – не в смысле эмпирической констатации наличного положения дел («метаязыка нет, но он может/должен быть создан») и не в смысле отсутствия языковых средств для самоописания (даже обычные естественные языки обладают такой способностью), но в смысле невозможности всёобъясняющего и самопрозрачного совершенного языка [см. 534][28], порождающего абсолютно прозрачные тексты, которые интерпретируют всё остальное, но исключают необходимость и возможность собственной интерпретации. Тем не менее вполне возможно проследить, каким образом имеющиеся конкретные языки и концептуальные сетки способны выполнять на различных уровнях рефлексии некоторые метафункции по отношению к себе и друг к другу. И если не рассматривать практику исключительно как теоретический концепт и отрефлексировать, насколько это возможно, само практическое разворачивание концептуализации, отслеживая проявление и действие возникающих тут перформативных эффектов, можно заметить и зафиксировать симптомы той связности, которая обеспечивает соответствующую возможность.
Неизбежной сложностью подобного подхода является неясность позиции автора концепции. Казалось бы, он должен позиционировать себя как объективный наблюдатель, изучающий свойства коммуникативной среды как внешнего объекта. Но в таком случае правила деятельности исследователя должны быть принципиально отличны от законов функционирования среды. Автор концепции все же оказывается субъектом мыслительного акта и, следовательно, неизбежно рассматривает себя как исключение из правила, объявленного ранее универсальным. Тем самым восстанавливается позиция методологического солипсизма. Язык, на котором создается описание коммуникативной среды, должен быть тогда
метаязыком , отличным от языка-объекта (т. е. подлежащего исследованию языка сообщества). Существенно, что этот метаязык оказывается личным языком исследователя.
«Одно из основных методологических требований системного подхода, – подчеркивает в этой связи B.C. Мерлин, – заключается в том, что характеристика системы в целом требует иных понятий, чем характеристика отдельных иерархических уровней. Каждый уровень… является предметом какой-либо специальной науки, характеризуется в ее понятиях, описывается на ее языке. Система в целом, а также взаимосвязь различных ее уровней, не подчиняются… специальным закономерностям (но подчиняются одной и той же неспецифической закономерности. – Авт.). Они могут быть описаны особыми понятиями (математическими, философскими, общенаучными, общесистемными и пр. – Авт.) и на особом языке –
метаязыке » [28; с. 36–37].
Впрочем, увлекаясь экстраполяцией бергсоновской методологии на сферу гуманитарных наук, нельзя упускать из виду собственные намерения философа. Он, как уже говорилось, мечтал придать метафизике статус науки, предназначая собственный метод именно «новой метафизике», которая выступает в бергсоновском учении как гносеологический коррелят и антипод точным наукам. В чем-то эти весы, на одной чаше которых – метафизика, а на другой – «науки о природе», напоминают программу М. Бахтина: по его мысли, философия «начинается там, где кончается точная научность и начинается инонаучность. Ее можно определить как
метаязык всех наук (и всех видов познания и сознания)»[293].
Нередко научные категории довольно свободно переносятся в другие контексты (нравственный, эстетический, метафизический и так далее), и ученые сделали очень хорошо, предупредив, что данные категории представляют собой орудия чисто «домашние», кустарные, для внутреннего потребления, действенные только в их весьма ограниченной сфере. Но, помня об этом, мы считаем, что заняли бы чересчур неплодотворную позицию, если бы не попытались поставить вопрос: не существует ли некое единство «поведения» различных культурных подходов? Стремясь установить это единство, мы, с одной стороны, выяснили бы, до какой степени может быть однородной культура, а с другой – попытались бы на междисциплинарной основе на уровне культурных поведенческих структур реализовать то единство знания, которое на метафизическом уровне оказалось иллюзорным, но, которое, тем не менее, все время пытаются осуществить, чтобы сделать однородными и открытыми друг для друга наши рассуждения о мире. Как это можно осуществить: через выявление универсальных структур или через выработку
метаязыка ? Нельзя сказать, что наше исследование никак не связано с решением этой проблемы, но ясно, что оно этим не исчерпывается. Такие исследования проводятся как раз для того, чтобы однажды можно было собрать воедино все полезные элементы и решить проблему.
В связи с многообразием интенций, получающих выражение в речи, встает вопрос их номенклатуры и типологии. Выработка
метаязыка в описании совокупности речевых интенций связана с теорией речевых актов.
Связанные понятия (продолжение)
Идиома программирования — устойчивый способ выражения некоторой составной конструкции в одном или нескольких языках программирования. Идиома является шаблоном решения задачи, записи алгоритма или структуры данных путём комбинирования встроенных элементов языка.
Представление знаний — вопрос, возникающий в когнитологии (науке о мышлении), в информатике и в исследованиях искусственного интеллекта.
Семанти́ческая сеть — информационная модель предметной области, имеющая вид ориентированного графа, вершины которого соответствуют объектам предметной области, а дуги (рёбра) задают отношения между ними. Объектами могут быть понятия, события, свойства, процессы. Таким образом, семантическая сеть является одним из способов представления знаний. В названии соединены термины из двух наук: семантика в языкознании изучает смысл единиц языка, а сеть в математике представляет собой разновидность графа...
Тип-сумма (англ. sum type; также Σ-тип, меченое объединение) — конструкция в языках программирования и интуиционистской теории типов, тип данных, построенный как дизъюнктное объединение исходных типов.
Логи́ческое программи́рование — парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.
Теория языков программирования (англ. programming language theory, PLT) — раздел информатики, посвящённый вопросам проектирования, анализа, определения характеристик и классификации языков программирования и изучением их индивидуальных особенностей. Тесно связана с другими ветвями информатики, результаты теории используются в математике, в программной инженерии и лингвистике.
Формализа́ция — представление какой-либо содержательной области (рассуждений, доказательств, процедур классификации, поиска информации, научных теорий) в виде формальной системы или исчисления.
Форма Бэкуса — Наура (сокр. БНФ, Бэкуса — Наура форма) — формальная система описания синтаксиса, в которой одни синтаксические категории последовательно определяются через другие категории. БНФ используется для описания контекстно-свободных формальных грамматик. Существует расширенная форма Бэкуса — Наура, отличающаяся лишь более ёмкими конструкциями.
Мона́да — это абстракция линейной цепочки связанных вычислений. Монады позволяют организовывать последовательные вычисления.
Исчисление процессов или алгебра процессов — семейство связанных подходов к формальному моделированию параллельных систем.
По одной из классификаций, языки программирования неформально делятся на сильно и слабо типизированные (англ. strongly and weakly typed), то есть обладающие сильной или слабой системой типов. Эти термины не являются однозначно трактуемыми, и чаще всего используются для указания на достоинства и недостатки конкретного языка. Существуют более конкретные понятия, которые и приводят к называнию тех или иных систем типов «сильными» или «слабыми».
Подробнее: Сильная и слабая типизация
Сопоставление с образцом (англ. Pattern matching) — метод анализа и обработки структур данных в языках программирования, основанный на выполнении определённых инструкций в зависимости от совпадения исследуемого значения с тем или иным образцом, в качестве которого может использоваться константа, предикат, тип данных или иная поддерживаемая языком конструкция.
Формальная грамматика или просто грамматика в теории формальных языков — способ описания формального языка, то есть выделения некоторого подмножества из множества всех слов некоторого конечного алфавита. Различают порождающие и распознающие (или аналитические) грамматики — первые задают правила, с помощью которых можно построить любое слово языка, а вторые позволяют по данному слову определить, входит ли оно в язык или нет.
Абстра́ктный тип да́нных (АТД) — это математическая модель для типов данных, где тип данных определяется поведением (семантикой) с точки зрения пользователя данных, а именно в терминах возможных значений, возможных операций над данными этого типа и поведения этих операций.
В информатике
лексический анализ («токенизация», от англ. tokenizing) — процесс аналитического разбора входной последовательности символов на распознанные группы — лексемы, с целью получения на выходе идентифицированных последовательностей, называемых «токенами» (подобно группировке букв в словах). В простых случаях понятия «лексема» и «токен» идентичны, но более сложные токенизаторы дополнительно классифицируют лексемы по различным типам («идентификатор, оператор», «часть речи» и т. п.). Лексический...
Алгебраи́ческий тип да́нных — в информатике наиболее общий составной тип, представляющий собой тип-сумму из типов-произведений. Алгебраический тип имеет набор конструкторов, каждый из которых принимает на вход значения определённых типов и возвращает значение конструируемого типа. Конструктор представляет собой функцию, которая строит значение своего типа на основе входных значений. Для последующего извлечения этих значений из алгебраического типа используется сопоставление с образцом.
Расширенная форма Бэкуса — Наура (расширенная Бэкус — Наурова форма (РБНФ)) (англ. Extended Backus–Naur Form (EBNF)) — формальная система определения синтаксиса, в которой одни синтаксические категории последовательно определяются через другие. Используется для описания контекстно-свободных формальных грамматик. Предложена Никлаусом Виртом. Является расширенной переработкой форм Бэкуса — Наура, отличается от БНФ более «ёмкими» конструкциями, позволяющими при той же выразительной способности упростить...
Реляционная модель данных (РМД) — логическая модель данных, прикладная теория построения баз данных, которая является приложением к задачам обработки данных таких разделов математики, как теория множеств и логика первого порядка.
Метало́гика — изучение метатеории логики. В то время, как логика представляет собой исследование способов применения логических систем для рассуждения, доказательств и опровержений, металогика исследует свойства самих логических систем.
Контекстно-свободная грамматика (КС-грамматика, бесконтекстная грамматика) — частный случай формальной грамматики (тип 2 по иерархии Хомского), у которой левые части всех продукций являются одиночными нетерминалами (объектами, обозначающими какую-либо сущность языка (например: формула, арифметическое выражение, команда) и не имеющими конкретного символьного значения). Смысл термина «контекстно-свободная» заключается в том, что есть возможность применить продукцию к нетерминалу, причём независимо...
Ля́мбда-исчисле́ние (λ-исчисление) — формальная система, разработанная американским математиком Алонзо Чёрчем, для формализации и анализа понятия вычислимости.
Онтоло́гия в информатике (новолат. ontologia от др.-греч. ὤν род. п. ὄντος — сущее, то, что существует и λόγος — учение, наука) — это попытка всеобъемлющей и подробной формализации некоторой области знаний с помощью концептуальной схемы. Обычно такая схема состоит из структуры данных, содержащей все релевантные классы объектов, их связи и правила (теоремы, ограничения), принятые в этой области. Этот термин в информатике является производным от древнего философского понятия «онтология».
Паради́гма программи́рования — это совокупность идей и понятий, определяющих стиль написания компьютерных программ (подход к программированию). Это способ концептуализации, определяющий организацию вычислений и структурирование работы, выполняемой компьютером.
Выразительность языка программирования — качество языка, показывающее, насколько разнообразны идеи, которые можно реализовать на этом языке, и насколько легко они читаются.
В логике логи́ческими опера́циями называют действия, вследствие которых порождаются новые понятия, с использованием уже существующих. В более узком смысле, понятие логической операции используется в математической логике и программировании.
Подробнее: Логическая операция
Тип-произведение (также Π-тип, произведение типов; англ. product type) — конструкция в языках программирования и интуиционистской теории типов, тип данных, построенный как декартово произведение исходных типов; другими словами — кортеж типов, или «кортеж как тип». Использованные типы и порядок их следования определяют сигнатуру типа-произведения; порядок следования объектов в создаваемом кортеже сохраняется на протяжении его времени жизни согласно заданной сигнатуре.
Сравне́ние в программировании — общее название ряда операций над па́рами значений одного типа, реализующих математические отношения равенства и порядка. В языках высокого уровня такие операции, чаще всего, возвращают булево значение («истина» или «ложь»).
Теория типов — математически формализованная база для проектирования, анализа и изучения систем типов данных в теории языков программирования (раздел информатики). Многие программисты используют это понятие для обозначения любого аналитического труда, изучающего системы типов в языках программирования. В научных кругах под теорией типов чаще всего понимают более узкий раздел дискретной математики, в частности λ-исчисление с типами.
Декларати́вное программи́рование — это парадигма программирования, в которой задаётся спецификация решения задачи, то есть описывается, что представляет собой проблема и ожидаемый результат. Противоположностью декларативного является императивное программирование, описывающее на том или ином уровне детализации, как решить задачу и представить результат. В общем и целом, декларативное программирование идёт от человека к машине, тогда как императивное — от машины к человеку. Как следствие, декларативные...
Пролог (англ. Prolog) — язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.
Абстрактное синтаксическое дерево (АСД) — в информатике конечное помеченное ориентированное дерево, в котором внутренние вершины сопоставлены (помечены) с операторами языка программирования, а листья — с соответствующими операндами. Таким образом, листья являются пустыми операторами и представляют только переменные и константы.
Каррирование (от англ. currying, иногда — карринг) — преобразование функции от многих аргументов в набор функций, каждая из которых является функцией от одного аргумента. Возможность такого преобразования впервые отмечена в трудах Готтлоба Фреге, систематически изучена Моисеем Шейнфинкелем в 1920-е годы, а наименование получило по имени Хаскелла Карри — разработчика комбинаторной логики, в которой сведение к функциям одного аргумента носит основополагающий характер.
Объектами
первого класса (англ. first-class object, first-class entity, first-class citizen) в контексте конкретного языка программирования называются элементы, которые могут быть переданы как параметр, возвращены из функции, присвоены переменной.
Корефере́нтность или референциональное тождество — отношение между именами — компонентами высказывания, в котором имена ссылаются на один и тот же объект (ситуацию) внеязыковой действительности (референт).
Эзотерический язык программирования — язык программирования, разработанный для исследования границ возможностей разработки языков программирования, для доказательства потенциально возможной реализации некой идеи (так называемое «доказательство концепции», англ. proof of concept), в качестве произведения программного искусства или в качестве шутки (компьютерного юмора).
Каламбур типизации является прямым нарушением типобезопасности. Традиционно возможность построить каламбур типизации связывается со слабой типизацией, но и некоторые сильно типизированные языки или их реализации предоставляют такие возможности (как правило, используя в связанных с ними идентификаторах слова unsafe или unchecked). Сторонники типобезопасности утверждают, что «необходимость» каламбуров типизации является мифом.
Формальная верификация или формальное доказательство — формальное доказательство соответствия или несоответствия формального предмета верификации его формальному описанию. Предметом выступают алгоритмы, программы и другие доказательства.
Удобочитаемость («читабельность») — свойство текстового материала, характеризующее лёгкость восприятия его человеком.
Запись — агрегатный тип данных, инкапсулирующий без сокрытия набор значений различных типов.
Логика второго порядка в математической логике — формальная система, расширяющая логику первого порядка возможностью квантификации общности и существования не только над переменными, но и над предикатами. Логика второго порядка несводима к логике первого порядка. В свою очередь, она расширяется логикой высших порядков и теорией типов.
Зависимый тип (англ. dependent type) в информатике и логике — тип, который зависит от некоторого значения. Зависимые типы играют ключевую роль в интуиционистской теории типов и построении функциональных языков программирования таких как ATS, Agda и...
Абстракция данных — популярная и в общем неверно определяемая техника программирования. Фундаментальная идея состоит в разделении несущественных деталей реализации подпрограммы и характеристик, существенных для корректного её использования. Такое разделение может быть выражено через специальный «интерфейс», сосредотачивающий описание всех возможных применений программы.
Классическая логика — термин, используемый в математической логике по отношению к той или иной логической системе, для указания того, что для данной логики справедливы все законы (классического) исчисления высказываний, в том числе закон исключения третьего.