Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Coffee++ (Рождение легенды) (https://javascript.ru/forum/offtopic/59326-coffee-rozhdenie-legendy.html)

kobezzza 06.11.2015 11:40

Цитата:

kobezzza, у тебя есть их компилятор в asm.js?
дык, ECMScripten компилит из LLVM, а не из С++, т.е. любой язык умеющий компилится в LLVM может подойти и Rust и Swift это умеют.

Mаxmaxmаximus 06.11.2015 12:09

Вот пример нового вариванта синтаксиса


Mаxmaxmаximus 06.11.2015 13:16

Цитата:

Сообщение от kobezzza
Rust и Swift это умеют.

У emscripten есть классы С++ для работы с api их виртуальной машины и рантайм окружения (например браузера). Есть ли эти классы для других языков? Есть ли блоки выделенные идентацией а не фигурными скобками в других языках?

kobezzza 06.11.2015 13:43

Цитата:

Сообщение от Mаxmaxmаximus (Сообщение 394765)
У emscripten есть классы С++ для работы с api их виртуальной машины и рантайм окружения (например браузера). Есть ли эти классы для других языков? Есть ли блоки выделенные идентацией а не фигурными скобками в других языках?

Ну как бы там без проблем моно юзать C++ классы, а вообще я намекнул, что перед тем как что-то городить неплохо было бы посмотреть как у других, но дело твое :)

cyber 06.11.2015 14:00

Для тех кто в танке, объясните в 2х словах, что деалает asm.js , компилит c++ в js?

loljs 06.11.2015 14:16

Цитата:

Сообщение от cyber (Сообщение 394777)
Для тех кто в танке, объясните в 2х словах, что деалает asm.js , компилит c++ в js?

Глупо было бы. Это подмножество js который компилится в байткод, или типа того.

loljs 06.11.2015 14:21

Цитата:

Сообщение от cyber (Сообщение 394777)
Для тех кто в танке, объясните в 2х словах, что деалает asm.js , компилит c++ в js?

Вот точный ответ по ходу

A. Because of the directive prologue, a JavaScript engine can immediately recognize asm.js code at compile-time and immediately compile it to assembly language, with no need to ever run the code through an interpreter.

http://asmjs.org/faq.html

Mаxmaxmаximus 06.11.2015 14:37

cyber, это подмножество яваскрипта которое типа быстро выполняется потому что там нет динамических типов и разрешена только работа с битовым массивом, работа с числами и бинарные операторы. строки запрещены.

чтобы asm.js код работал и в браузерах его не поддерживающих он имеет обратную совместимость. например все int переменные там при присваивании на всякий случай еще рах округляются типа q = (2+3)|0
чтобы УЖ ТОЧНО ИНТОМ СТАТЬ. в браузерах же в которых asm.js поддерживается, этот код вообще не интерптитируется а попадает в специальный транслятор этого кода в ассемблер. то есть операция округления там не выполняется, он воспринимает это просто как синтаксис такой на указание типа int.

такой код может легко скомпилироваться в ассемблер и выполняться в процессере. придумали транслятор С++ в такой код. Транслятор называется Emscripten. Он эмулирует окружение С++ вроде файловой системы, видеокарты, монитора (canvas) и.т.п.

Покольку у плюсов синтаксис говенный то я начал писать сахар для С++ похожий синтаксисом на coffeescript, и назвал его coffee++

Можно будет писать на красивом coffee++, транслировать в С++ и компилировать в asm.js и запускать в браузере супербыстрый код. А можно и просто писать на coffee++ , транслировать в С++ и просто сомпилировать под винду например) и писать десктопные проги.


А позже я и свой компилятор напишу сразу в asm.js, просто пока в этом смысла нет раз есть Emscripten

cyber 06.11.2015 14:56

Mаxmaxmаximus, а какие браузеры поддерживаю asm?

Mаxmaxmаximus 06.11.2015 15:22

Цитата:

Сообщение от cyber
а какие браузеры поддерживаю asm?

вот эти http://caniuse.com/#feat=typedarrays


Часовой пояс GMT +3, время: 03:13.