Показать сообщение отдельно
Старый 15.11.2008, 00:25   #89
abcdef
Знающий
 
Регистрация: 16.09.2008
Сообщений: 299
Написано 71 полезных сообщений
(для 123 пользователей)
Ответ: создание MIDletPascal compiler'a

Переработал простой компилятор http://exmortis.narod.ru/pcode_src/sc.zip для генерации простого текстового java-asm листинга. Который затем компилируется в class-файл.
_________
Принцип постороения программы:
имеется простой class-файл (prog.class) - эмулятор консоли, работая с методами которого созданный java-код выводит на экран: константный_текст, символ или число и получает числа с поля ввода.
Это минимально рабочий компилятор для создания java-class файлов.
Файлы созданные в полной версии должны работать без дополнительных библиотек и реализовывать все возможности java.
_________
В архиве имеется asm.bat при перетаскивании на который pascal'e-подобного исходника, (примеры: 1.txt; 2.txt; 3.txt; 4.txt) автоматически собирается файл *.cla, его переименовываем в jc.class и добавляем в архив prog.zip, который переименовываем в prog.jar и запускаем
_________
Порядок работы в ручном режиме:
compile.exe list < входной_файл_pas_листинга > выходной_asm_файл
параметр list говорит чтоб выводился только листинг, а программа не запускалась на внутреннем эмуляторе

jcc.exe выходной_class_файл.cla < входной_asm_файл

jd.exe входной_class_файл.cla > выходной_дизассемблированный_файл_для_проверки
_________
Примечание:
компилятор не генерирует структуру StackMap, она необходима если в методе встречаются команды перехода, поэтому если программа не линейная (циклы,условия) - необходимо запистить утилиту preverify.exe которая проверит class-файл на корректность и добавит структуру StackMap.
В архиве также имеется bat-файл с параметрами вызова утилиты preverify.exe, если будете использовать то создайте структуру каталогов
c:\wtk25\bin\preverify.exe
c:\wtk25\lib\midpapi10.jar;
c:\wtk25\lib\cldcapi10.jar;
c:\wtk25\lib\midpapi10.jar;
c:\wtk25\lib\cldcapi10.jar
c:\wtk25\apps\prog\classes
c:\wtk25\apps\prog\tmpclasses
и положите в tmpclasses файл jc.class
Вложения
Тип файла: zip simple.zip (64.6 Кб, 486 просмотров)
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо abcdef за это полезное сообщение:
Piligrim (15.11.2008), satan (15.11.2008)