Язык - это естественно возникшая в человеческом обществе и развивающаяся система облеченных в звуковую форму знаковых единиц, способная выразить всю совокупность понятий и мыслей человека и предназначенная прежде всего для целей коммуникации. Если говорить проще, то язык - это система знаков, передающая информацию. Знак есть минимальная составляющая слов (единиц языка).
Из слов формируется словарь - перечень слов языка. Например, словарь Ожегова в русском языке.
Слова являются инструментами моделирования, потому что они отсылают к свои объектам (сущностям), выделяемым из фона.
Также для языка важно определить правила по которым знаки могут сочетаться друг с другом - этим занимается синтаксис. Затем важно определить семантику, которая определяет каким смыслом наделяют сочетания знаков. И, наконец, нужно определить прагматику языка, то есть описать как знаки и их сочетания будут определяться в коммуникативных ситуациях на практике.
Как мы понимаем, язык может быть НЕ только естественным. Например, языком программирования. Но как и для естественного языка, для других языков также существуют знаки, словарь, синтаксис, семантика и прагматика.
Над языками существуют мета-языки.
Мета-язык - это язык, описывающий другой язык. Как математика описывает физику и является для нее мета-наукой, так и синтаксис описывает язык и является для него мета-языком. У синтаксиса есть своя мета-язык, описывающий его и так далее по цепочке вверх. Например, форма Бэкуса-Наура (БНФ) - является мета-языком, наглядно описываюшим большинство языков программирования.
Например, билетная система, которую разрабатывает моя компания является индивидуальным физическим объектом, работающим на компьютере. Написана она на исходном коде, который является описанием физического объекта (метаязыком для программы). Исходный код написан на языке программирования С++, который в свою очередь, является мета-языком для исходного кода программы. Язык С++ задается через его алфавит и лексемы - минимальные единицы языка программирования, имеющие самостоятельный смысл: индентижикаторы, ключевые слова, знаки операций, константы, разделители. При этом каждый элемент языка программирования определяется синтаксисом и семантикой.
Онтологический дребезг
Онтологический дребезг возникает чаще всего моей работе в связке с языком, когда сотрудники из разных ролей интерпретирую один и тот же термин (знак) по-разному. Например, роль архитектора продукта в моей компании. Изначально главный разработчик и генеральный директор понимали эту роль по-разному.
Главный разработчик понимал роль архитектора ПО, как человека, понимающего архитектуру софта и направляющего разработчика в нужную сторону при создании продукта. Рабочим продуктом своей работы главный разрабочтик считал готовый продукт, который не вызывает проблем в работе основного ПО.
Генеральный директор же понимал роль архитектора ПО как человека, который управляет всем процессом создания продукта, в котором принимают участие не только программисты, но и UX/UI дизайнеры, тестировщики, маркетологи. То есть рабочим продуктом такой работы является успешно реализованный продукт, готовый к продаже клиентам.
После синхронизации понятий о конечном рабочем продукте между главным разработчиком и генеральным директором скорость и качество выпущенных продуктов компанией резко возросло.