Parser Generator
Инструментарий для построения компиляторов.
   

Главная

О сайте

Документация

Download

Ссылки

Библиография

О нас


Использование программы для обучения

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

С помощью этой системы можно развить наглядно продемнострировать результаты работы многих алгоритмов. Это особенно важно, т.к. многие из них очень сложны для самостоятельного вычисления, а у изучающего может появится необходимость провести серию опытов, посмотреть на различные варианты преобразований, сравнить их, понять каким образом был получен рещультат. Теперь он сможет самостоятельно провести эти опыты.

Изучение формальных грамматик

Формальные грамматики- основа всей теории компиляции, синтаксического анализа, трансляции. В той или иной форме (БНФ, диаграммы Вирта) они присутствуют во многих других приложениях, поэтому очень важно в процессе обучения дать понять студентам, каким образом можно их использовать, какие ограничения могут существовать и как эти ограничения можно "обходить".

Одной из самых первых тем в теории формальных грамматик следует преобразование формальных грамматик. Эти преобразования сложны, что является большой трудностью в их освоении. Эта трудность заключается прежде всего в большом объеме вычислений, которые необходимо производить. Получив в свое распоряжение инструмент, с помощью которого можно легко производить эти преобразования студенты быстро пойдут дальше, поскольку у них не будет препятствия экспериментировать с грамматиками, приводить их в различные формы, проверять их на принадлежность к различным классам. Таким образом снимается большой барьер, который отделяет студентов от практического использования формальных грамматик. Пользовательский интерфейс программы разработан на основе уже существующего и широко известного интерфейса системы Visual Studio. Многим студентам знаком этот интерфейс, что облегчит и ускорит процесс из знакомства с нашей программой.

Для контроля знаний студентов можно проводить тесты на понимание того, что должно происходить с грамматикой при том, или ином преобразовании. Форма может быть следующей- преподаватель загружает несложную грамматику, и просит студента предположить, что произойдет с ней после того или иного преобразования. Для самых простых грамматик можно попросить студента написать полное представление грамматики после преобразования.

ЛЛ1-грамматики

Одним из самых сложных этапов при разработке ЛЛ1-синтаксического анализатора является создание грамматики соответствующего класса. Как правило это тяжелая и утомительная работа. Теперь ее можно значительно упростить, сосредоточив внимание на самых интересных этапах разработки компилятора. Понимание того, как должна выглядеть ЛЛ1-грамматика возникнет вседствие того, что студентам придется "поиграть" с грамматикой, применяя к ней различные преобразования. Программа позволяет не просто определять принадлежность грамматики к тому или иному классу, но и выдавать "подсказки" в случае отрицательного ответа. Не разобравшись в теории формальных грамматик студент не сможет понять подсказки программы, таким образом программы является лишь инструментом, а не полностью заменяет человека.

Для ЛЛ1-грамматик студенты могут просмотреть каким образом она управляет работой автомата. Это поможет выявить ошибки в грамматике, обнаружив, что алгоритм допускает неправильные, или не допускает правильные цепочки.

Грамматики предшествования

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

Грамматики предшествования являются достаточно эффективными с точки зрения практического использования. Однако ручное построение матрицы предшествования затрудняет их "использование". Используя данный пакет сиуденты смогут быстро построить синтаксические анализаторы для своих грамматик.

Возможность удаленного обучения. Работа через интернет.

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

Данный пакет разрабатывался как на языке C++, так и на языке Java. Использование XML еще больше способствует тому, чтобы использовать данный пакет в пространстве Internet. Язык Java позволяет использовать его на многих операционных системах, в том числе и в сети Internet. Для этого необходимо создать сервер с поддержкой Java 2 Enterprise Edition (J2EE). Для этого можно использовать любой сервер, подключенный к Internet с установленным на нем Application Server. Например можно использовать пакеты Orion, Tomcat+JBoss, Inprise Application Server (IAS), IPlanet. Многие из них поставляются бесплатно, являясь тем не менее очень качественными и надежными продуктами. Установив такой сервер, можно поместить на него серверный вариант разработанной программы, который будет работать на сервере, предоставляя доступ многим студентам. Это позволит создать единую библиотеку формальных грамматик, осуществлять контроль за работой студентов. Студенты могут работать как в режиме on-line, так и в режиме off-line, забирая файлы к себе на компьютер и используя для их обработки настольную desk-top версию продукта.

Работа с данными в Internet будет проходить по следующей схеме:

  • Уровень хранения информации. Этот уровень представляет собой базу данных, где хранится вся информация- каталог формальных грамматик, настройки пользователей, задания для студентов, справочная информация.
  • Уровень бизнесс логики. Этот уровень представляет собой несколько активных контейнеров приложений, в которых запускаются различные модули (классы Java для обработки данных- формальных грамматик). Здесь же осуществляется контроль за исполнением заданий и т.д. Этот уровень физически может быть представлен несколькими компьютерами.
  • Уровень представления информации. Здесь формируется HTML код, который отсылается клиенту для отображения. На этот уровень приходят данные с уровня обработки в формате XML. Здесь они проходят преобразование с помощью XSL в HTML. Сюда же приходят запросы клиента, которые передаются в уровень бизнесс логики. Здесь работают JSP страницы, библиотеки тегов, сервлеты.
  • Уровень отображения. Это- непосредственно броузер клиента, через который он видит приходящую информацию и с помощью которого он формирует запросы серверу на изменение данных.
  • Удаленное обучение очень способствует самостоятельному обучению студентов, поскольку в любой момент студент может получить доступ к необходимой информации. Нет необходимости ехать в библиотеки за книгами, в институт за необходимыми программами. Однако это лишь помощник. Студент может таким образом получать дополнительную информацию и приобретать опыт. Начальные знания все равно будут черпаться из уст преподавателя.


     
       
    © С. Григорчук 2001, Содержание, дизайн

    ukman@yandex.ru
    Hosted by uCoz