Forth
http://fforum.winglion.ru/

WebAssembly
http://fforum.winglion.ru/viewtopic.php?f=2&t=3302
Страница 1 из 1

Автор:  Hishnik [ Сб янв 09, 2021 19:12 ]
Заголовок сообщения:  WebAssembly

https://webassembly.github.io/spec/core/

Что интересно - в основе опять стековая машина. Она не напрямую соответствует Форту, поскольку отсутствуют стековые манипуляторы (впрочем, drop присутствует в явном виде). Однако же для команд ВМ приведена непосредственно стековая нотация.

WebAssembly, согласно публикуемым материалам, не предназначена для замены существующих языков. Вместо этого многие языки транслируются в wasm, а коды выполняются браузерами. В этом смысле Форт мог бы выступать в качестве входного языка, трансляция из которого будет довольно простой.

Автор:  KPG [ Сб янв 09, 2021 19:47 ]
Заголовок сообщения:  Re: WebAssembly

Hishnik писал(а):
https://webassembly.github.io/spec/core/

Что интересно - в основе опять стековая машина. Она не напрямую соответствует Форту, поскольку отсутствуют стековые манипуляторы (впрочем, drop присутствует в явном виде). Однако же для команд ВМ приведена непосредственно стековая нотация.

Наверное черпали вдохновление смотря на Java byte code и CLI (C#) и фиг ещё знает что. :)
А, про DUP почему забыли? (и другие стэковые операторы)
Hishnik писал(а):
WebAssembly, согласно публикуемым материалам, не предназначена для замены существующих языков. Вместо этого многие языки транслируются в wasm, а коды выполняются браузерами. В этом смысле Форт мог бы выступать в качестве входного языка, трансляция из которого будет довольно простой.

корни WebAssembly, возможно, уходят ещё и к Tamarin Tracing (JS V8)

P.S. Вот когда аппаратно выведут стековую Форт архитектуру в поле массового использования тогда и можно будет что обсуждать. :)

Автор:  Hishnik [ Сб янв 09, 2021 20:00 ]
Заголовок сообщения:  Re: WebAssembly

KPG писал(а):
Вот когда аппаратно выведут стековую архитектуру в поле массового использования тогда и можно будет что обсуждать.

И зачем вдруг такое? Для достижения пиковой производительности именно на Форте? Так она объективно не достигается, поскольку увеличение количества адресов (индексов) в команде способствует увеличению производительности. Стек - бутылочное горлышко для вычислений. С помощью процессоров с аппаратным стеком можно увеличивать производительности кода на Форте, если уж такой код откуда-то взялся по другим соображениям, но соображений брать именно Форт для высокой производительности нет.

На современном этапе производительность основана на корректном применении связки CPU/GPU/FPGA в необходимых сочетаниях. Бессмысленно даже начинать проект, который на Форте обгонит GPU в построении трехмерных изображений, однако вызывать код для GPU можно из разных языков. Фреймворки на Питоне уже достаточно распространены для самых разных платформ - просто для того, чтобы облегчить вхождение в технологию, не заставляя людей учить HDL или nvcc. Так что и фреймворк в виде DSL на базе Форта вполне представим. Делать из него непременно низкоуровневый сверхбыстрый код (а то и вообще Форт-ОС) - совершенно другая задача с крайне сомнительными перспективами, и нет смысла утыкаться в нее, игнорируя действительно перспективные подходы.

Автор:  KPG [ Сб янв 09, 2021 20:09 ]
Заголовок сообщения:  Re: WebAssembly

Hishnik писал(а):
И зачем вдруг такое? Для достижения пиковой производительности именно на Форте?

Хотя бы, в переложении кода на регистры, добавить подсказок JIT по дальнейшему использованию копий регистров из стэкового пула.

P.S. По поводу производительности стэкового кода - как его смогли ускорить в Java Jit?
А, как насчёт бутылочного горлышка x86 комманд и их постоянного ускорения?

Hishnik писал(а):
Фреймворки на Питоне уже достаточно распространены для самых разных платформ - просто для того, чтобы облегчить вхождение в технологию, не заставляя людей учить HDL или nvcc.

Чем Бэйсик с этих позиций был плох?

Автор:  Hishnik [ Сб янв 09, 2021 20:11 ]
Заголовок сообщения:  Re: WebAssembly

KPG писал(а):
Хотя бы, в переложении кода на регистры, добавить подсказок JIT по дальнейшему использованию копий регистров из стэкового пула.

Ничего не понял. Что писать-то на этом всем? Какие регистры, что и куда? Сегодня ситуация такая - wasm предназначен для запуска промежуточного кода, генерируемого разными языками. При чем тут отсутствие стековой архитектуры в поле массового использования?

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/