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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать файл)

                                        y2 = y2 - 500;

                                    }

                                    else

                                    {

                                        Lex = Lex + c3;

                                        j = y2+1;

                                    }

                                }

 

                                result += "<" + Lex + " )";

                                Lex = "";

                            }

                            if (Lex == "равно")

                            {

                                Lex = "";

                                j = j + 2;

                                int y2;

                                for (y2 = j; y2 > j - 1; y2++)

                                {

                                    char c3 = input[y2];

                                    if (c3 == '☺')

                                    {

                                        breaking = true;

                                        y2 = y2 - 500;

                                    }

                                    else if (c3 == '\r' || c3 == '\n' || c3 == ' ')

                                    {

                                        y2 = y2 - 500;

                                    }

                                    else

                                    {

                                        Lex = Lex + c3;

                                        j = y2 + 1;

                                    }

                                }

 

                                result += "==" + Lex + " )";

                                Lex = "";

                            }

                            if (Lex == "больше")

                            {

                                Lex = "";

                                j = j + 2;

                                int y2;

                                for (y2 = j; y2 > j - 1; y2++)

                                {

                                    char c3 = input[y2];

                                    if (c3 == '☺')

                                    {

                                        breaking = true;

                                        y2 = y2 - 500;

                                    }

                                    else if (c3 == '\r' || c3 == '\n' || c3 == ' ')

                                    {

                                        y2 = y2 - 500;

                                    }

                                    else

                                    {

                                        Lex = Lex + c3;

                                        j = y2+1;

                                    }

                                }

 

                                result += ">" + Lex + " )";

                                Lex = "";

                            }

                        }

                        result += "\r\n";

                        Lexical = "";

                    }

 

                    if (Lexical == "начало если")// ******************************************************Начало если

                    {

                        result += "{";

                        result += "\r\n";

                        Lexical = "";

                    }

 

                    if (Lexical == "конец если")// ******************************************************конец если

                    {

                        result += "}";

                        result += "\r\n";

                        Lexical = "";

                    }

 

                    if (Lexical == "вывод")// ******************************************************Вывод

                    {

                        int y;

                        i = i + 2;

                        string Lex = "";

                        for (y = i; y > i - 1; y++)

                        {

                            char c3 = input[y];

                            if (c3 == '☺')

                            {

                                breaking = true;

                                y = y - 500;

                            }

                            else if (c3 == '\r' || c3 == '\n' || c3 == ' ')

                            {

                                y = y - 500;

                            }

                            else

                            {

                                Lex = Lex + c3;

                                i = y+1;

                            }

                        }

                        result += "sys->print( " + Lex + ")";

                        result += "\r\n";

                        Lexical = "";

                    }

                    else

                    {

                       

                    }

                    i++;

                }

               

            }

            return result;  //вернуть строку с результатами

        }

    }

}

 

 

 

7 ПРИМЕР РАБОТЫ РАЗРАБОТАННОЙ ПРОГРАММЫ

 

В левое текстовое поле производится набор текста для анализа, после чего нажимается кнопка запуска программы.

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

Примеры работы программы с разными данными

 

 

 

СПИСОК ЛИТЕРАТУРЫ

 

 

1. Тенишев Д.Ш. Лингвистическое  и программное обеспечение автоматизированных систем [Текст] / Д.Ш. Тенишев. – СПб.: ЦОП «Профессия», 2010. – 48 с.

2. Заболеева-Зотова А.В., Камаев  В.А. Лингвистическое обеспечение  автоматизированных систем [Текст] / А.В. Заболеева-Зотова, В.А. Камаев. –  М.: Высш. шк., 2008. – 244 с.

3. Мозговой М.В. Классика программирования: языки, автоматы, компиляторы. Практический подход [Текст] / М.В. Мозговой. – СПб.: «Наука и техника», 2006. – 320 с.

4. Ахо А., Сети Р., Ульман Д. Компиляторы: принципы, технолигии, инструменты [Текст]: пер. с англ. / А. Ахо, Р. Сети, Д. Ульман. – М.: Изд. дом «Вильямс», 2003. – 768 с.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

         

 

КР 230100. 12 Д. ПЗ

 

Лист

         

Изм.

Лист

№ докум.

Подп.

Дата

 

28




 

 


 



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