2009-12-09 2 views
1

Кто-нибудь знает какой-либо C или C++-интерпретатор для сотовых телефонов? У меня есть Nokia 5310, и я нашел базового переводчика (CellBasic) и хочу развиваться на C или C++ на ходу. Или, кто-нибудь знает, что происходит с программой J2ME?C/C++ J2ME-переводчик

ответ

3

Вы не хотите использовать интерпретатор C в J2ME, если вы не сначала скомпилируете его в байт-код в другом месте: вы потратите много места на парсер.

Если вы заинтересованы, у меня есть свой собственный интерпретатор, который используется различными людьми и компаниями, называемых Hecl, в http://www.hecl.org

Это довольно просто, но есть команды для доступа к различным вещам, и находится на стадии активного развития , с приятным сообществом пользователей.

+0

очень хороший инструмент, не могли бы вы привести пример приложения, которое его использует? –

+0

Viigo использует его для своего приложения Blackberry. –

0

j2me, как известно, медленный. Я могу только дрожать, думая, как медленно это получится, если придется интерпретировать другой язык. ; ^)

+1

J2ME не медленный. Некоторые из устройств, на которых он работает, медленны. –

+0

Я знаю, но я не против. Несколько лет назад я основал приложение под названием Mobile C, это интерпретатор J2ME C, но у него есть только несколько функций (условия, циклы, printf, getint, getchar, putchar и все), это не очень удобно. Если есть базовый интерпретатор (и хороший), почему бы не C/C++ (или схема)? –

+0

bens: нет, на самом деле это реализация на этих устройствах, полная ошибок, и не использует никакой формы jit. Устройства были довольно быстрыми с 4-5 лет. Вы можете видеть, что если вы запускаете собственные приложения (например, symbian) – Toad

1

Множество Symbian использует JIT. Большинство устройств Sony Ericsson используют AOT. Многие устройства Nokia S40 используют Jazelle. JIT, AOT и Jazzele имеют некоторые преимущества и недостатки, но я уверен, что они намного быстрее, чем простой интерпретатор (например, JVM от Nokia 3120).

Однако есть одна проблема с производительностью. Есть несколько способов запуска кода в Java, например:

  1. переводчик (он может использовать AST)
  2. производящих байткода + специальный ClassLoader
  3. производящей байткод и создание специального jarfile
  4. с использованием JNI

Путь № 1 возможен, но медленный.

Путь № 3 может быть быстрым, но это может быть действительно неудобно и сложно реализовать без библиотеки, такой как BCEL или ASM. (Я могу вообразить удобную реализацию на устройствах Sony Ericsson Java Plarform 8.5+, которая предлагает установить сгенерированное приложение, а затем запускает приложение. Обратите внимание, что JP 8.5 в настоящее время поддерживает два телефона: Yari и Aino.)

Пути нет 2 и 4 не возможны с J2ME CLDC.