Название: Введение в прикладную лингвистику (Соснина Е.П.)

Жанр: Гуманитарный

Просмотров: 3996


Лекция 3

План

I.    Естественные и искусственные языки.

П.   Языки программирования как искусственные языки.

Формальные  методы   описания   искусственных языков.

Формальная грамматика. Математическая лингвистика.

Понятие метаязыка. БНФ-нотации. Синтаксические

диаграммы.

 

I. В предыдущей лекции мы говорили о лингвистических основах информатики и о том, что в связи с невозможностью полной формализации ЕЯ для коммуникации в компьютерных средах необходима разработка специальных искусственных языков (ИЯ), что входит в сферу интересов лингвистики.

Искусственные языки - это знаковые системы, создаваемые для использования в тех областях науки и техники, где применение естественного языка ограничено, менее эффективно или невозможно [3]. Любой искусственный язык по сравнению с естественным - ограниченный язык, служащий для решения определенных задач.

 

Классификация искусственных языков [2]:

Неспециализированные языки общего назначения (например, эсперанто, волапюк);

Специализированные языки различного назначения (например, символические языки науки (математика XVI в., логика XVIII в.)).

Во 2-й класс входят языки человеко-машинного (компьютерного) общения (языки программирования, языки операционных систем, языки информационных систем и т.п.).

Лингвист должен иметь представление о том, какие бывают языки, какова структурная организация языков и как создаются искусственные языки. Этому и посвящены следующие наши рассуждения.

 

П. Языки программирования (ЯП) - это класс искусственных языков, предназначенных для обработки информации с помощью компьютера. Языков программирования в мире около 1000.

Исторически языки программирования возникли в 40-х годах XX в. и качественно совершенствовались в сторону упрощения своего описания, методов программирования и приложения для обработки информации человеком. Можно выделить следующие качественные уровни развития ЯП (т.е. то, как их классифицируют в программировании):

1. Низкий уровень - Ассемблеры (40-50-е гг.) (работа с машинными кодами).

 

ю

Средний уровень - Фортран, Алгол (60-е годы).

Высокий уровень - Паскаль [4], С, С++, Prolog (с 80-х годов XX в.).

Если взглянуть на язык программирования с лингвистической точки зрения, можно увидеть, что ЯП так же, как и любой язык, имеет уроеневую структуру. Первый низший уровень - символьный, его элементы - буквы, спецсимволы (по аналогии с ЕЯ - графический уровень). Второй уровень - это уровень имен, зарезервированных слов, выражений (в ЕЯ - это лексический уровень). Третий уровень - операторный (командный), синтаксические конструкции имеют повелительный характер (в ЕЯ - аналог синтаксического уровня), и последний -уровень программы, всегда являющейся синтаксически и семантически законченной последовательностью предписаний-команд. Программа - это текст, записанный по заданным правилам искусственного языка, т.е. ЯП.

III. Общим признаком описания специализированных искусственных языков является формальный метод их описания и определения путем задания алфавита, словаря и системы правил образования и преобразования выражений -это грамматика. Формальный метод служит для порождения «правильных текстов» («правильных» - значит «записанных по определенным правилам»).

Например, для языков программирования задаются определенные формы языковых элементов (алфавит, слова), правила построения текстов, точно описываются семантика и синтаксис для однозначного понимания программ компьютером.

Вообще, при написании «правильных текстов» (будь то программ на ЯП или любых других текстов на ИЯ) широко используются формальные грамматики.

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

Вопросами формальных грамматик и их теории занимается математическая лингвистика (возникла в 50-е гг. XX в.). Она является одним из направлений прикладной лингвистики, тесно соприкасающимся с математикой. В 1959 году американский ученый-лингвист Н.Хомский предложил первую классификацию формальных языков [1, 3] по типу правил формальной грамматики.

Существует множество формальных грамматик, как например:

Порождающая грамматика Хомского.

Контекстно-свободная грамматика. ч-

Грамматика непосредственно-составляющих.

Трансформационная грамматика (грамматика деревьев).

Грамматика Монтегю.

Кратко опишем порождающую грамматику. Порождающая формальная грамматика - это система Г = <VT, VHT» S, R>, где   Г - грамматика;

VT - множество терминальных (конечных) символов языка;

V„T- множество нетерминальных символов (из которых можно выводить далее), заключаются в угловые скобки <...>;

S   - начальный символ нетерминального множества;

R - система правил вывода типа X—»Y (где X,Y - цепочки символов из VT, Vm).

Множество цепочек, выводимых в Г из ее начального символа S, есть язык, порождаемый этой грамматикой Г (т.е. вывод цепочек всегда начинается с нетерминала S).

Система правил R: <S>-><Pr><V><N>.

Пример:

Формальная система: Г =<{l, We, They, love, music,.},

{S, Pr, V, N}, S, R>,

где {I, We, They, love, music.} - VT>         <Pr>    1 'We'They

{S, Pr, V, N} - V„T      <v> ->love

<N> -> music

 

Язык, порождаемый согласно правилам вывода R: I love music. We love music. They love music.

 

 

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

На практике применяется еще один метаязык, который не столь математи-чен. Это Бекус-Науровы формы (БНФ-формы или БНФ-нотации), которые, как и формальная грамматика, служат для задания правил получения правильных текстов.

 

Пример:

Пример типовой странички

 

Pay [pei] 1. платить; 2. заработная плата; 3. расплата. Pea [pi:] горох.

Peak [pi:к] остроконечная вершина.

БНФ-нотация для описания англо-русского словаря: <словарь> ::= [<раздел>]

<раздел> ::= <заглавная лат.буква>[<словарная статья>] <заглавная лат.буква> ::= А | В |.... IZ

<словарная статья> ::= <термин> <транскрипция> <перевод>. <термин> ::= [<прописная лат.буква>] <прописная лат.буква>] ::= а | Ь |... I z <транскрипция> ::= [ [<звук>] ] <звук> ::= а: |э|... |z

<перевод> ::= определение 1> | определение 2> определение 1> ::= <слово> | <словосочетание> <слово> ::=[<прописная русск.буква>] <прописная русск.буква>::= а|б| в.... |я <словосочетание> ::= [<слово>]

определение 2> ::= 1.<определение 1>; 2.<определение 1>; ...

 

Аналогичный метаязык, имеющий графическое, наглядное представление -это синтаксические диаграммы. Синтаксическая диаграмма - это схема, объясняющая правило построения либо некоторого понятия, выражения, либо множества текстов.

Пример:

Синтаксическая диаграмма морфологической структуры русского слова:

 

Обе эти формы нашли широкое применение при описании языков программирования в информатике. Для прикладной лингвистики построение БНФ и синтаксических диаграмм интересно как способ понять структуру любого языка, увидеть возможности по моделированию искусственных языков.

 

Семинар

План

I. Линейные и ветвящиеся синтаксические диаграммы. П.   Пример БНФ-нотации.

III. Примеры формальных грамматик и вывода на них.

Домашнее задание

Составить БНФ-нотацию программы телевидения.

Решить синтаксическую задачу №1 Приложения 3.

 

Список литературы

Лебедев В.Н. Введение в системы программирования. М., 1975. С. 13-26, 54-58, 215-225.

Лингвистический энциклопедический словарь /Гл. ред. В.Н. Ярцева. М., 1998. С 287-289, 201-207, 615.

Рейуорд-Смит В.Дж. Теория формальных языков. М., 1988. С. 8-11, 25-35.

Уилсон И.Р., Эддиман A.M. Практическое введение в Паскаль. М., 1983. С. 8-11, 121-126.