codegen?

12/3/08 13:52
singalen: (Default)
[personal profile] singalen
Мне стыдно у вас такое спрашивать... но я всё равно спрошу.

Зачем нужна кодогенерация?
Разве это не автоматизированный копи-пейст?
Ну, исключая случаи, выходящие за пределы возможностей инструмента: там, сериализация в C++ или сгенерировать Data Object по XML-ю.

И просьбочка: если видите что-то полезное в моём аглицком блоге про .NET, немного Java, WiX, OOP, OOD и немного всё остальное - поставьте на него ссылку, пожалуйста.

(no subject)

14/3/08 04:02 (UTC)
Posted by [identity profile] gabriel-irk.livejournal.com
Ну, про флейм понятно, а про дыры всё ещё нет. Что ты называешь дырами?

В Лиспе главная фича - то, что списком является ВСЁ, и это всё можно модифицировать в рантайме. Правда, не знаю, использует ли эту возможность эоть кто-то в рабочем коде :). Ну, макросы примерно тем же и занимаются...

Вообще, если поискать по википедии, можно найти немало любопытного про кодогенерацию. Например то, что макросы и прочие code snippets во всяких IDE - это тоже кодогенерация. Я эту ммысль вчера недодумал. Хотя, ты наверняка скажешь, что это тот самый копи-паст. На это могу ответить: "включи воображение!" ;).

Ссылку в ЖЖ повесил - заходи посмотри. :)

(no subject)

18/3/08 03:31 (UTC)
Posted by [identity profile] gabriel-irk.livejournal.com
Ну, я-то макросы редакторов использую не особо творчески. В последнее время, для того, чтобы вставлять тэги XML. Кстати, если редактор поддерживает макросы с параметрами - это вообще просто сказка :).

Несколько хороших практичных примеров кодогенерации есть в "Практике программирования" Кернигана и Томпсона.

Что-то я не представляю, каким образом кодогенерацией можно заменить RTTI. Шаблоны, что ли? Я всегда считал, что их смысл несколько в другом, а вообще-то это тоже хороший пример кодогенерации. Если в Java generics сделаны принципиально по-другому, то это зря :).