Разработка программного обеспечения для реализации переводчика с естественного языка на язык программирования

Автор работы: Пользователь скрыл имя, 21 Июля 2015 в 12:25, курсовая работа

Описание работы

Спроектировать и программно реализовать транслятор с естественного языка на язык программирования - Limbo. Транслятор написан на языке программирования – С#.
Разработанная программа должна считывать определенные конструкции естественного языка, распознавать их и преобразовывать в аналогичные конструкции языка Limbo с учетом особенностей построения этих конструкции в языке программирования. После преобразования всех конструкций, программа должна вывести на экран полученный код на языке Limbo.

Содержание работы

1 ПОСТАНОВКА ЗАДАЧИ 3
2 АНАЛИЗ ТЕКСТА НА ЕСТЕСТВЕННОМ ЯЗЫКЕ 4
2.1 Пример текста на естественном языке………………………………………4
2.2 Пошаговый разбор текста на естественном языке………………………….4
3 ОПИСАНИЕ ВЫБРАННОГО ЯЗЫКА ПРОГРАММИРОВАНИЯ………….6
3.1 История выбранного языка…………………………………………………..6
3.2 Особенности выбранного языка……………………………………………..6
3.3 Основные конструкции выбранного языка…………………………………7
4 ПРИМЕР ТРАНСЛЯЦИИ ИСХОДНОГО ТЕКСТА………………….……....8
4.1 Исходный текст……………………………………………………………….8
4.2 Транслированный текст………………………………………………………8
5 АЛГОРИТМ РАЗРАБОТАННОЙ ПРОГРАММЫ 10
5.1 Блок-схема……………………………………………………………………10
5.2 Словесный алгоритм…………………………………………………….…..11
6 КОД ПРОГРАММЫ…………………………………………………………...12
7 ПРИМЕР РАБОТЫ РАЗРАБОТАННОЙ ПРОГРАММЫ…...……………...25
СПИСОК ЛИТЕРАТУРЫ 28

Файлы: 1 файл

Пример ПЗ по ЛПОС 2 часть.doc

— 352.00 Кб (Скачать файл)

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Волгоградский государственный технический университет»

Камышинский  технологический  институт (филиал)

федерального государственного бюджетного образовательного учреждения высшего профессионального образования

«Волгоградский государственный технический университет»

 

Факультет

Информационных технологий

Кафедра

Автоматизированные системы обработки информации

 

и управления»


 

 

 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

 к курсовой работе

 

по дисциплине          Лингвистическое и программное            .

                    обеспечение систем                 

 

на тему Разработка программного обеспечения для реализации переводчика с естественного языка на язык программирования (вариант № 17) 

 

Студент  Четвериков Сергей Александрович__        _______________

                                      (фамилия, имя, отчество)                                                           (подпись)

 

Группа ____КВТ-121_______________

 

Руководитель работы ___________________________            И.М. Харитонов

        (подпись и дата подписания)        (инициалы и фамилия)                                            

 

 

Члены комиссии:

    ________________________       __________________

  (подпись и дата подписания)        (инициалы и фамилия)

 

    ________________________       __________________

  (подпись и дата подписания)        (инициалы и фамилия)

 

    ________________________       __________________

  (подпись и дата подписания)        (инициалы и фамилия)

 

 

Нормоконтролер ___________________________                   И.М. Харитонов

       (подпись и дата подписания)                       (инициалы и фамилия)                                            

 

Камышин 2015                                      

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Волгоградский государственный технический университет»

Камышинский  технологический  институт (филиал)

федерального государственного бюджетного образовательного учреждения высшего профессионального образования

«Волгоградский государственный технический университет»

 

Факультет

Информационных технологий

Направление

230100.62 «Информатика и вычислительная  техника» 

Кафедра

Автоматизированные системы обработки информации

 

и управления»

Дисциплина

Лингвистическое и программное обеспечение систем


                                      

УТВЕРЖДАЮ:

Зав. кафедрой АСОИУ

_____________ И. В. Степанченко

