к оглавлению   к 3GL   к визуальным средам - 4GL   к архитектуре DB-интерфейсов   к технологии программирования

Языки программирования

Естественные языки

С точки зрения программиста естественный язык может быть интересен как минимум в следующих случаях:

7.1. Особенности естественных языков и культурных сред

Для познания нравов какого ни есть народа, старайся прежде изучить его язык.
Пифагор

Различные страны мира применяют различные соглашения по написанию даты, времени, последовательности слов во фразах и т.п. Вот некоторые примеры:

Эти и другие особенности отражают культурную среду. Уже давно элементы культурной среды проникли в языки программирования. Например, стандарт языка программирования С вводит понятие "locale", которое является описанием культурной среды. По умолчанию программа будет выполняться в "культурной среде С". Стандартными функциями, имеющими специфику поведения в определенной культурной среде, являются: atoi(), isainum(), strtod() и многие другие.

Естественный язык - это часть культурной среды. Ниже укажем особенности естественных языков, создающие сложности при переносе программы из одной языковой среды в другую.

О политкорректности в программировании
Американская культурная среда озабочена проблемой политкорректности не только в сфере человеческих отношений, но и сфере, связанной с программированием. Приведем лишь два примера - предлагается заменить команду "man" командной строки операционной системы Unix на команду "person", a системный вызов "abort()" на "choice()".

Существуют основные стандарты на представление текста.

Об обработке художественных текстов

Обратим внимание на то, что в кодировке Latin-1 невозможно обрабатывать тексты многих классических произведений русской литературе! (например, роман "Война и мир"), поскольку они содержат фрагменты на французском и немецком языках.

7.2. Семантический анализ естественных языков

Слова - это крючки, при помощи которых мысли цепляются одна за другую.
Г. Бичер

Задача семантического анализа естественного языка возникла с появлением ЭВМ. Основоположником теории анализа можно считать Ноама Хомского.

7.2.1. Подход Хомского

Хомский применил теорию формальных грамматик к описанию естественного языка [Хомский 1962]. Он первый в явном виде сформулировал задачу превращения лингвистики в точную науку путем построения формализуемых моделей языка, которые могут быть реализованы на компьютере, назвав это генеративной парадигмой. До сих пор его теория трансформационной грамматики в различных видоизменениях является одной из наиболее популярных. Вот этапы развития этой теории с начала 60-х годов XX века:

Целью лингвистического исследования Хомский ставит теорию грамматической компетенции носителя языка. Грамматические структуры описываются формально, при этом целью является развитие синтаксических формализмов, обеспечивающих точное описание множества предложений языка. Теория вводит три языковых уровня: семантический, синтаксический и фонологический. Основное внимание трансформационной грамматики обращается на синтаксический уровень, который описывается автономно. По мнению Хомского, его теория описывает универсальную часть структуры языкового аппарата человека, не зависящую от конкретного языка. При этом предполагается наличие психологических оснований для этой теории, в частности, J того, что такая универсальная грамматика является врожденной.

7.2.2. Подход Цейтина

Семантические сети, разработанные как общий аппарат представления знаний, с самого начала активно использовались для построения систем обработки естественного языка.

Г. С. Цейтин [Цейтин 1985] предложил свою версию представления значения естественно-языковых выражений с помощью семантических сетей. Его ассоциативные сети содержат узлы, выражающие некоторые сущности (соответствующие объектам в тексте или во внешнем мире), и направленные Дуги, соединяющие эти узлы. Содержимым узла может являться число, строка символов, процедура или конечное множество других узлов. Дуги именованы, и имена всех дуг, покидающих данный узел, должны быть различны, чаще всего они предназначены для обозначения семантических и синтаксических ролей. В частности, слова "открыть" и "закрыть" могут быть применены для обозначения действий с широким диапазоном объектов: открыть и закрыть дверь, бутылку, компьютерный файл. В терминах ассоциативных сетей эти слова также могут быть представлены как дуги, которые соединяют некоторые виды объектов и метод соответствующего действия. Фреймы также представимы в виде ассоциативной подсети, один узел которой обозначен как входной для фрейма. Порождение нового фрейма из его прототипа трактуется как копирование участка семантической сети. Важной операцией над сетью является слияние двух узлов: дуги с одинаковыми именами при этой операции сливаются. Этот механизм был использован в нескольких проектах по анализу естественного языка в узкой предметной области, сетевое представление при этом играло роль механизма представления знаний, в частности, для систем автоматизированного проектирования, выбора оптимального пути и т. п.

7.2.3. Подход Тузова

Задача семантического анализа естественного языка очень сложна. Алгоритм такого анализа нетривиален, т. к. разным словам в разных контекстах диалога соответствует разный семантический смысл. В. А. Тузов [Тузов 1990] предложил использовать для представления текста семантический язык, адекватный русскому языку и пригодный для представления смысла текста в явном виде. Семантический словарь является переводным словарем с русского языка на семантический язык. Семантический язык содержит 72 базисные функции и около 600 базисных понятий. В основу создания семантического словаря положено три основных утверждения.

7.3. Интернационализация и локализация программных продуктов

Границы моего языка - это границы моего мира.
Л. Витгенштейн

Для того чтобы обеспечить легкий перенос программных продуктов из одной культурной среды в другую, было предложено разрабатывать их с применением концепции интернационализации и затем выполнять локализацию.

Интернационализация - способ разработки и написания программных продуктов, которые легко могут быть адаптированы для региональных рынков сбыта. Интернационализованные продукты не требуют переписывания перед тем, как они смогут работать с разнообразными языками и клиентами.

Существуют четыре уровня интернационализации, каждый следующий из которых включает требования всех предыдущих уровней и накладывает свои дополнительные требования [Solaris 1995].

Локализация - процесс адаптации программных продуктов для выбранного региона со своим языком, традициями и культурной средой. Для того чтобы использовать локализованную версию программного продукта, достаточно изменить параметры настроек или переменную окружения. Например, в операционной системе Unix достаточно изменить переменную окружения LANG. Два ее возможных значения - с для культурной среды С и ru - для русскоязычной культурной среды.

7.4. Отступление "о придании тексту эмоций"

Мы не можем слышать изменения голоса и видеть мимику лица автора при чтении написанного им текста. Наиболее актуальной эта проблема может быть в случае коротких сообщений, например, пересылаемых по электронной почте. Для того чтобы предотвратить недопонимание, были придуманы улыбки (смайлики). Их основная задача - передать эмоциональную и интонационную окрашенность высказывания. В табл. 4.4 приведены символьные коды некоторых наиболее распространенных улыбок с объяснением их смысла.

Таблица 4.4. Наиболее распространенные улыбки

Символьный код улыбки
Объяснение смысла улыбки
:-)
Ваша основная улыбка. Она используется для обозначения саркастического или шутливого утверждения
;-)
Подмигивающая улыбка. Пользователь только что сделал саркастическое замечание ("не бейте меня за то, что я только что сказал")
:-(
Недовольная "улыбка". Пользователь недоволен последним утверждением, или ему грустно
:-|
Равнодушная улыбка. Лучше, чем :-(, но не так хорошо, как :-) Пользователь только что сделал действительно острое саркастическое замечание. Хуже, чем ;-)
8:-)
Пользователь - маленькая девочка
:-)-8
Пользователь - большая девочка
:-{)
У пользователя усы
:-{}
У пользователя накрашены губы помадой
:`-(
Пользователь плачет
:`-)
Пользователь плачет от счастья
:-@
Пользователь кричит
:<)
Пользователь закончил престижное учебное заведение
:-&
У пользователя язык завязан узлом (изумление)
=:-)
Пользователь - глава семейства :-)
:-P
Пользователь показывает язык
:-O
Пользователь удивлен

Большинство улыбок можно использовать без носов (табл. 4.5).

Таблица 4.5. Улыбки без носов

Символьный код улыбки
Объяснение смысла улыбки
:)
Маленькая улыбка
:]
Дружеская маленькая улыбка того, кто с радостью станет вашим другом
:D
Смеется
:|
Равнодушен
:(
Печален
:O
Кричит
:,(
Плачет
:*
Целует

Эмоциональные улыбки представлены в табл. 4.6.

Таблица 4.6. Эмоциональные улыбки

Символьный код улыбки
Объяснение смысла улыбки
:-)
Ха-ха
:-(
Ууу...
|-)
Хи-хи
:-|
Хммм...
|-D
Хо-хо
:-O
Оо-пааа...
:->
Хе-хе
:-P
Ээээ...!

О развитии идеи улыбок
Идея смайликов была развита отечественными пользователями сети Интернет, предложившими большое количество графических аналогов некоторых слов ненормативной лексики (http://www.debilarius.ru/slovar.htm).
к оглавлению   к 3GL   к визуальным средам - 4GL   к архитектуре DB-интерфейсов   к технологии программирования

Знаете ли Вы, что объектно-ориентированное программирование - это технология программирования, при которой программа рассматривается как набор дискретных объектов, содержащих, в свою очередь, наборы структур данных и процедур, взаимодействующих с другими объектами.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution