Автор работы: Пользователь скрыл имя, 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
}
}
else
{
}
}
result += "\r\n";
}
if (Lexical == "цикл")// ******************************
{
Lexical = "";
i = i + 2;
int j;
string Lex = "";
for (j = i; j > i - 1; j++)
{
char c2 = input[j];
Lex = Lex + c2;
if (c2 == '☺')
{
}
else if (c2 == '\r' || c2 == '\n')
{
}
else if (c2 == ' ')
{
}
if (Lex == "по")
{
int y;
{
{
}
if (Lex == "от")
{
{
}
}
if (Lex == "до")
{
j = j + 2;
Lex = Lex + c3;
}
if (Lex == "шаг")
{
for (y = j; y > j - 1; y++)
breaking = true;
y = y - 500;
}
else
{
}
}
result += "\r\n" + "for ("+ cikl + "=" + cikl2 + "; "+ cikl + " < " + cikl3 + "; "+ cikl +"+"+ cikl4+")";
result += "\r\n";
}
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 == '☺')
{
y = y - 500;
}
else if (c3 == '\r' || c3 == '\n' || c3 == ' ')
{
}
else
{
}
}
result += Lex +"++";
result += "\r\n";
Lexical = "";
}
if (Lexical == "декремент")// ******************************
{
result += " ";
int y;
i = i + 2;
string Lex = "";
for (y = i; y > i - 1; y++)
{
char c3 = input[y];
if (c3 == '☺')
{
}
else if (c3 == '\r' || c3 == '\n' || c3 == ' ')
{
}
else
{
}
}
result += Lex + "--";
result += "\r\n";
Lexical = "";
}
if (Lexical == "если")// ******************************
{
result += "\r\n" + "If (";
int y;
i = i + 2;
string Lex = "";
for (y = i; y > i - 1; y++)
{
char c3 = input[y];
if (c3 == '☺')
{
y = y - 500;
}
else if (c3 == '\r' || c3 == '\n' || c3 == ' ')
{
}
else
{
}
}
result += Lex ;
Lexical = "";
i = i + 1;
int j;
Lex = "";
for (j = i; j > i - 1; j++)
{
char c2 = input[j];
Lex = Lex + c2;
if (c2 == '☺')
{
}
else if (c2 == '\r' || c2 == '\n')
{
}
else if (c2 == ' ')
{
Lex = "";
}
if (Lex == "меньше")
{
for (y2 = j; y2 > j - 1; y2++)
breaking = true;