рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

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

Работа сделанна в 1997 году

Разработка синтаксического распознавателя вычисляемого оператора перехода языка FORTRAN - раздел Программирование, - 1997 год - Министерство Науки, Высшей Школы И Технической Политики Российской Федерации...

Министерство науки, высшей школы и технической политики Российской Федерации.Новосибирский Государственный Технический Университет FORTRAN. Факультет . Кафедра . Группа -513. Студент . Преподаватель . Ассистент . Дата 19 1997 . Отметка о защите 1997. Язык оператора. Язык вычисляемого оператора перехода языка FORTRAN. GOTO МЕТКАКОНСТАНТААРИФМЕТИЧЕСКОЕ ВЫРАЖЕНИЕ МЕТКА Идентификатор КОНСТАНТА ЦЕЛОЕ БЕЗ ЗНАКА АРИФМЕТИЧЕСКОЕ ВЫРАЖЕНИЕ ВЫРАЖЕНИЕ, СОДЕРЖАЩЕЕ В СЕБЕ ОПЕРАЦИИ А ТАКЖЕ . ВОЗВЕДЕНИЕ В СТЕПЕНЬ. Грамматика языка.

G ОПЕРАТОР 1. ОПЕРАТОР GOTO ВЫРАЖЕНИЕ 2. ВЫРАЖЕНИЕ Т ВЫРАЖЕНИЕ Т ВЫРАЖЕНИЕ Т 3. Т О ТО ТО ТО 4. О ВЫРАЖЕНИЕ ИДЕНТИФИКАТОР ДБЗ 5. ИДЕНТИФИКАТОР ББ Ц 6. ДБЗ ЦЦ.ЦЦ Т ТЕРМО ОПЕРАНДБ БУКВАЦ ЦИФРАДБЗ ДРОБНОЕ БЕЗ ЗНАКА КОНЕЦ СТРОКИ пусто ВОЗВЕДЕНИЕ В СТЕПЕНЬ Классификация грамматики.Данная грамматика G ОПЕРАТОР , согласно классификации Хомского, является контекстно-свободной, так как правая часть каждой редукции начинается либо с терминального символа, либо с нетерминального, принадлежащего объединнному словарю.

A a, AVn, aV. Грамматика G ОПЕРАТОР не является автоматной, так как не все е редукции начинаются с терминального символа. По этой же причине данная грамматика не является S - грамматикой. Метод анализа. Для данной грамматики реализован разбор методом рекурсивного спуска, поскольку она относится к классу контекстно-свободных.Идея метода состоит в том, что каждому нетерминальному символу ставится в соответствие определнная программная единица функция, которая распознат цепочку, порождаемую этим нетерминалом.

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

Нейтрализация ошибок осуществляется по методу Айронса, то есть, спускаясь по синтаксическому дереву без возврата по контексту, при обнаружении тупиковой ситуации отбрасываются те литеры символы, которые привели в тупиковую ситуацию и разбор продолжается. Тестирование. Протокол работы синтаксического распознавателя вычисляемого оператора перехода языка FORTRAN. GOTO AB-DDCC2334RYC AB - Проверка на Арифметическое Выражение. SCAN - Сканирование.Текущий символ A с кодом 65. T - Проверка на Терм. O - Проверка на Операнд.

IDENT - Проверка на Идентификатор с символа A. SCAN - Сканирование. Текущий символ с кодом 43. AB - Проверка на Арифметическое Выражение. SCAN - Сканирование. Текущий символ B с кодом 66. T - Проверка на Терм. O - Проверка на Операнд. IDENT - Проверка на Идентификатор с символа B. SCAN - Сканирование. Текущий символ - с кодом 45. AB - Проверка на Арифметическое Выражение. SCAN - Сканирование.Текущий символ D с кодом 68. T - Проверка на Терм. O - Проверка на Операнд.

IDENT - Проверка на Идентификатор с символа D. SCAN - Сканирование. Текущий символ D с кодом 68. SCAN - Сканирование. Текущий символ с кодом 42. SCAN - Сканирование. Текущий символ с кодом 42. SCAN - Сканирование. Текущий символ с кодом 40. T - Проверка на Терм. O - Проверка на Операнд. AB - Проверка на Арифметическое Выражение. SCAN - Сканирование.Текущий символ C с кодом 67. T - Проверка на Терм. O - Проверка на Операнд.

