Оператор присваивания языка FORTRAN

  • Просмотров 1692
  • Скачиваний 179
  • Размер файла 25
    Кб

Министерство науки, высшей школы и технической политики Российской Федера­ции. Новосибирский Государственный Техниче­ский Университет. Курсовая работа по системному программированию. Оператор присваивания языка FORTRAN. Факультет: АВТ. Кафедра: АСУ. Группа: А-513. Студент: Ефименко Денис Владимирович. Преподаватель: Шорников Юрий Владимирович. Ассистент: Панова Вера Борисовна. Дата: 10 июня 1997 года. Отметка о защите:

_______________________________ Новосибирск – 1997. Язык оператора. Язык оператора присваивания FORTRAN. Идентификатор = арифметическое выражение Арифметическое выражение – выражение, содержащее в себе операции *, /, -, +, **, а также ( ). ** – возведение в степень. Грамматика языка. G[<ОПЕРАТОР>]: 1.<ОПЕРАТОР> ® <ИДЕНТИФИКАТОР> = <ВЫРАЖЕНИЕ> 2.<ВЫРАЖЕНИЕ> ® Тç<ВЫРАЖЕНИЕ>+Т ç <ВЫРАЖЕНИЕ>-Т 3.Т ® О çТ*О ç Т/О êТ**О 4.О

®(<ВЫРАЖЕНИЕ>) ç<ИДЕНТИФИКАТОР> ç<ДБЗ> 5.<ИДЕНТИФИКАТОР> ® Б{Б çЦ}[L] 6.<ДБЗ> ® Ц{Ц}[.Ц{Ц}][L] Т – ТЕРМ О – ОПЕРАНД Б – БУКВА Ц – ЦИФРА ДБЗ – ДРОБНОЕ БЕЗ ЗНАКА L – КОНЕЦ СТРОКИ (пусто) ** – ВОЗВЕДЕНИЕ В СТЕПЕНЬ Классификация грамматики. Данная грамматика G[<ОПЕРАТОР>], согласно классификации Хомского, является контекстно-свободной, так как правая часть каждой редукции начинается либо с терминального символа, либо

с нетерминального, принадлежащего объединённому словарю. A ® a, AÎVn, aÎV*. Грамматика G[<ОПЕРАТОР>] не является автоматной, так как не все её редукции начинаются с терминального символа. По этой же причине данная грамматика не является S - грамматикой. Метод анализа. Для данной грамматики реализован разбор методом рекурсивного спуска, поскольку она относится к классу контекстно-свободных. Идея метода состоит в том, что

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