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

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

Синтаксичесий распознователь арифметического оператора условного перехода языка FORTRAN

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

Синтаксичесий распознователь арифметического оператора условного перехода языка FORTRAN - раздел Программирование, - 1997 год - Fortran 1997 Язык Арифметического Оператора Условного Перехода Языка...

FORTRAN 1997 Язык арифметического оператора условного перехода языка FORTRAN. IF АВ LABEL1,LABEL2,LABEL3 АВ - Арифметическое Выражение.LABEL1,LABEL2,LABEL3 - первая, вторая и третья метки соответственно G Оператор 1. Оператор IF АВ LABEL , LABEL , LABEL 2. LABEL ЦБЗ 3. АВ T АВ T АВ -T 4. T O TO TO TO 5. O АВ Идентификатор ЧПЗ 6. Идентификатор ББЦ 7. ЦБЗ ЦЦ 8. ЧПЗ ЦЦ.ЦЦ Т ТЕРМ.О ОПЕРАНД.Б БУКВА.Ц ЦИФРА.ЦБЗ ЦЕЛОЕ БЕЗ ЗНАКА. ВОЗВЕДЕНИЕ В СТЕПЕНЬ.LABEL МЕТКА.ЧПЗ ЧИСЛО С ПЛАВАЮЩЕЙ ЗАПЯТОЙ. КОНЕЦ СТРОКИ пусто.АВ АРИФМЕТИЧЕСКОЕ ВЫРАЖЕНИЕ Данная грамматика G ОПЕРАТОР , согласно классификации Хомского, является контекстно-свободной, так как правая часть каждой редукции начинается либо с терминального символа, либо с нетерминального, принадлежащего объединнному словарю.

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

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

Нейтрализация ошибок осуществляется по методу Айронса, то есть, спускаясь по синтаксическому дереву без возврата по контексту, при обнаружении тупиковой ситуации отбрасываются те литеры символы, которые привели в тупиковую ситуацию и разбор продолжается IF6tg4569.347y-5556 64,44,548 Текущий символ - 40. AB - Проверка на Арифметическое Выражение.

Текущий символ - 40. Term - Проверка на Терм. Operand - Проверка на Операнд. AB - Проверка на Арифметическое Выражение. Текущий символ - 40. Term - Проверка на Терм. Operand - Проверка на Операнд. AB - Проверка на Арифметическое Выражение. Текущий символ 6 - 54. Term - Проверка на Терм. Operand - Проверка на Операнд.IDENT - Проверка на Идентификатор с символа 6. FLOAT - проверка на число с плавающей запятой с цифры 6. Текущий символ - 47. Текущий символ t - 116. Term - Проверка на Терм. Operand - Проверка на Операнд.

IDENT - Проверка на Идентификатор с символа t. Текущий символ - 43. AB - Проверка на Арифметическое Выражение. Текущий символ g - 103. Term - Проверка на Терм. Operand - Проверка на Операнд.IDENT - Проверка на Идентификатор с символа g. Текущий символ - 42. Текущий символ 4 - 52. Term - Проверка на Терм. Operand - Проверка на Операнд.

IDENT - Проверка на Идентификатор с символа 4. FLOAT - проверка на число с плавающей запятой с цифры 4. Текущий символ 5 - 53. Текущий символ 6 - 54. Текущий символ - 41. Текущий символ - 47. Текущий символ - 40. Term - Проверка на Терм. Operand - Проверка на Операнд.

AB - Проверка на Арифметическое Выражение. Текущий символ 9 - 57. Term - Проверка на Терм. Operand - Проверка на Операнд.IDENT - Проверка на Идентификатор с символа 9. FLOAT - проверка на число с плавающей запятой с цифры 9. Текущий символ 46. Текущий символ 3 - 51. Текущий символ 4 - 52. Текущий символ 7 - 55. Текущий символ - 42. Текущий символ y - 121. Term - Проверка на Терм. Operand - Проверка на Операнд.

IDENT - Проверка на Идентификатор с символа y. Текущий символ 45. AB - Проверка на Арифметическое Выражение. Текущий символ 5 - 53. Term - Проверка на Терм. Operand - Проверка на Операнд.IDENT - Проверка на Идентификатор с символа 5. FLOAT - проверка на число с плавающей запятой с цифры 5. Текущий символ 5 - 53. Текущий символ 5 - 53. Текущий символ - 41. Текущий символ - 41. Текущий символ - 42. Текущий символ - 42. Текущий символ 6 - 54. Term - Проверка на Терм. Operand - Проверка на Операнд.

IDENT - Проверка на Идентификатор с символа 6. FLOAT - проверка на число с плавающей запятой с цифры 6. Текущий символ - 41. Текущий символ - 32. Текущий символ 6 - 54. ABS - проверка на Целое Без Знака с цифры 6. Текущий символ 4 - 52. Текущий символ 44. Текущий символ 4 - 52. ABS - проверка на Целое Без Знака с цифры 4. Текущий символ 4 - 52. Текущий символ 44. Текущий символ 5 - 53. ABS - проверка на Целое Без Знака с цифры 5. Текущий символ 4 - 52. Текущий символ 8 - 56. Текущий символ NULL - 0. IFr3450.22 3,56,1 Текущий символ - 40. AB - Проверка на Арифметическое Выражение.

Текущий символ r - 114. Term - Проверка на Терм. Operand - Проверка на Операнд.

IDENT - Проверка на Идентификатор с символа r. Текущий символ - 42. Текущий символ - 42. Текущий символ 3 - 51. Term - Проверка на Терм. Operand - Проверка на Операнд.

IDENT - Проверка на Идентификатор с символа 3. FLOAT - проверка на число с плавающей запятой с цифры 3. Текущий символ 4 - 52. Текущий символ - 47. Текущий символ 5 - 53. Term - Проверка на Терм. Operand - Проверка на Операнд.IDENT - Проверка на Идентификатор с символа 5. FLOAT - проверка на число с плавающей запятой с цифры 5. Текущий символ 0 - 48. Текущий символ 46. Текущий символ 2 - 50. Текущий символ 2 - 50. Текущий символ - 41. Текущий символ - 32. Текущий символ 3 - 51. ABS - проверка на Целое Без Знака с цифры 3. Текущий символ 44. Текущий символ 5 - 53. ABS - проверка на Целое Без Знака с цифры 5. Текущий символ 6 - 54. Текущий символ 44. Текущий символ 1 - 49. ABS - проверка на Целое Без Знака с цифры 1. Текущий символ NULL - 0 FILE KURSOVIC.CPP. ВАРИАHТ 2. Арифметический оператор условного перехода языка FORTRAN. Кафедpа АСУ. Гpуппа А-513. Студент Бойко Константин Анатольевич.

Пpеподаватели кандидат технических наук, доцент Шоpников Юpий Владимиpович, ассистент Панова Веpа Боpисовна. Дата 30 апреля 1997г. Заголовочные файлы. include stdio.h include conio.h include string.h include stdlib.h include keyboard.h include dos.h include ctype.h Константы. define FILENAME TEXT.TXT define YES 1 define NO 2 define OK 3 define TEST Глобальные переменные. char file12260 Массив строк. char mes223050 Массив сообщений об ошибках. char bufer4096 Снимок с экрана. int com0 Показатель откомпилирован файл или нет. int pos2 Текущая позиция в строке. char string80 Текущая строка файла. char nx Текущий символ в строке. int e10 Счетчик страниц массива собщений об ошибках. int e20 Счетчик строк в странице. int l0 Счетчик меток.

FILE flfopenMESSAGE.TXT,wt Файл с сообщениями об ошибках.

Прототипы функций. void Windowsint,int,int,int,char Построение окон. void Beepint,int Звуковой сигнал. void OpenFilevoid Открытие файла. void SecondWindowvoid Построение нижней панели. void MyPutschar,int Аналог putschar. void PrintFilevoid Печать файла. void Menuvoid Меню. int ireadkeyvoid Опрос клавиатуры. void Helpvoid Помощь. void Grammarvoid Грамматика языка. void Languagevoid Язык оператора. void Compilevoid Компиляция. void Operatorchar Сканирование оператора. void Scanvoid Сканирование следующего символа. void Labelvoid Реализация Label. int ABSvoid Реализация ABS. int IDENTvoid Реализация IDENT. int ABvoid Реализация AB. void Errorint Обработка ошибки. int Termvoid Реализация Term. int Operandvoid Реализация Operand. int Floatvoid Реализация Float. void Messageint Вывод сообщений об ошибках.

Функция MAIN. void main setcursortypeSOLIDCURSOR window1,1,80,25 textattr113 clrscr forint i0i 24i cputs textcolorBLACK cputs Enter filename window20,7,60,17 textattr127 clrscr Windows20,7,60,17,Open a File gotoxy4,3 putsName gotoxy6,7 putsПо умолчанию будет введен файл gotoxy17,8 putsFILENAME window23,10,57,10 textattr31 clrscr OpenFile SecondWindow PrintFile setcursortypeNOCURSOR Menu Звуковой сигнал. void Beepint tone,int pause soundtone delaypause nosound Построение рамок. void Windowsint x,int y,int x1,int y1,char string y1 forint i2i x1-xi gotoxyi,1 putch gotoxyi,y1-y putch fori1i y1-yi gotoxy2,i putch gotoxyx1-x,i putch gotoxy2,1 putchг gotoxyx1-x,1 putch gotoxyx1-x,y1-y putch- gotoxy2,y1-y putchL gotoxyx1-x-strlenstring22,1 putsstring Функция открытия файла. void OpenFilevoid char filename38 filename035 char pcgetsfilename strcpyfilename,p iffilename0NULL strcpyfilename,FILENAME FILE file if file fopenfilename, rt NULL window1,1,80,25 textattr7 setcursortypeNORMALCURSOR clrscr perrorERROR fcloseall getch exit1 forint i0i 22i char temp255 iffgetstemp,80,fileNULL break strcpyfile1i,temp fclosefile Построение нижней панели. void SecondWindowvoid window1,1,80,25 textattr17 clrscr window1,1,80,24 textattr31 clrscr Windows1,1,80,24,File window1,25,80,25 textattr127 clrscr MyPuts F1 Help F2 Grammar F3 Language F4 Compile ESC Exit, LIGHTBLUE MyPuts. void MyPutschar string,int color int j0 forint i0stringi NULLi ifstringi j0 textcolorcolor i j ifstringi j0 textcolorBLACK i j cprintfc,stringi ifstringiNULL break Функция вывода файла на экран. void PrintFilevoid window3,2,77,24 textattr31 forint i0i 22i cputsfile1i putchr Меню. void Menuvoid gettext1,1,80,25,bufer Вся информация с экрана заносится в буфер. int y1 Счетчик строк. gotoxy1,1 textattr63 clreol cputsfile10 textattr31 gotoxy5,23 cprintf -2d ,y while1 switch ireadkey case EASCF1 gettext1,1,80,25,bufer Help puttext1,1,80,25,bufer break case EASCF2 gettext1,1,80,25,bufer Grammar puttext1,1,80,25,bufer break case EASCF3 gettext1,1,80,25,bufer Language puttext1,1,80,25,bufer break case EASCF4 gettext1,1,80,25,bufer Compile puttext1,1,80,25,bufer window48,2,78,23 textattr95 clrscr Windows49,3,79,24,Message Messagey-1 break case EASCEsc window1,1,80,25 textattr7 clrscr fcloseall exit1 break case EASCUp ify 1 ifcom 0 window3,2,47,24 else window3,2,77,24 y gotoxy1,y textattr63 clreol cputsfile1y-1 gotoxy1,y1 textattr31 clreol cputsfile1y gotoxy5,23 cprintf d ,y ifcom 0 Messagey-1 break case EASCDown ify 22 ifcom 0 window3,2,47,24 else window3,2,77,24 gotoxy1,y textattr63 clreol cputsfile1y-1 gotoxy1,y-1 textattr31 clreol cputsfile1y-2 gotoxy5,23 cprintf d ,y ifcom 0 Messagey-1 break Help. void Helpvoid window1,1,80,25 textattr78 clrscr Windows1,1,80,25,Help window4,3,77,23 cprintfНОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТnnr cprintf КАФЕДРА АСУnnr cprintf Курсовая работа по системному программированию на темуnr cprintf Арифметический оператор условного перехода языка FORTRAN.nnr cprintf Студента группы А-513nnr cprintf Бойко Константина Анатольевича.nnr cprintfВ программе использованы клавишиnr cprintf F1 - данный Help.nr cprintf F2 - грамматика языка.nr cprintf F3 - язык оператора.nr cprintf F4 - компиляция файла.nr cprintf ESC - выход из программы.nnr cprintf Для выхода из Help нажмите любую клавишу. getch Грамматика. void Grammarvoid window10,2,70,23 textattr46 clrscr Windows10,2,70,23,Grammar window12,4,68,22 cprintf 1. Оператор - IF АВ LABEL , LABEL , LABEL nr cprintf 2. LABEL - ЦБЗ nr cprintf 3. АВ - T АВ T АВ -Tnr cprintf 4. T - O TO TO TOnr cprintf 5. O - АВ Идентификатор ЧПЗ nr cprintf 6. Идентификатор - ББЦnr cprintf 7. ЦБЗ - ЦЦnr cprintf 8. ЧПЗ - ЦЦ.ЦЦnnr cprintf Условные обозначенияnr cprintf T - терм.nr cprintf O - операнд.nr cprintf Б - буква.nr cprintf Ц - цифра.nr cprintf ЦБЗ - целое без знака.nr cprintf ЧПЗ - число с плавающей запятой.nr cprintf - возведение в степень.nr cprintf LABEL - метка.nr cprintf АВ - арифметическое выражение. getch Язык. void Languagevoid window20,7,60,17 textattr62 clrscr Windows20,7,60,17,Language window22,9,58,16 cprintf IF АВ LABEL1,LABEL2,LABEL3nnr cprintf АВ - Арифметическое Выражение.nr cprintf LABEL1,LABEL2,LABEL3 - первая,вторая и третья метки соответственно.nr getch Компиляция программы. void Compilevoid window20,7,55,13 textattr94 clrscr Windows20,7,55,13,Compile window22,8,58,16 gotoxy1,1 ifcom0 cprintfnn Файл откомпилирован Beep900,1000 return cputsn Идет компиляция файла.rnn Пожалуйста, подождите ifdef TEST window1,1,80,25 clrscr endif forint i0file1i0NULLi Operatorfile1i ifl3 l0 Error11 e1 e20 com delay300 Beep1000,200 Оператор. void Operatorchar str pos2 l0 string0NULL strcpystring,str stringstrlenstring-1NULL char temp3 temp0str0 temp1str1 temp2NULL ifdef TEST putsstring putstemp getch endif fprintffl, n fprintffl, sn,string ifstrcmptemp,IF0 ifdef TEST printfНе найден оператор IF.n endif Error10 return Scan ifnx Scan ifnx Error7 ifnxNULL Error12 Error9 return AB whilenx nxNULL nx Scan ifnx Error3 ifnxNULL Error9 return Scan ifnxNULL Error9 return ifnx Scan Label ifnx, Error5 Scan else Scan ifnxNULL return Label ifnx, Error5 Scan else Scan ifnxNULL return Label ifnxNULL Error6 Scan return Scan. void Scanvoid nxstringpos ifdef TEST printfТекущий символ c - d.n,nx,nx endif fprintffl,Текущий символ c - d.n,nx,nx Метка. void Labelvoid ifABS NO Error8 Scan else l Целое Без Знака. int ABSvoid ifdef TEST cprintfABS - проверка на Целое Без Знака с цифры c.rn,nx endif fprintffl,ABS - проверка на Целое Без Знака с цифры c.n,nx ifisdigitnx whileisdigitnx Scan returnYES returnNO Арифметическое Выражение. int ABvoid ifdef TEST cprintfAB - Проверка на Арифметическое Выражение.rn endif fprintffl,AB - Проверка на Арифметическое Выражение.n Scan ifnx Error12 returnNO Term ifnx AB else ifnx- AB ifnxNULL returnOK else ifnx nx nx Error1 returnYES Терм. int Termvoid ifdef TEST cprintfTerm - Проверка на Терм.rn endif fprintffl,Term - Проверка на Терм.n Operand ifnx Scan Term else ifnx Scan ifnx Scan Term else Term ifnxNULL returnOK else ifnx nx- nx Error2 returnOK Операнд. int Operandvoid ifdef TEST cprintfOperand - Проверка на Операнд.rn endif fprintffl,Operand - Проверка на Операнд.n ifnx AB ifnx Error3 else Scan returnOK else ifIDENT NO ifFloat NO Error4 returnOK Идентификатор. int IDENTvoid ifdef TEST cprintfIDENT - Проверка на Идентификатор с символа c.rn,nx endif fprintffl, IDENT - Проверка на Идентификатор с символа c.n,nx ifisalphanx whileisalphanx isdigitnx Scan returnYES returnNO Ошибки. void Errorint num char E Ожидается или Ожидается , или Ожидается Ожидается идентификатор или целое без знака Отсутствует Не конец строки Ожидается Метка - не целое без знака Отсутствуют метки Не найден оператор IF Отсутствует метка Отсутствует AB NULL sprintfmese1e2,s,Enum-1 e2 ifdef TEST Beep1000,100 cprintfОшибка srn,Enum-1 getch endif fprintffl, n fprintffl,Ошибка srn,Enum-1 Float. int Floatvoid ifdef TEST cprintfFLOAT - проверка на число с плавающей запятой с цифры c.rn,nx endif fprintffl,FLOAT - проверка на число с плавающей запятой с цифры c.n,nx ifisdigitnx whileisdigitnx Scan ifnx. Scan whileisdigitnx Scan returnYES returnNO Message. void Messageint x window50,3,76,22 textattr95 clrscr gotoxy1,1 forint i0mesxi0NULLi cprintfsrn,mesxi . 1. Курс лекций по системному программированию. 2. Герберт Шилдт C для профессиональных программистов.

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

Используемые теги: Синтаксичесий, распознователь, арифметического, оператора, условного, перехода, языка, FORTRAN0.113

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

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

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

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

Разработка синтаксического распознавателя вычисляемого оператора перехода языка FORTRAN
G ОПЕРАТОР 1. ОПЕРАТОР GOTO ВЫРАЖЕНИЕ 2. ВЫРАЖЕНИЕ Т ВЫРАЖЕНИЕ Т ВЫРАЖЕНИЕ Т 3. Т О ТО ТО ТО 4. О ВЫРАЖЕНИЕ ИДЕНТИФИКАТОР ДБЗ 5. ИДЕНТИФИКАТОР ББ Ц… 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

Изобретение языка: концепции возникновения языка от Демокрита до А.Смита
Первоначальные формы его выражения Язык наиболее объемлющее и наиболее дифференцированное средство выражения, которым владеет человек, и… Крик при этом распадался на свои составные части так появился ряд звуков,… Поэтому, когда появлялся этот предмет, появлялся как бы сам по себе и в одной и той же форме этот звуковой комплекс.…

Язык, память, образ. Лингвистика языкового существования.
На сайте allrefs.net читайте: "Язык, память, образ. Лингвистика языкового существования."

Языковой материал для немецкого языка
Аспирация согласных p , t , k .Ассимиляция по глухости.Ударение и мелодика в немецком предложении. Ритмнемецкой речи. Ударение словесное, фразовое,… Отличие фонетического строя немецкого языка отфонетического строя русского… Склонение им н существительных.АртикльАртикль - служебное слово. Понятие о происхожденииартикля. Определ нный и…

Кванты излучения и переходы. Уровни энергии и спектральные переходы в атоме водорода
Её традиционные интересы обычно лежат в нерелятивистской области, хотя по необходимости и всё чаще она прибегает и к релятивистским… В последние годы возникал наноэлектроника. Она занимается объектами, размеры… Причиной сильного взаимодействия являются ядерные силы, которые в ядре действуют между нейтроном и протоном и…

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

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