Показать сообщение отдельно
Старый 16.10.2009, 13:10   #68
abcdef
Знающий
 
Регистрация: 16.09.2008
Сообщений: 299
Написано 71 полезных сообщений
(для 123 пользователей)
Ответ: Исходники MP получены!

вот как сделано в версиях TurboPascal:
есть стандартный модуль "system.pas", в нем процедуры и функции использующие inline для расширенных возможностей.

Т.о. можно все компилить в MP, вести отладку, смотреть как это организовано и т.д., не зависеть от большинства java-методов.

Т.к. константный пул MP не поддерживает 64-битные записи, можно временно сделать отдельный класс с этими элементами, и обращатся к нему для сохранения результатов, иначе если сохранять данные в классе system.pas необходимо стек приводить под int-переменную.

текущими возможностями байт-кода пока нельзя записать некоторые конструкции, поэтому вот расширение:
type_str:
"utf8" - ссылка в конст.пуле на utf-строку
"string" - ссылка на string-переменную
"class" - ссылка на класс
"nameandtype" - ссылка на имя и тип
____
вот простейший пример, библиотека "Lib_memclean.java" 365 bytes.
а вот код на MidletPascal:

procedure memclean;
begin
  inline('invokestatic', 'java/lang/System', 'gc', '()V');
end;
т.е. практически аналогично java-ассемблеру "jasmin" или моей разработке "JCC"
___
прямая работа со стеком, позволить создавать программы, быстрее аналогичных стандартных java-компиляторов, например счетчик циклов можно хранить постоянно в стеке, а не загружать и сохранять в переменную и .т.д...
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо abcdef за это полезное сообщение:
scimitar (16.10.2009), Tronix (16.10.2009)