IDENT - Проверка на Идентификатор с символа C. SCAN - Сканирование. Текущий символ C с кодом 67. SCAN - Сканирование. Текущий символ с кодом 47. SCAN - Сканирование. Текущий символ с кодом 40. T - Проверка на Терм. O - Проверка на Операнд. AB - Проверка на Арифметическое Выражение. SCAN - Сканирование. Текущий символ 2 с кодом 50. T - Проверка на Терм. O - Проверка на Операнд.IDENT - Проверка на Идентификатор с символа 2. FLOAT - Проверка на Дробное Без Знака с цифры 2. SCAN - Сканирование. Текущий символ 3 с кодом 51. SCAN - Сканирование. Текущий символ с кодом 43. AB - Проверка на Арифметическое Выражение.

SCAN - Сканирование. Текущий символ 3 с кодом 51. T - Проверка на Терм. O - Проверка на Операнд.IDENT - Проверка на Идентификатор с символа 3. FLOAT - Проверка на Дробное Без Знака с цифры 3. SCAN - Сканирование. Текущий символ 4 с кодом 52. SCAN - Сканирование. Текущий символ с кодом 42. SCAN - Сканирование. Текущий символ с кодом 42. SCAN - Сканирование. Текущий символ R с кодом 82. T - Проверка на Терм. O - Проверка на Операнд.

IDENT - Проверка на Идентификатор с символа R. SCAN - Сканирование.Текущий символ с кодом 41. SCAN - Сканирование. Текущий символ с кодом 41. SCAN - Сканирование. Текущий символ с кодом 43. AB - Проверка на Арифметическое Выражение.

SCAN - Сканирование. Текущий символ Y с кодом 89. T - Проверка на Терм. O - Проверка на Операнд. IDENT - Проверка на Идентификатор с символа Y. SCAN - Сканирование. Текущий символ с кодом 42. SCAN - Сканирование. Текущий символ с кодом 40. T - Проверка на Терм. O - Проверка на Операнд. AB - Проверка на Арифметическое Выражение.SCAN - Сканирование.

Текущий символ с кодом 40. T - Проверка на Терм. O - Проверка на Операнд. AB - Проверка на Арифметическое Выражение. SCAN - Сканирование. Текущий символ C с кодом 67. T - Проверка на Терм. O - Проверка на Операнд. IDENT - Проверка на Идентификатор с символа C. SCAN - Сканирование. Текущий символ с кодом 41. SCAN - Сканирование. Текущий символ с кодом 41. SCAN - Сканирование. Текущий символ NULL с кодом 0. GOTO A AB - Проверка на Арифметическое Выражение. SCAN - Сканирование.Текущий символ A с кодом 65. T - Проверка на Терм. O - Проверка на Операнд.

IDENT - Проверка на Идентификатор с символа A. SCAN - Сканирование. Текущий символ NULL с кодом 0. Листинг программы. FILE KURSOVIK.CPP. ВАРИАHТ 3. Оператор перехода вычисляемый языка FORTRAN. Кафедра АСУ. Группа А-513. Студент Борзов Андрей Hиколаевич. Преподаватели кандидат технических наук, доцент Шорников Юрий Владимирович, ассистент Панова Вера Борисовна.Дата 29 апреля 1997г. Подключаемые файлы. include string.h include conio.h include stdio.h include dos.h include stdlib.h include ctype.h include time.h includekeyboard.h Макроопределения. define ERROR 0 Код ошибки. define COLSTR 20 Максимальное количество строк. define STRLEN 35 Длина строки. define MAXSTRLEN 255 Максимальная длина строки. define FILENAME TEST.TXT Имя файла, открываемого по умолчанию. define YES 1 define NO 2 define OK 3 define TEST Определено, если включен отладочный режим. Прототипы функций. int IReadKeyvoid Опрос клавиатуры. void Welcomevoid Экран при старте программы. void Menuvoid Меню. void Helpvoid Помощь. void MyExitint0 Корректный выход из программы. void Beepint500,int100 Звуковой сигнал. void Usagevoid Использование программы. int OpenFilevoid Открытие файла. void DrawBoxint,int,int,int,char Рисует рамку с заголовком. void PrintTextvoid Печатает основной текст. void Screenvoid Перерисовка экрана. void Compilevoid Компиляция. void Messageint Вывод сообщений об ошибках. void MyPutschar,int Аналог putschar. void Languagevoid Язык оператора. void Grammarvoid Грамматика языка. void GetFilenamevoid Запрос имени файла для открытия. int ScanStrchar Поиск GOTO. int Scanerchar Обработка строки. void Scanvoid Сканирование следующего символа. void Delspacechar Удаление ненужных пробелов в строке. int ABvoid Реализация нетерминала АВ . int Tvoid Реализация нетерминала Т . int Ovoid Реализация нетерминала О . int IDENTvoid Реализация нетерминала IDENT . int FLOATvoid Реализация нетерминала FLOAT . void Errorint0,char Обработка ошибки.

Глобальные переменные. char filenameMAXSTRLEN Имя файла. char textCOLSTR1 Массив указателей на строки текста. char screen4096 Буфер под копию экрана. char mes212080 Массив под сообщения об ошибках. char nx Текущий символ. int pos Текущая позиция в строке. char STR80 Сканируемая строка. int ERR1 Счетчик страниц в массиве ошибок. int ERR2 Счетчик строк в массиве ошибок.

FILE errors Дескриптор файла.

Функция MAIN. void mainint argc,char argv textcolorLIGHTGRAY textbackgroundBLACK setcursortypeNOCURSOR clrscr ifargc 2 Usage MyExit ifargc2 strcpyfilename,argv1 else Welcome gettext20,7,60,17,screen GetFilename whileOpenFile puttext20,7,60,17,screen GetFilename Menu Вывод сообщений об ошибках. void Messageint j window42,3,79,23 textcolorBLUE textbackgroundCYAN clrscr forint i0i COLSTR mesji0NULLi cprintf-30srn,mesji Гpамматика языка. void Grammarvoid window1,25,80,25 textattr112 MyPuts F1 Help F2 Grammar F3 Language F9 Compile F10 Quit Alt-X Quit Esc Quit,DARKGRAY window10,5,70,20 textcolorWHITE textbackgroundMAGENTA clrscr DrawBox2,1,60,16,Гpамматика языка window12,6,78,19 textcolorYELLOW cputsrn cputs 1. Опеpатоp - GOTO Выpажение rn cputs 2. Выpажение - T Выpажение T Выpажение -Trn cputs 3. T - O TO TO TOrn cputs 4. O - Выpажение Идентификатоp ДБЗ rn cputs 5. Идентификатоp - ББЦrn cputs 6. ДБЗ - ЦЦ.ЦЦrnn cputs T - Теpмrn cputs O - Опеpандrn cputs Б - Букваrn cputs Ц - Цифpаrn cputs ДБЗ - Дробное Без Знакаrn cputs - возведение в степень.

IReadKey Язык оператора. void Languagevoid window1,25,80,25 textattr112 MyPuts F1 Help F2 Grammar F3 Language F9 Compile F10 Quit Alt-X Quit Esc Quit,DARKGRAY window20,8,60,18 textcolorWHITE textbackgroundGREEN clrscr DrawBox2,1,40,11,Язык оператора window22,9,58,17 textcolorBLACK cputsrn cputs GOTO CONST VAR АВrnn cputs CONST - Дробное без знака,rn cputs VAR - идентификатоp,rn cputs АВ - аpифметическое выpажение.

IReadKey Компиляция. void Compilevoid static int compile0 window1,25,80,25 textattr112 MyPuts F1 Help F2 Grammar F3 Language F9 Compile F10 Quit Alt-X Quit Esc Quit,DARKGRAY window20,8,60,18 textcolorWHITE textbackgroundRED clrscr DrawBox2,1,40,11,Компиляция window22,9,58,17 textcolorYELLOW cputsrn ifcompile 0 cputs Текст УЖЕ откомпилирован Beep900,1000 return errorsfopenPROTOCOL.TXT,wt cputs Идет компиляция.rnn Пожалуйста, подождите ifdef TEST window1,1,80,25 textattr78 clrscr endif fprintferrors,n fprintferrors, n fprintferrors, Протокол работы синтаксического распознавателя вычисляемого n fprintferrors, оператора перехода языка FORTRAN. n fprintferrors, n forint i0texti NULLi Scanertexti fprintferrors, n fprintferrors, КОНЕЦ. n fprintferrors, n fprintferrors,n Beep900,100 compile Обработка строки. int Scanerchar string char tmpstrSTRLEN strcpytmpstr,string Delspacetmpstr ScanStrtmpstr return 0 Поиск в строке оператора GOTO. int ScanStrchar string int j int i0 int k0 static int a0 char tmp80 char labelNO strcpySTR,string fprintferrors, n fprintferrors,sn,string fprintferrors, n do tmp0NULL j0 whileisspacestringk stringk-1NULL tmpjstringk-1 tmpjNULL ifstrcmptmp,GOTO 0 isdigittmp0 ifdef TEST cprintfНе определен идентификатор s.rn,tmp endif ERR1a ERR2i i Error5,tmp else ifisdigittmp0 labelYES ERR1a ERR2i posk whileABOK break whilestringk NULL iflabelNO ifdef TEST cprintfНе найден оператор GOTO.rnСтрока разбору не подлежит.rn endif Error6 a returnOK Удаление в строке пробелов. void Delspacechar string char strSTRLEN int j0 int i0 whileisspacestringi stringi NULL i forstringi NULLi ifislowerstringi stringitoupperstringi strjstringi strjNULL sprintfstring,s,str stringj-1NULL ifdef TEST textattr30 clreol cputsstring textattr78 cputsrn endif Реализация нетерминала Арифметическое Выражение . int ABvoid ifdef TEST cprintfAB - Проверка на Арифметическое Выражение.rn endif fprintferrors,AB - Проверка на Арифметическое Выражение.n Scan T ifnx AB else ifnx- AB ifnxNULL returnOK else ifnx nx nx Error1 returnYES Реализация нетерминала Терм . int Tvoid ifdef TEST cprintfT - Проверка на Терм.rn endif fprintferrors,T - Проверка на Терм.n O ifnx Scan T else ifnx Scan ifnx Scan T else T ifnxNULL returnOK else ifnx nx- nx Error2 returnOK Реализация нетерминала Операнд . int Ovoid ifdef TEST cprintfO - Проверка на Операнд.rn endif fprintferrors,O - Проверка на Операнд.n ifnx AB ifnx Error3 else Scan returnOK else ifIDENT NO ifFLOAT NO Error4 returnOK Реализация нетерминала Идентификатор . int IDENTvoid ifdef TEST cprintfIDENT - Проверка на Идентификатор с символа c.rn,nx getch endif fprintferrors,IDENT - Проверка на Идентификатор с символа c.n,nx ifisalphanx whileisalphanx isdigitnx Scan returnYES returnNO Реализация нетерминала Дробное Без Знака . int FLOATvoid ifdef TEST cprintfFLOAT - Проверка на Дробное Без Знака с цифры c.rn,nx getch endif fprintferrors, FLOAT - Проверка на Дробное Без Знака с цифры c.n,nx ifisdigitnx whileisdigitnx Scan ifnx. Scan whileisdigitnx Scan returnYES returnNO Сканирование следующего символа из строки. void Scanvoid ifdef TEST cprintfSCAN - Сканирование.

Текущий символ c с кодом d.rn,STRpos,STRpos getch endif fprintferrors,SCAN - Сканирование. Текущий символ c с кодом d.n,STRpos,STRpos nxSTRpos pos Обработка ошибок. void Errorint num,char s char E40 Ожидается или Ожидается , или , Ожидается , Ожидается идентификатор или Дробное без знака, Не определен идентификатор , Не найден оператор GOTOrnСтрока разбору не подлежит, NULL sprintfmesERR1ERR2,ss, Enum-1,s fprintferrors, n fprintferrors,Error - Ошибка строка d, ошибка d.n,ERR1,ERR2 ifdef TEST cprintfError - Ошибка строка d, ошибка d.rn,ERR1,ERR2 cprintfsrn,mesERR1ERR2 Beep1000,200 getch endif fprintferrors,sn,mesERR1ERR2 fprintferrors, n ERR2 mesERR1ERR20NULL Подключаемый файл. includeintface.h Файл с функциями интерфейса. 1997 Борзов Андрей Hиколаевич. E-mail ANDREYRedHouse.nstu.nsk.su. Литература. 1. Курс лекций по системному программированию. 2. Герберт Шилдт C для профессиональных программистов.

– Конец работы –

Используемые теги: Разработка, синтаксического, распознавателя, вычисляемого, оператора, перехода, языка, FORTRAN0.109

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Разработка синтаксического распознавателя вычисляемого оператора перехода языка FORTRAN

Что будем делать с полученным материалом:

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

Еще рефераты, курсовые, дипломные работы на эту тему:

Синтаксичесий распознователь арифметического оператора условного перехода языка FORTRAN
A a, AVn, aV. Грамматика G ОПЕРАТОР не является автоматной, так как не все е редукции начинаются с терминального символа. По этой же причине данная… Идея метода состоит в том, что каждому нетерминальному символу ставится в… Нейтрализация ошибок осуществляется по методу Айронса, то есть, спускаясь по синтаксическому дереву без возврата по…

Понятие литературный язык. Место литературного языка среди других форм существования языка
Литературный язык это язык государственных и культурных учреждений школьного обучения радио и телевидения науки публицистики художественной... Современный литературный язык многофункционален Он используется в различных... Основные сферы использования литературного языка телевидение и кино наука и образование печать и радио...

Оператор присваивания языка FORTRAN
G lt ОПЕРАТОР gt 1. lt ОПЕРАТОР gt lt ИДЕНТИФИКАТОР gt lt ВЫРАЖЕНИЕ gt 2. lt ВЫРАЖЕНИЕ gt Т lt ВЫРАЖЕНИЕ gt Т lt ВЫРАЖЕНИЕ gt -Т3.Т О Т О Т О Т О4.О… По этой же причине данная грамматика неявляется S - грамматикой.Метод… Идея метода состоит в том, что каждомунетерминальному символу ставится в соответствие определ нная программнаяединица…

Два объекта истории русского языка: живой язык диалектный и литературный язык
Новые общественные функции приобретает русский язык по мере сложения новой исторической общности советского народа он становится межнациональным... Современный период... Горшкова Хабургаев ИГРЯ...

Реализация языкового процессора оператора FOR языка BASIC

Общие правила разработки и ведения графических Документов. Порядок разработки и ведения графических оперативно- Служебных документов
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА... В методических рекомендациях подготовленных авторским коллективом кафедры тактико специальной подготовки в доступной...

А.Л. Лось Пособие включает разделы: языкознание как наука о языке, сущность и структура языка, лексикология, фонетика, грамматика, письменность и графические
Предисловие... Настоящее пособие написано в соответствии с программой по курсу Введение в... Автор стремился достаточно полно изложить материал курса осветить наиболее существенные проблемы стоящие перед...

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

Лекції № 7, 8. План лекцій. 7. Ларина Т.В. Англичане и русские: Язык, культура, коммуникация. – М.: Языки славянских культур, 2013. – 360 с
Language amp Communication... План лекцій... Common mistakes in English Differences between the American and the British English...

Философия языка "Трактата": логика языка versus логика мышления
Почти год Витгенштейн провел в плену, большую часть времени в лагере в Монте-Касино (Южная Италия). Здесь он и закончил ЛФТ. На протяжении всего… Добавим, что первое издание ЛФТ относится к 1921 году [23] . Для общей оценки… Можно сказать, что именно в этом произведении был выражен лингвистический поворот, у Фреге и Рассела лишь намеченный,…

0.051
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам