OberonCore https://forum.oberoncore.ru/ |
|
Реанимировать JOB, чтобы разрабатывать для Android https://forum.oberoncore.ru/viewtopic.php?f=30&t=5355 |
Страница 1 из 1 |
Автор: | Kubanych [ Пятница, 06 Март, 2015 00:32 ] |
Заголовок сообщения: | Реанимировать JOB, чтобы разрабатывать для Android |
Коллеги. Был в свое время компилятор JOB С.З. Свердлова. Вероятно, новые версии Java он уже не поддерживает. Но было бы неплохо открыть исходный код и реанимировать этот проект, чтобы на Oberon-2 писать приложения для Android. Массы молодежи можно привлечь к программированию через разработку для Android. А инструментарий, имеющийся в наличии, довольно сложен для освоения и эксплуатации (java,scala и пр.) python работает только на ARM устройствах и не работает в x86 android, запускаемом в в Virtual Box. Так что у Oberon-2 хорошие шансы на Android. |
Автор: | kemiisto [ Пятница, 06 Март, 2015 18:07 ] |
Заголовок сообщения: | Re: Реанимировать JOB, чтобы разрабатывать для Android |
Kubanych писал(а): Коллеги. Был в свое время компилятор JOB С.З. Свердлова. Вероятно, новые версии Java он уже не поддерживает. А может и поддерживает. Это ж Java, там с backward compatibility всё не так плохо. Kubanych писал(а): Но было бы неплохо открыть исходный код и реанимировать этот проект, чтобы на Oberon-2 писать приложения для Android. А зачем, когда есть вполне себе открытый КП для Java? |
Автор: | Kubanych [ Пятница, 06 Март, 2015 21:46 ] |
Заголовок сообщения: | Re: Реанимировать JOB, чтобы разрабатывать для Android |
Спасибо за ссылку. Попробую. Но он работает с jdk 1.6 . А андроидные инструменты с jdk 1.7. Попробую опытным путем, можно ли этот gpcp использовать для разработки на Android. |
Автор: | Oleg N. Cher [ Четверг, 12 Март, 2015 02:18 ] |
Заголовок сообщения: | Re: Реанимировать JOB, чтобы разрабатывать для Android |
GPCP однозначно проработаннее JOB'а. Сергей Залманович мог открыть исходники JOB'а уже давно, тем более компилятор вроде как учебный. Но вовремя он этого не сделал, и сейчас GPCP обходит JOB практически по всем параметрам. Язык: КП вместо Оберона-2. Есть расширения языка для удобства интеграции в JVM, например, обработка исключений. Как работать с JVM без этого? А у JOB есть недостатки. Например, не реализованы все возможности Оберона-2. Навскидку - нету указателей на процедурные типы. Не верите - потестируйте сами. Когда я пробовал генерировать мидлеты для Java ME на JOB, у меня ничего не получилось. На GPCP (после исправления ошибки в утилите J2CPS) - вполне успешно: http://zx.oberon2.ru/forum/viewtopic.php?f=27&t=27 Замечу ещё: ранее Джону Гофу (мною, в частности) в рассылке давались многие пожелания по усовершенствованию компилятора, ровно также как и по устранению косметических багов, я могу назвать парочку: например, при IMPORT A := B в модуле доступны оба идентификатора (A и B как синонимы) - хотя такого поведения я не наблюдал ни в одной реализации Оберона. Ещё косметическая (хотя не совсем) проблема с CONST A=INTEGER (пишу по памяти). Всё это не исправлено до сих пор. Компилятор иногда вылетает с ошибкой COMPILER PANIC вместо текстового сообщения. Хотя на практике это просто синтаксическая ошибке в исходнике. Я сгенерировал не работающий HelloWorld на GPCP для Android, идучи путём автора статьи «Mirah — глоток свежего… кофе»: http://zx.oberon2.ru/forum/viewtopic.php?f=87&t=244 Но в процессе генерации символьных файлов .cps из Андроид-классов утилита J2CPS вываливается с ошибкой на некоторых классах. А полученный HelloWorld при запуске даёт ошибку отсутствия вызова суперконструктора. Т.е. <init> главного класса приложения не может стартовать. Вот как об этой проблеме отзывается стандартный эмулятор из Android SDK: Цитата: I/ActivityManager( 61): Starting activity: Intent { act=android.intent.action. MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=CP.Hello/.Hello_Main } I/ActivityManager( 61): Start proc CP.Hello for activity CP.Hello/.Hello_Main: pid=381 uid=10028 gids={} D/dalvikvm( 381): newInstance failed: no <init>() D/AndroidRuntime( 381): Shutting down VM W/dalvikvm( 381): threadid=3: thread exiting with uncaught exception (group=0x4001b188) E/AndroidRuntime( 381): Uncaught handler: thread main exiting due to uncaught exception E/AndroidRuntime( 381): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{CP.Hello/CP.Hello.Hello_Main}: java.lang.InstantiationException: CP.Hello.Hello_Main Я бы с удовольствием пробовал ковырять GPCP + Android и дальше, но вот эта проблема с J2CPS и проблема невызывания конструктора (которая может быть следствием) понижает запал. Желающим помочь в исправлении сих багов буду всячески содействовать. Уверен, что разрабатывать на GPCP для Android можно. Проблема различия версий JVM не существенна, всё равно dx всё конвертирует в байт-код Dalvik. Скомпилированный GPCP и декомпилированный класс, а потом скомпилированный снова с помощью javac работает на Андроид-устройстве, проверено. Так что нужно только зафиксить вызов суперконструктора. Есть ещё парочка трудностей. В GPCP несовместимы типы java_lang.CharSequence и ARRAY OF CHAR, поэтому вызов некоторых функций Android'а затруднён. Как решить - ещё не понял. Далее. Неудобно задавать юникодовые строки (кодировка исходников однобайтовая). Но в JOB'е символы вообще однобайтовые. Вобщем, есть над чем потрудиться. Так что могу очень осторожно рекомендовать GPCP для JVM только людям, не боящимся трудностей. Рацпредложение №1: совместно скинуться Джону Гофу и попросить его ускорить правку багов, т.к. он лучше всех знает как устроен этот компилятор. №2: фиксить своими силами, но для этого нужна квалификация (знание внутреннего устройства JVM, .class- и .cps-файлов и т.п.). |
Автор: | Info21 [ Четверг, 12 Март, 2015 22:58 ] |
Заголовок сообщения: | Re: Реанимировать JOB, чтобы разрабатывать для Android |
Спасибо за обзор. |
Автор: | Роман М. [ Пятница, 13 Март, 2015 02:49 ] |
Заголовок сообщения: | Re: Реанимировать JOB, чтобы разрабатывать для Android |
Похоже, автор GPCP работает сейчас над Java. https://vimeo.com/97945349 John Gough - Java 8, Under the Covers - QJVM - 2014-06-10 |
Автор: | kemiisto [ Пятница, 13 Март, 2015 11:25 ] |
Заголовок сообщения: | Re: Реанимировать JOB, чтобы разрабатывать для Android |
Роман М. писал(а): Похоже, автор GPCP работает сейчас над Java. Да он в Oracle Labs сейчас трудоустроен, и, судя по последним публикациям, они там статический анализатор (PDF, 200 KB) Java-кода ваяют на предмет поиска уязвимостей системы безопасности (Security Vulnerabilities). Причём оно сначала транслирует код в промежуточное представление LLVM, а уже его анализирует. |
Автор: | perloid [ Вторник, 07 Апрель, 2015 18:31 ] |
Заголовок сообщения: | Re: Реанимировать JOB, чтобы разрабатывать для Android |
там релиз 2013 года. а насколько он годен для продакшена. interop с java библиотеками, например писать web-сервлеты можно? |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |