Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   А что если создать язык который был бы как Typescript но компилировался в ASM.js (https://javascript.ru/forum/offtopic/59302-chto-esli-sozdat-yazyk-kotoryjj-byl-kak-typescript-no-kompilirovalsya-v-asm-js.html)

Mаxmaxmаximus 04.11.2015 20:54

А что если создать язык который был бы как Typescript но компилировался в ASM.js
 
О_О пасоны! Ведь моего уровня то хватит для такой задумки! Да и вы тоже не лохи. Что думаете?

Просто на сях неудобно писать, язык слишком противный внешне.
А можно запилить что-то типа тайпскрипта и кофескрипта, и чтобы все это в асм компилировалось О_О

Поддержите идею? У кого какие мысли?


п.с. typescript идеологически не может скомпилироваться в asm, пообщался щас с ребятами ихними

То есть прикиньте пишете вы а оно и синтаксис красивый имеет и рабоатет быстрее!

Кто нить писал уже компиляторы? Работа с кучей там все ети асм инструкции и.т.п.

Опытные есть? Или как обычно я первооткрыватель)?

АЙДАТЕ ПАСОЫ!! МЫ СДЕЛАЕМ РЕВОЛЮЦИЮ)!!!

КОГДА-ТО ВООБЩЕ НИ КАКОГО ЯЗЫКА НЕ СУЩЕСТВОВАЛО И ИХ СДЕЛАЛИ ЛЮДИ!!

А МЫ ЛЮДИ!!

DjDiablo 04.11.2015 21:09

Флаг мордора тебе в когтистые зелёные лапы.
Кстати как лучший на свете фреймворк поживает?

Mаxmaxmаximus 04.11.2015 21:11

Цитата:

Сообщение от DjDiablo
Кстати как лучший на свете фреймворк поживает?

я начал пилить его версию на С++ называется uiasm
но потом возникла в голову вот эта идея, может вначале напилить язык свой а потом уже на нем написать ui?

вообще есть идея придумывать стандарт и по быстрому написать транслятор этого языка в С++

Ну то есть по сути у Си крутые возможности но синтаксис говно, а тут можно сахар на С++ сделать
щитай и инструменты уже все есть для компиляции С++ в яваскрипт и все такое...

Но мне кажется если мы напишем снуля то скорость будет быстрее чем у скомпилированного си. Хотя у них там вроде термоядерные оптимизации у комбиляторов так что хз хз сможем ли потягаться с ними. но на первых парах я просто начну придумывать синтаксис и идеологию, и тестировать это в не большом трансляторе в С++

Ну то есть пишу на этом языке, транслирую в С++, компилирую, тстирую. Смотрю.

kobezzza 04.11.2015 21:13

http://lljs.org/ - как точка отсчёта, но к сожалению проект умер.

Mаxmaxmаximus 04.11.2015 21:14

kobezzza, не не не это совсем другое) это другое) я знаю про эти принудительные отключения проверок типа для лучшей эвристики. но это даже не асм. есть проэкт такой котрый компилирует С++ в эту егалду) раотает медленнее асма, но не сильно, раза в 2 всего.

Блин так обломно что тайпскрипт не компилится. Это было бы идеальным решением, инструменты есть, экосистема есть и.т.п.

Mаxmaxmаximus 04.11.2015 21:19

kobezzza,
Еще есть вот такая штука http://www.leaningtech.com/cheerp/, она генерирует не asm.js код а просто код на бинарных операторах. В отличии от emscripten она позволяет из С++ работать напрямую со всем браузерным api включая дом и прочее, даже позволяет фреймворки юзать типа jQuery. НО она работает где то на 20% медленнее asm, а где то млять БЫСТРЕЕ!! Чертовщина) и оверхед у неё аж 600 килобайт!!!! а у асма 140



Но нам нужен именно асм потому что он принудительно на 100% отключает подстраховки на проверки типа

kobezzza 04.11.2015 21:29

Цитата:

Но нам нужен именно асм потому что он принудительно на 100% отключает подстраховки на проверки типа
И сборщик мусора, и использует AOT, а не JIT :)

Mаxmaxmаximus 04.11.2015 21:38

kobezzza, кстати надо учесть момент интеграции с внешним яваскриптом, ведь в нем автоочистка мусора а у нас ручная, ну и как быть? типа сделать Прототип такой Object и дать ему метод destroy() и типа когда мы из яваскрипта юзаем обьекты созданные в нашем языке, то мы должны явно вызывать destroy


надо придумать удобное и прозрачное общение между песочницей нашего языка и внешни яваскриптом.

если мы например передает во внешний яваскрипт строку, то она у нас в памяти лежит, а если чел её там перестал использовать. то он должен вызвать ДЕСТРУКТОР у строки)?? не слишком ли наркоманство? То есть внешняя строка должна быть еще и ОБЬЕКТОМ (со специальным методом toString естественно) а не строкой?

Как в общем организовать общение между средами?

Safort 04.11.2015 21:52

Не нужно. Умными чуваками уже делаются наработки типа SoundScript'а. Рано или поздно это попадёт в стандарт. В добавок, не забываем про WebAssembly.

Mаxmaxmаximus 04.11.2015 22:05

Safort, яваскрипт поддерживется везде а WebAssembly нигде.
Ни что не мешает потом добавить компиляцию в WebAssembly
SoundScript'а еще не создан.


Цитата:

Сообщение от Safort
Не нужно.

Аргументы какие-то будут? То есть они будут пилить потом компил яторы для разных языков в WebAssembly, и что мне мешает потом запилить компиляор для своего языка под WebAssembly? Где логкиа у тебя если WebAssembly мой ДРУГ а не враг!

То есть раньше мне пришлось бы использовать единственное что у меня было asm.js
А тут мне дадут еще и WebAssembly!! Это же ИДЕАЛЬНАЯ НВООСТЬ И еще один плюс в копилку поводов написать язык!


Ты понимаешь что ты как бы сказал аргументы ЗА написание языка, а не против???

Safort, ну короче я так понял ты не учавствуешь в проэкте и будешь писать на SoundScript'е? Выбор твой


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