Введение к работе
Актуальность темы
Индустрия программных средств различного назначения - общего, проблемно-ориентированного вместе с постоянно обогащаемым спектром полезных инструментальных средств - выдвинуло в качестве приоритетной проблему интенсивной и качественной подготовки специалистов, создающих такие средства.
В процессе подготовки специалистов по группе специальностей с дошншрующпм значением гфограммированпя Еесьма вакноії является практическая реализация программных проектов (пли тс фрагментов) общего назначения: компиляторов, фрагментов операционных систем и т.д. Реализация таких проектов возмоана в сочетании активных и пассивны:: (иллюстративных) форм обучения. Пассивная форма выступает как. средство самоконтроля.
В контексте новы:: технологии ігрограілмпрозанЕЯ создание прак-тн.іуі.іов обучения конструированию слог.нкх систем общего назначения, е в частности, конструирования компиляторов, является актуальным. Такие практикумы предполагают самостоятельную разработку отдельных фрагментов, встраивавши в базовый конструктив, обеспечивающий не-тэномлое и контекстное функционирование отій: фрагментов с широкой визуализацией процесса функционирования (г.ультішликация) и возможностью самоконтроля обучаемого базовыми средствами. Подобная форма работы истпрпзнрует у обучаемого творческое начало, обусловливаемое только технологии программирования.
Цель работы
Целью настоящей работы является создание лабораторного практикума по методам конструирования компиляторов (ШКК), основывающе на разработанном в настоящей диссертации базовом компиляторе (БК), являщимся основным конструктивом, с-помощью и на базе которого пользователь ыо~ет конструировать из фрагментов задач функционирующую ііглюстрпрованкуіо комішліфующую систему. Тем самым у пользователя вырабатывается практический навык написания компиляторов, он становится готов к самостоятельной реализации .компиляторов.
В соответствии с поставленной целью в работе решаются следую
щие задачи: ,
- создание базового компилятора практикума, в котором все
_ A _
Разы выполнены в виде отдельных задач, весь процесс ноі.ішиїягппі иллюстрируется и имеется воз:точность замены отдельных модулей на аналог::чные, написанные пользователем самостоятельно ;
разработка .нового подхода к составлению атрибутных грамматик, позволяющего быстрее обучить пользователя работе по составлению АГ ;
разработка простого :: универсального по отнопенпэ к исходному и объектному языкам компилятора языка внутреннего представле-ніїя ;
Методы исследований
Для решения поставленных теоретических: и практических задач были использованы методы структурного програмг-пгровання, методы теории компиляции: п теорій: графов, а так.~е методы автоматической генерации кода.
Научная новизна
В соответствии с поставленной целью з работе решены следующие задачи:
предложен ковки подход к разработке атрибутных грамматик, при котором схег.іа обхода НСД планируется на начальном этапе разработки АГ, а не вычисляется как свойство j~e имеющейся грамматики ;
разработан просто:; :: универсальный по отношению к исходному и объектному языкам компилятора язык внутреннего представления программ для генерации кода, где универсальность достигается возможностью замены основных конструкций языка и/или их семантики;
реализована методика активного обучения конструированию компиляторов, заключающаяся в 33:.:6110 отдельных составляющих модулей иллюстрированного базового компилятора программами, написанными пользователем ;
предложена классификация методов синтаксического анализа с точки зрения целесообразности их использования в практикуме.
Практическая ценность
Практическая ценность работы заключается:
- в пэвызнпп интенсивности и качества обучения конструирова
нию компиляторов ;
- б -
Е прпобретек:і:: навыков для дальнейпеп самостоятельной работы по проектированию і: реализации транслирующих систем ;
в возможности использования ЕХ для отладки грагммгтцк и д; опробацпн ілєтодое нейтрализации ошибок при разработке промышленных компиляторов.
Ьнедрение результатов работы
Практикум по методам конструирования компиляторов (2.3К) ::_ шел апробацию в HIE математики Ленинградского государственного университета, используется в разработках предприятия "1-!нйоГ«Ьгр". Практиігум используется для обучения в Таганрогском радио-техлипч коїл институте и на механико-математическом г.аіультете І.Ьсковсно: государственного университета.
іпрооацпя работы
Работа догладывалась на республиканском совещании-сеї.ікнгре "Использование 5ЕЛ з учебкой п научно-исследовательской работе студентов", ігооходиееєм в І988году в Новосибирске.
Объем п структура работы
Диссертация включает в себя 5 глав с приложениями и состой из ІЇ4 страниц текста. Первая глава - вводная. Излагается поста ка задачи, производится обзор существующий программ для обуче;и: комп::дяц::п. Іторая глава посвящена лексическому и синтаксические анализу. Обосновывается выбор использованный в ILIUK глетодов, ог сывактся архитектура и возможности пользователя. Б третье:': глаї описывается семантический анализ е ILECK, вводится понятие дина:' ческого подхода і: проектированию атрибутных грамматик. Четверта глава посвящена генерации кода е ЕК, вводится универсальный язі внутреннего представления программ. Б пятой главе рассказываете о возможностях пользователя при работе с ILI3.