Re[3]: Программирование, от монолога к диалогу с компьютером
От: mkizub Литва http://symade.tigris.org
Дата: 18.02.09 09:45
Оценка:
Здравствуйте, mkizub, Вы писали:

M>2. Оно устареет уже через несколько месяцев.


Вообще вся эта затея с SymADE больше похожа на "пойди туда, не знаю куда — найдти то, не знаю что".
Никто этого ещё не делал, никто не сталкивался со всеми проблемами, и курс приходится менять "на ходу".
Я простой пример приведу.
Поставил я себе задачу реализовать IDE для редактирования своего текста.
И решил её! Сделав достаточно сложным язык отображения дерева (для структурного редактора), потратив кучу времени и сил — решил.
Но оказалось, что при всём удобстве редактирования деклараций (в структурном редакторе), редактирование выражений практически невозможно. Жутко неудобно.
У меня было два варианта — делать как в MPS, подставляя костыли и хаки. Или придумать кардинальное решение.
Ясен пень, я пошёл по второму варианту. Это ясно уже из того, что если б я искал простых путей, то мне даже идея SymADE-а не пришла бы в голову.
Итак, я стал искать решение для проблемы редактирования выражений.
Промежуточной идеей было (автоматически, при начале редактирования) конвертировать дерево выражения в список или текст, его редактировать, и обратно компилировать в дерево. Реализовал прототип. Тоже потратил кучу времени.
В процессе долгих и мучительных размышлений я обобщил эту идею редактирования выражений до идеи создания проекций дерева в другое дерево, при котором оба дерева остаются свянанными, и могут синхронизировать свои состояния после изменений.
В результате, оказалось не нужнной такая сложность для языка отображения и структурного редактирования дерева, и ненужным реализация автоматического конвертирования деревьев выражений в списки токенов. Объём работы размером в пол-года (или больше) фактически прийдётся выкинуть. И реализовывать эти самые проекции деревьев (чем я сейчас и занимаюсь) и их редактирование, синхронизацию и пр.

Да, я сходил в одно место, нашёл там тупик, теперь иду в другое место, и там надеюсь найти проход дальше. И когда пройду дальше — там тоже окажется ещё один лабиринт. Се ля ви. Но дорогу осилит идущий.
SOP & SymADE: http://symade.tigris.org , блог http://mkizub.livejournal.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.