Re[5]: WebAssembly
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 23.06.15 13:43
Оценка:
Здравствуйте, WolfHound, Вы писали:

s22>>не понял, что тут....

WH>Ну, вот есть у тебя конечный автомат, реализованный при помощи goto.
WH>Теперь попробуй скомпилировать его в предложенный формат.

Да скомпилить-то можно, только... Это будет либо релупер, которой поддерживает неприводимые графы потока управления (irreducible flowgraphs), либо алгоритм наподобие тех, что используются в декомпиляторах. Во втором случае неприводимые графы можно скомпилить только если предварительно конвертнуть их приводимые методом копирования целых кусков автомата. Это при том, что до сих пор неизвестен алгоритм, который порождает минимальное количество копий. А существующие эвристические подходы ещё и не слишком шустро работают. На выходе JIT всё равно генерит машинный код, на который никаких подобных ограничений не накладывается, поэтому странно, что нельзя просто так взять и скомпилить конечный автомат. Это при том, что компиляция конечного автомата напрямую в x86, ну или хотя бы в LLVM — это час работы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.