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

Главная

О сайте

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

Download

Ссылки

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

О нас


Обоснование выбора.

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

Теперь ни для кого не является чем-то необычным встроенный в программу язык программирования, или язык описания сценариев работы. Все больше и больше разработчиков обращаются к XML как языку описания данных. Затраты на разбор XML документов уже никого не смущают- они очень ничтожны, а выигрыш в стоимости разработки с использованием XML намного превосходит затраты на приобретение более мощной техники. Одним из самых ярких примеров использования скриптовых языков стало использование языка JavaSript для "оживления" интернет страниц. Являясь простым языком, он тем не мене решает многие важные задачи, которые до его появления оставались нерешаемыми. Также язык Visual Basic встраиваясь в приложения Microsoft позволяет намного эффективнее использовать труд человека избавляя его от рутинной работы.

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

В качестве языков не программирования можно привести стандарт XSL, который очень эффективно позволяет создавать любое практически конечное представление для данных, хранящихся в формате XML. Раньше для такого представления приходилось писать специальные "просмотрщики" или "конверторы". Теперь же подобная задача по силам любому, кто хоть немного владеет XSL. Достаточно написать специальный XSL фильтр, который занимает несколько десятков строк для достаточно сложных форматов, получить на основе этого фильтра HTML документ и загрузить его в окно броузера.

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

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

На сегодняшний день одним из основных требований к программному обеспечению становится создание таких средств, которые позволяют легко и гибко настраивать программу, автоматизировать ее работу, выполняя нудную, рутинную работу.

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

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

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


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

ukman@yandex.ru
Hosted by uCoz