Введение к работе
АКТУАЛЬНОСТЬ ТЕШ. Развитие процессов информатизации общества, рост потребностей в программном обеспечении требует увеличения производительности труда программистов.
Число массово используемых в настоящее время языков прог-раммировапи.ч невелико. Предоставляемые ими возможности не могут удовлетворить все разнообразие потребностей пользователей.
Для того, чтобы расширить возможности языков, широко применяются препроцессоры. Хорошо известны недостатки такого подхода :
а) необходимость работать с двумя представлениями исходно
го текста;
б) увеличение количества файлов;
в) увеличение времен компиляции.
Компиляторы ряда языков программирования (MACR0-II, С, PL/I) имеют встроенный механизм препроцессирования. Использование этого механизма позволяет избежать недостатков а), б). Однако недостаток в) по-прежнему имеет место.
В настоящей диссертации предложен практически применимый . подход, который снимает часть недостатков препроцессирования.
, Этот подход состоит в применении так называемых редакто-роь-препроцессоров, которые выполняют инкрементальное препроцессирование в течение сеанса редактирования "ри этом в каждый момент ужо готов результат препроцессирования редактируемого в этот момент текста.
Описываемый подход позволяет в любой момент редактирования по запросу пользователя визуализировать результат препроцессирования. По окончании жо сеанса редактирования действия по
препроцессированию оказываются уже выполненными. Следовательно, время компиляции не увеличивается из-за необходимости препроцессирования.
Поскольку препроцессирование может быть полезно при работ< с различными языками программирования и потребности в расширении языка выясняются в процессе разработки программы пользователем, целесообразно иметь механизм встраивания в редактор различных препроцессоров. Такой механизм описан в настоящей работ* под названием "генератор редакторов-препроцессоров".
По сравнению с традиционной парой "редактор текстов и препроцессор" единый редактор-препроцессор обладает рядом преимуществ:
-
Возможность в основном работать с (одним) исходным (дс препроцессирования) текстом программы.
-
Уменьшение времени оборота за счет совмещения по времени процесса редактирования и препроцессирования.
-
Возможность контроля исходного текста в процессе редактирования, выдача диагностики в терминах исходного языка. .
-
Возможность визуализации результат? прелроцессированш в любой момент редактирования.
Разработка настраиваемых редакторов-препроцессоров требует решения ряда взаимосвязанных проблем, в том числе исследованш и разработки:
.- эффективных методов и алгоритмов переработки йнформаши в процессе препроцессирования, совмещенного с редактированием;
построение теории возвратных конечных преобразователей, применяемой в указанных алгоритмах;
специальных алгоритмов визуализации результатов препроцессирования ;
- методов синтаксического редактирования, ориентированных
на задачу препроцессирования.
ЦЕЛИ РАБОТЫ состоят в следующем:
анализ современных подходов к повышению эффективности разработок программ на традиционных языках программирования;
разработка типочых структур данных и методов их реализации для задач редактирования-препроцессирования;
расширение теории конечных преобразователей для применения ее к задачам диалогового препроцессирования;
разработка генератора инструментальных редакторов-препроцессоров, применимого, в частности, к распространенным языкам программирования;
генерация конкрет.-rjx рояакторов-препроцессоров для ми-
.... 'лЪ\Я ~ ^ -„ ,...-. ... ...... ,. ................ *jt>U
nH-.-'L-lvl, ІІиі-М.-иПсІЛЬІНІЛ VI ШГ-і.'ЛГЛИЛ ..'Ulyl.
Г'УЧіі/іЯ НОВИЗНА. Расширена теория конечных преобразователей. Предложен и реализован новый тип инструментального средства: настраиваемый редактор-препроцессор.
ПРАКТИЧЕСКАЯ ЗНАЧИМОСТЬ. Предложен новый подход к разра-5откб инструментальных редакторов программ. Разработан и реализован практически генератор редакторов-препроцессоров, проведе-ш генерация редакторов-препроцессоров для расширений языков ЛАКРО-П, Фортрана, Си и других.
шшАгишш. продлилоппыи о ди^і;оріации гопвраіир редалїи-
юв-препроцессоров* использовался при разработке программного збеспечения учебного процесса на механико-математическом фа-
.-4--кулыете МГУ, б частности, с его помощью были разработаны три синтаксичбекй-орибнтйрОБакпкх редактора для языков MACRO-II, Фортран и С. Кроме того, был сгенерирован редактор-препроцессор для структурного программирования на Ассемблере школьной ЭВМ УКЩ. Редактор-препроцессор для MACK0-II используется в ряде организаций страны.
АПРОБАЦИЯ РАБОТЫ. Материалы работы докладывались на:
Ломоносовских чтениях в МГУ (1987,1988,1989);.
на ежегодной научной конференции НИВ'! АН СССР (Пушино, 1987, 1988);
на научных семинарах механико-математического факультета МГУ (1987-1992);
на Всесоюзных семинарах "Разработка и применение программных средств ПЭВМ в учебном процессе" (1988, 1989).
ПУБЛИКАЦИЙ.! Основные'результаты диссертации изложены в работах [1-5].