«___» _____________ 2015 г.

 

Задание
на курсовую работу

 

Студент   Четвериков Сергей Александрович 

(фамилия, имя, отчество)

Группа___КВТ-121___________________

1. Тема: _ Разработка программного обеспечения для реализации переводчика с естественного языка на язык программирования (вариант № 12) 

Утверждено приказом от «_____» ______________ 2015 г.  № _________

2. Срок представления  работы (проекта) к защите «_9_»__июня__2015 г.

3. Содержание расчетно-пояснительной  записки: 1)постановка задачи; 2)анализ текста на естественном языке; 3)описание выбранного языка программирования; 4)пример трансляции исходного текста; 5)алгоритм разработанной программы; 6)код программы; 7)пример работы разработанной программя. 

 

4. Перечень графического материала: 

 

5. Дата выдачи задания  «_12_» __февраля__ 2015 г.

Руководитель проекта (работы)_______________________ __И.М. Харитонов__

подпись, дата                                    инициалы и фамилия

Задание принял к исполнению________________________ __С.А. Четвериков___

подпись, дата                                    инициалы и фамилия 

 

СОДЕРЖАНИЕ

 

Лист

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

         

 

КР 230100. 17. Д. ПЗ

         

Изм.

Лист

№ докум.

Подп.

Дата

 Разраб.

 Четвериков С.А.

   

Разработка программного обеспечения для реализации переводчика с естественного языка

на язык программирования (вариант № 12)

Лит.

Лист

Листов

 Пров.

 Харитонов И.М.

     

У

 

2

28

       

КТИ ВолгГТУ

 Н.контр.

 Харитонов И.М.

   

 Утв.

Степанченко И.В.

   

 



1 ПОСТАНОВКА ЗАДАЧИ

1 ПОСТАНОВКА ЗАДАЧИ

 

 

Спроектировать и программно реализовать транслятор с естественного языка на язык программирования - Limbo. Транслятор написан на языке программирования – С#.

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

Задачи, которые должна решать разработанная программа:

- считывание текста из файла;

- поиск в тексте заданных конструкций на естественном языке;

- распознавание конструкций на естественном языке;

- преобразование конструкций на естественном языке в конструкции языка Limbo, в соответствии с правилами этого языка программирования;

- вывод на экран преобразованного кода на языке Limbo.

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

- ввод;

- присвоить;

- цикл;

- начало цикла;

- конец цикла;

- инкремент;

- декремент;

- равно;

- плюс;

- минус;

- больше;

- меньше;

- если;

- начало если;

- конец если;

- вывод.

 

 

 

 

 

 

2 АНАЛИЗ ТЕКСТА НА ЕСТЕСТВЕННОМ ЯЗЫКЕ

 

2.1 Пример текста на  естественном языке

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

начало программы

 

ввод целой X

ввод вещественной Y

ввод вещественной Z

 

X присвоить 1

Y присвоить 0

Z присвоить 3,5

 

цикл  по X от 1 до 3 шаг 1

начало цикла

  инкремент Z

Y равно Y плюс Z

конец цикла

 

если Y меньше 10

начало если

X присвоить 1

конец если

если Y больше 10

начало если

X присвоить 2

конец если

 

вывод X

вывод Y

 

конец программы

 

2.2 Пошаговый  разбор текста на естественном  языке

Пошагово рассмотрим как разработанная программа должна анализировать предлагаемый текст.

1) «ввод целой X» - объявление переменной X как целочисленной переменной;

2) «ввод дробной Y» - объявление переменной Y как переменной вещественного типа;

3) «ввод двойной Z» - объявление переменной Z как переменной вещественного типа с двойной точностью;

4) «X присвоить 1» - присвоение переменной X целого значения равного 1;

5) «Y присвоить 0» - присвоение переменной Y целого значения равного 0;

6) «Z присвоить 3,5» -  присвоение переменной Z вещественного значения равного 3,5;

7) «цикл  по X от 1 до 3 шаг 1» - объявление цикла по переменной X, начиная с 1 и заканчивая 3, с шагом 1;

