[02:20:59] <valexey> а знаете ли вы, что существовала (и существует) java VM для avr atmega?
[02:21:06] <valexey> т.е. для той фигни которая в ардуино вставлена
[02:21:12] <valexey> причем оно со сборщиком мусора
[02:21:30] <valexey> при этом VM под свои нужды хавает примерно 256 байт ОЗУ.
[02:39:28] <vlad2> Это точно не форт?
[02:45:43] <valexey> точно
[02:46:15] <valexey> там два этапа - берешь свой java-код, компилируешь с помощью javac ораклового в обычный .class файл
[02:46:36] <valexey> потом перегоняешь его в байткод уже этой VM и заливаешь на свою ардуинку
[02:46:37] <valexey> всё
[02:46:58] <valexey> http://www.harbaum.org/till/nanovm/index.shtml
[02:47:01] <valexey> тащемто вот
[02:47:21] <valexey> там даже стандартные классы из jvm реализованы какие-то
[03:07:55] <_valexey__> кстати, java в чем-то родственна форту
[03:08:08] <_valexey__> в том плане, что у жабы стековая VM а не регистровая
[04:23:07] <ЕГФ> Я сейчас размышляю над созданием языка программирования «Math Forms», или «Mathematical Forms». Стать впереди планеты всей и перещеголять Никлауса Вирта.
[04:23:08] <ЕГФ> =)
[06:47:59] <_valexey__> кстати, оценил размер webassembly VS java bytecode на одном и том же коде. что-то оно плюс-минус одинаково получилось по объему (более старая версия жабы имеет более компактный .class file более новая - толще).
[06:48:20] <_valexey__> в общем, брешут они все на тему, что представление AST в данном случае будет прям сильно компактней тупо байткода
[06:48:39] <_valexey__> ну или это надо сравнивать на больших каких-то исходниках
[06:54:34] <_valexey__> а, хм
[06:54:50] <_valexey__> оказывается там нифига не Slim Binaries и не AST
[06:55:02] <_valexey__> там таки структурированный байткод для стековой виртуальной машины
[06:55:09] <_valexey__> то есть, по сути, похоже на жабный байткот
[11:22:22] <TRUE> а в чём смысл ВМ под авр? Хочешь пописать на яве под ардуину?
[14:04:47] <TRUE> хотя, если появится желание написать свою ВМ, то эту ВМ можно использовать как источник информации по теме.
[15:41:35] <valexey> "The NanoVM is a way to provide a limited but controllable programming interface to a microcontroller based device. With most of the most hardware specific code being part of the NanoVM itself, the user can focus on the application itself. If a user is given a device equipped with the NanoVM he is not required to think about the hardware itself. Furthermore, he doesn't need any target specific compilers or the like. All he needs is a standard java compiler and the NanoVMTool which itself is written in java. Thus, the whole development chain works on any device that has a java compiler and can run java code. With the hardware abstraction the NanoVM provides, the user doesn't even have to care about the microcontroller type the target is based on. The same java compiler and the same NanoVMTool can be used with any NanoVM based system running on any type of microontroller."
[15:41:39] <valexey> тащемто
[15:52:20] <valexey> "Возвращение стоимости нефти к 120 долларам за баррель, а курса доллара — к 35 рублям вернут российскую экономику в состояние болезни. Об этом в эфире телеканала «Россия 24» заявил президент Сбербанка Герман Греф"
[15:52:38] <valexey> Вот и я регулярно печалюсь когда смотрю на растущую цену на нефть и укрепляющийся рубль ;-(
[19:14:32] <valexey> TRUE: кстати, потестил - байткод собственно NanoVM в три раза примерно компактней чем у JVM
[19:14:53] <valexey> правда оно там далеко не всё умеет
[19:14:57] <valexey> double не умеет например
[19:15:21] <TRUE> так на контроллерах его обычно и нет
[19:15:31] <TRUE> а у тебя есть ардуина?
[19:16:17] <valexey> есть ардуина
[19:16:23] <valexey> вообще пачка железяк есть :-)
[19:16:27] <TRUE> а за счёт чего байткод компактнее?
[19:16:50] <valexey> фиг знает, еще не копал. но как минимум там стрипаются имена функций
[19:16:59] <TRUE> у меня тоже пачка железяк есть. Но я их как купил, так до сих пор не распаковал
[19:17:03] <valexey> и вообще - в байткоде нет ничего текстового
[19:17:08] <valexey> в jvm bytecode есть
[19:17:31] <valexey> в железяках, если уж на то пошло, часто и банального умножения для интов нет :-)
[19:17:39] <valexey> не то что плавающей точки
[19:17:55] <TRUE> так умножение легко реализовать.
[19:18:02] <TRUE> для целых
[19:18:04] <valexey> float'ов в avr тоже вроде как нет. железной
[19:18:13] <valexey> а если уж эмулировать, то можно и дабл сэмулировать
[19:18:39] <TRUE> а, то есть, флоат в этой ВМ есть?
[19:18:43] <valexey> есть
[19:18:49] <valexey> float есть, дабла нет
[19:19:10] <valexey> а, и вроде бы long'a тоже нет
[19:19:19] <valexey> на тему дабла нужно уточнить, а вот лонга точно нет
[19:19:51] <TRUE> наверное, всё, что 64 бита, они выкинули
[19:20:03] <TRUE> ардуины 64 бита бывают?
[19:20:06] <valexey> возможно. ну, т.е. оно и не нужно обычно на мелкоконтроллерах
[19:20:19] <valexey> ну, ардуина так то - она ваще 8ми битная :-)
[19:20:49] <valexey> но если говорим о совместимости на тему шилдов, то думаю всё бывает в этом мире.
[19:23:08] <valexey> но данная то NanoVM она конкретно для AVR Atmel 8ми битных
[19:23:28] <valexey> т.е. она даже не для ардуины, когда эту NanoVM сделали, ардуины еще не было.
[19:24:25] <valexey> "Оберон-2 не имеет смысла" (c) oberoncore