Сохранять ли исходные тексты программ?
От: Chrome  
Дата: 03.10.08 09:27
Оценка: +1 -1
Существующее положение дел таково:
Программисты пишут тексты на языке программирования, эти тексты сохраняются в файлы, файлы хранятся на диске или в системе контроля версий.
Такой вид хранения удобен человеку(и то не всегда), но не удобен для автоматеческой обработки.
Преимущества для человека — простота подхода, возможность работы с программами средствами обработки текстовых файлов — простенькие редакторы и т.д.
С другой стороны, всякая попытка автоматической обработки встречает колоссальные трудности.
Каждая программа автоматической обработки должна содержать парсер языка, корректные парсеры современных языков сложны и недоступны каждому желающему в свободном виде.
Кроме парсера такая программа должна понимать форматы файлов проекта — для корректного разбора одного файла могут понадобиться все файлы проекта, а так же данные, сохраненные в бинарном виде во всяких компилированных источниках.
В общем, безумно сложно.
Некоторые IDE предоставляют API для этого, но качество этого API в руках его разработчиков.

Альтернатива — парсить текст программы сразу и сохранять его в базе данных в виде AST.
Ну, может не совсем AST, но по крайней мере с детализацией до отдельных функций,
сами функции может лучше представить в виде XML с обязательным разрешением всех имен внутри.
То, что не удалось распарсить, сохранять в сыром виде и пытаться обработать позже.
Для отображения код программы генерируется на основе представления в бд

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

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

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