8) «начало цикла» - начало тела цикла;

9) «инкремент Z» - увеличение значения переменной Z на 1;

10) «Y равно Y плюс Z» - сложение значений переменных Y и Z, с записью полученного результата в переменную Y;

11) «конец цикла» - конец тела цикла;

12) «если Y меньше 10» - проверка условия для переменной Y;

13) «начало если» - начало тела выполнения условия;

14) «X присвоить 1» - присвоение переменной X целого значения равного 1;

15) «конец если» - конец тела выполнения условия;

16) «если Y больше 10» - проверка условия для переменной Y;

17) «начало если» - начало тела выполнения условия;

18) «X присвоить 2» - присвоение переменной X целого значения равного 2;

19) «конец если» - конец тела выполнения условия;

20) «если Y больше 10 то X равно 2» - проверка условия для переменной Y, если оно выполняется, то присвоение переменной X значения 2;

21) «вывод X» - вывод на экран значение переменной X;

22) «вывод Y» - вывод на экран значение переменной Y.

 

 

 

3 ОПИСАНИЕ  ВЫБРАННОГО ЯЗЫКА ПРОГРАММИРОВАНИЯ

 

 

В качестве языка для трансляции естественного языка был выбран язык программирования - Limbo. Этот язык программирования в операционной системе Inferno, созданный разработчиками UNIX.

 

3.1 История выбранного языка

Язык программирования Limbo был разработан сотрудниками Компьютерного Научного Исследовательского Центра (CSRC) при Bell Laboratories, разработчиками и исследователями компании Lucent Technologies. CSRC ответственна за разработку операционной системы UNIX, языков программирования C и C++, и за многие инновации в области компьютерной науки.

Язык Limbo развивался год за годом опираясь на исследования, строясь на концептах из более ранних языков с намерением предоставить полный, ясный, безопасный и переносимый язык программирования для ОС Inferno.

Многие языки оказали влияние на дизайн и реализацию Limbo:

C - Синтаксис, структура,управляющие структуры

Pascal - Объявления

Alef - Каналы и Абстрактные типы данных (ADT)

Newsqueak - Процессы

CSP - Процессы, Взаимодействие

ML - ADT, модули, проверка типов во время компиляции, сборка мусора

 

3.2 Особенности  выбранного языка

Язык Limbo близок Си и Java, результатом компиляции является байт-код, что обеспечивает переносимость. Переносимость же лежит в основании самой ОС Inferno (наследницы Plan 9), доведенной до состояния приложения, запускаемого поверх хост-операционной системы: Plan 9, FreeBSD, Irix, Linux, Mac OS X, Solaris,Windows NT.

Limbo имеет встроенный механизм межпроцессного  взаимодействия под названием  «channels».

Среди встроенных типов:

byte (8-разрядное целое беззнаковое  число),

int (32-разрядное целое число со  знаком),

big (64-разрядное целое число со  знаком),

real (64-разрядное число с плавающей запятой),

array (массив со слайсами),

string

adt (Абстрактный тип данных)

tuple (Кортеж),

module

 

 

 

3.3 Основные конструкции выбранного языка

Основные конструкции языка Icon, а также способ их представления показаны в таблице.

 

Таблица – Основные конструкции языка Icon

Описание конструкции

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

Язык Icon

объявление переменной

ввод

X: int;

присвоение значения

присвоить

X=1;

объявление цикла

цикл

for (X=1; X < 3; X+1)

{

}

начало тела цикла

начало цикла

конец тела цикла

конец цикла

увеличение на 1

инкремент

Z++;

уменьшение на 1

декремент

Z--;

знак равенства

равно

=

знак сложения

плюс

+

знак вычитания

минус

-

знак больше

больше

>

знак меньше

меньше

<

объявление условия

если

If (Y>10 )

{

}

начало тела условия

начало если

конец тела условия

конец если

вывод данных

вывод

sys->print( X)

Информация о работе Разработка программного обеспечения для реализации переводчика с естественного языка на язык программирования