Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Как написать билдер?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Прочее] >> Как написать билдер?
Имя
Сообщение << Старые топики   Новые топики >>
Как написать билдер? - 2009-11-14 03:23:16.936666   
tor.leo

Сообщений: 428
Оценки: 0
Присоединился: 2009-11-03 16:26:32.993333
Объясните суть. Я просто не пойму, есть прога в проге, т.е. в выполняемом заложен исходник другой проги, она этот исходник поправляет допустим во временном файле в соответствии с инструкциями….но его же ещё нужно откомпилить!….
P/S/  к примеру я написал исходник на асме, под него я пишу билдер на делфи…как мне это реализовать?
Post #: 1
RE: Как написать билдер? - 2009-11-15 21:34:07.780000   
tеstеr

Сообщений: 377
Оценки: -46
Присоединился: 2008-02-08 17:56:40.563333
Конкретный пример: мы писали генераторы для следующих ситуаций:
генератор программы обработки меню.
генератор программы распечатки структурированного файла.
генератор программы сортировки массива данных.


Во все случаях, кстати, генерируемая программа была на ассемблере, а билдерм служила программа на delphi.

Например, есть у тебя программы сортировки массива чисел (1 байт, 2 байта, 3 байта, 4 байта или целые, целые без знака, дробные) все они отличаются только типом данных в массиве (функции создания массива, заполнения массива), также функцией сравнения - для чисел одна функция сравнения, для строк другая, …

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

Всё - запускаешь билдер, указываешь настройки, получаешь исходник на ассемблере.
Компилировать его надо внешними средствами - fasm, например.
Но можно в настройках билдера указать путь к компилятору и вызвать компиляцию прямо из билдера.
system("текст команды");
где "текст команды" будет "D:\Program\Fasm\Fasm.exe C:\Project\Asm\bild_code.asm".

1. напиши нужную программу на ассемблере и отладь её (не используй при этом разные трюки и хаки - пиши понятный код)
2. пойми что в программе нужно параметризировать.
3. пиши генератор, в который загони неизменные куски текса и куски текста, которые нужно изменить.

Генерацию исходника можно выполнить разными способами:
1. простой способ - просто конкатенация строк (дописывание файла)
2. генерация xml-файла с параметрами будущего исодника и применение к этому xml-файлу xsl шаблона, который уже выдаёт нужный ассемблерный код.

Преимущество второго способа в том, что неизменная часть кода не хранится в самой программе (билдере) и не хранится во внрешних файлах, к которым должен обращаться билдер. XSLT не такой и сложный язык, обладеешь им за 2-3 дня и пригодится он тебе ещё не раз. Поэтому я советую выбирать второй вариант реализации генератора исходников (xml-вариант с xsl-преобразованием).

Если что-то непонятно спрашивай поясню.
Post #: 2
RE: Как написать билдер? - 2010-01-11 14:21:15.510000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Чел, ты свой компилятор/интерпретатор написать хочешь? Подумай, а оно тебе надо?

Да и над терминологией поработай, ничего не понятно из того, что ты пишешь.
Post #: 3
Страниц:  [1]
Все форумы >> [Прочее] >> Как написать билдер?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.