Параллели между естественными языками и языками программирования
Авторы: Овчарова Марина Васильевна, Хаустова Светлана Александровна
Рубрика: 5. Общее и прикладное языкознание
Опубликовано в
Дата публикации: 04.12.2016
Статья просмотрена: 2147 раз
Библиографическое описание:
Овчарова, М. В. Параллели между естественными языками и языками программирования / М. В. Овчарова, С. А. Хаустова. — Текст : непосредственный // Филологические науки в России и за рубежом : материалы IV Междунар. науч. конф. (г. Санкт-Петербург, декабрь 2016 г.). — Санкт-Петербург : Свое издательство, 2016. — С. 43-45. — URL: https://moluch.ru/conf/phil/archive/233/11553/ (дата обращения: 18.12.2024).
В настоящее время крайне насущны вопросы обучения как естественным языкам, так и языкам программирования.
Издавна параллельно существуют такие дисциплины, как информатика и лингвистика. У каждой из них свое поле деятельности, своя история, свои достижения и насущные задачи. На первый взгляд, они весьма слабо связаны друг с другом. Действительно, лингвистика изучает человеческие языки — как существующие, так и вышедшие из употребления (или мертвые). Лингвистика в большей мере является гуманитарной наукой, чем точной. Информатика (или, как теперь принято говорить, computer science) — скорее область математики. Она изучает алгоритмы и вычисления, а также все, что связано с этими понятиями. Иногда даже ее называют вычислительная математика. Если лингвистика как наука существует с древних времен, то и информатика как академическая дисциплина появилась только в конце 50-х гг. XX века. Прикладное использование информатики при решении лингвистических задач достаточно широко распространено, особенно при обработке данных. Существует даже компьютерная лингвистика, которая своей целью ставит использование математических моделей при описании естественных языков. Но нет, к примеру, «лингвистической информатики». Однако в развитие информатики большой вклад внесли именно лингвисты. [1]
Информация становится понятной, если она выражена языком, на котором говорят те, кому предназначена информация.
В процессе развития человеческого общества люди выработали большое число языков.
Язык — это знаковая система, используемая для целей коммуникации и познания. Основой большинства языков является алфавит — набор символов, из которых можно составлять слова и фразы данного языка.
Язык характеризуется:
‒ ·набором используемых знаков;
‒ правилами образования из этих знаков таких языковых конструкций, как “слова”, “фразы” и “тексты” (в широком толковании этих понятий);
‒ набором синтаксических, семантических и прагматических правил использования этих языковых конструкций.
Все языки можно разделить на естественные и искусственные.
Естественными называются “обычные”, “разговорные” языки, которые складываются стихийно и в течение долгого времени. История каждого такого языка неотделима от истории народа, владеющего им. Естественный язык, предназначенный, прежде всего, для повседневного общения, имеет целый ряд своеобразных черт:
‒ почти все слова имеют не одно, а несколько значений;
‒ часто встречаются слова с неточным и неясным содержанием;
‒ значения отдельных слов и выражений зависят не только от них самих, но и от их окружения (контекста);
‒ распространены синонимы (разное звучание — одинаковый смысл) и омонимы (одинаковое звучание — разный смысл);
‒ ·одни и те же предметы могут иметь несколько названий;
‒ есть слова, не обозначающие никаких предметов;
‒ многие соглашения относительно употребления слов не формулируются явно, а только предполагаются и для каждого правила есть исключения и т. д.
Основными функциями естественного языка являются:
- · коммуникативная (функция общения);
- ·когнитивная (познавательная функция);
- · эмоциональная (функция формирования личности);
- ·директивная (функция воздействия).
Все языки можно разделить на естественные и искусственные.
Естественными называются “обычные”, “разговорные” языки, которые складываются стихийно и в течение долгого времени. История каждого такого языка неотделима от истории народа, владеющего им.
Искусственные языки создаются людьми для специальных целей либо для определенных групп людей: язык математики, морской семафор, язык программирования. Характерной особенностью искусственных языков является однозначная определенность их словаря, правил образования выражений и правил придания им значений.
Любой язык, и естественный и искусственный, обладает набором определенных правил. Они могут быть явно и строго сформулированными (формализованными), а могут допускать различные варианты их использования. [2]
Формализованный(формальный) язык — язык, характеризующийся точными правилами построения выражений и их понимания. Он строится в соответствии с четкими правилами, обеспечивая непротиворечивое, точное и компактное отображение свойств и отношений изучаемой предметной области (моделируемых объектов).
В отличие от естественных языков формальным языкам присущи четко сформулированные правила семантической интерпретации и синтаксического преобразования используемых знаков, а также то, что смысл и значение знаков не изменяется в зависимости от каких-либо прагматических обстоятельств (например, от контекста).
Формальные языки широко применяются в науке и технике. В процессе научного исследования и практической деятельности формальные языки обычно используются в тесной взаимосвязи с естественным языком, поскольку последний обладает гораздо большими выразительными возможностями. В то же время формальный язык является средством более точного представления знаний, чем естественный язык, а следовательно, средством более точного и объективного обмена информацией между людьми.
Формальные языки часто конструируются на базе языка математики. Веком бурного развития различных формальных языков можно считать XX век.
С точки зрения информатики, среди формальных языков наиболее значительную роль играют формальный язык логики (язык алгебры логики) и языки программирования.
Языков программирования и их диалектов (разновидностей) насчитывается несколько тысяч.
По некоторым данным, в мире насчитывается около 7000 естественных живых языков и одновременно около 8500 языков программирования. Конечно, эти цифры достаточно приблизительны.Несмотря на большие различия, естественные языки имеютнекоторые общие черты. Они называются универсалиями. Различаютфонологические, грамматические и некоторые другие универсалии.
Как невозможно изучить иностранный язык, не изучив фразеологизмы, так невозможно изучить и язык программирования, не узнав часто употребляемые идиомы. И вот что интересно. Как в разных естественных языках встречается много идиом с близким смыслом, так и в разных языках программирования встречаются одни и те же конструкции (быть может, с разным синтаксисом, но с близким содержанием). [3]
Теперь попробуем рассмотреть соотношение лингвистики и информатики на примере автоматической обработки текста. Обрабатывать текст можно по-разному. Ограничимся системами машинного перевода с одного языка на другой. Такие системы используют весь арсенал собственно лингвистических средств.
Исходный текст проходит ряд этапов обработки: первичный анализ (графематический анализ, морфологический анализ, фрагментация текста), затем лексический, синтаксический, семантический анализ (локальный и глобальный), после этого идет межъязыковый переход, и в обратном порядке этапы синтеза: семантический, синтаксический, лексический, морфологический.
При этом может происходить возврат на предыдущий этап, например, при обнаружении синтаксической неоднозначности, она может разрешиться на этапе семантического анализа. При всех усилиях, затрачиваемых на создание таких систем, их работа оставляет желать лучшего. Какую же параллель можно увидеть в информатике? Конечно же, машинный перевод с одного языка программирования на другой. [6]
Прежде всего, это перевод на машинный язык. Такой переводчик так и называется — транслятор. Однако обратный перевод с машинного на язык программирования очень затруднен. Фактически он работает только для языков самого низкого уровня — ассемблеров. Поэтому он и называется дизассемблер. Но и в этом случае зачастую перевод далек от совершенства. Хотя команды ассемблера однозначно переводятся в машинные команды, но возникает проблема разграничения области данных и области инструкций, т. е. проблема контекста.
И хотя в этом случае контекста всего два, но все равно автоматический перевод становится практически невозможным.
Еще сложнее картина возникает при попытке перевода на язык более высокого уровня. Задача становится настолько сложной, что такие переводчики даже не создаются — цель не оправдывает средств. [5]
Отсюда видно, насколько сложная задача стоит в случае перевода с одного естественного языка на другой.
Таким образом, мы увидели насколько существует глубокая связь между двумя такими непохожими отраслями знаний.
Литература:
- Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно- ориентированного проектирования. Паттерны проектирования = DesignPatterns: ElementsofReusableObject-OrientedSoftware. — СПб.: Питер, 2007. — 366 с.
- Гивенталь И. А. Как удивиться и возмутиться по-английски. — М.: Флинта: Наука, 2008. — 247 с.
- Гринберг Дж. Некоторые грамматические универсалии, преимущественно касающиеся порядка значимых элементов // Новое в лингвистике. — Вып. V. — М., 1970. — С. 70–79.
- Леонтьева Н. Н. Автоматическое понимание текстов. Системы, модели, ресурсы. — М.: Академия, 2006. — 303 с.
- Степанов Ю. С. Константы: Словарь русской культуры. — М.: Языки русской культуры, 1997. — 824 с.
- Уолл Л., Кристиансен Т., Орвант Дж. Программирование на Perl. — М.: Символ-Плюс, 2006. — 1150 с.
- Chomsky N. A. Syntactic Structures. — The Hague–Paris: Mouton, 1957. –117с