Size: a a a

Compiler Development

2020 January 16

JC

Julian =) Coffee in Compiler Development
Чтоб пользователь клацнул на кнопочку, а ему банер в лицо
источник

JC

Julian =) Coffee in Compiler Development
И все это без скачивания страницы по новой
источник

KR

K R in Compiler Development
Я по крайней мере ещё не слышал о компиляторе с x86 asm в Javascript.
источник

AT

Alexander Tchitchigin in Compiler Development
K R
Скрипты в веб страничку.
WebAsembly же! 😂
источник

FO

FORTRAN ONE LOVE in Compiler Development
K R
Пока, конечно, вы компилятор в JavaScript не соорудите.
asm2JS интересный вариант)
источник

AT

Alexander Tchitchigin in Compiler Development
asm2asm.js 🤔
источник

KR

K R in Compiler Development
asm2wasm.js
источник

FO

FORTRAN ONE LOVE in Compiler Development
наверно основные проблемы будут с вызовом системных библиотек
источник

FO

FORTRAN ONE LOVE in Compiler Development
Alexander Tchitchigin
WebAsembly же! 😂
его еще нужно вызвать с помощью JS :)
источник

KR

K R in Compiler Development
В общем

"Хозяйке на заметку: шуруп, вбитый молотком, держится лучше гвоздя, закрученного отвёрткой"
источник

JC

Julian =) Coffee in Compiler Development
Прям как легенды про вампиров. Безумно мощные, но не могут войти в дом, пока их не пригласят.
источник

FO

FORTRAN ONE LOVE in Compiler Development
Julian =) Coffee
Прям как легенды про вампиров. Безумно мощные, но не могут войти в дом, пока их не пригласят.
они просто-напросто воспитанные =)
источник

JC

Julian =) Coffee in Compiler Development
в DOM :D
источник
2020 January 17

VY

Vasiliy Yorkin in Compiler Development
Туплю, я понимаю проблему, но не понимаю предолженное решение (p.166 of the Tiger-book): чего там куда нужно добавить (?) 😂 как это может выглядеть в псевдо-коде?

Вот так у меня сейчас происходит переписывание For -> Let+While: http://ix.io/27A2/ocaml, там ~? это "dummy location", тк при переписывании\синтезе аст этой инфы нет (но можно и не смотреть это, наверное)
источник

M

MaxGraey in Compiler Development
Я так понимаю, что предлагают проверить условие lo <= hi в начале. потому что если допустим lo == 0x7FFFFFFF и hi == 0x7FFFFFFF то в следующей итерации i = i + 1, i будет переполнено и равно -2147483648 а условие i <= 0x7FFFFFFF будет выполнено и цикл начнется заново хотя должен был бы выполниться всего один раз
источник

VY

Vasiliy Yorkin in Compiler Development
MaxGraey
Я так понимаю, что предлагают проверить условие lo <= hi в начале. потому что если допустим lo == 0x7FFFFFFF и hi == 0x7FFFFFFF то в следующей итерации i = i + 1, i будет переполнено и равно -2147483648 а условие i <= 0x7FFFFFFF будет выполнено и цикл начнется заново хотя должен был бы выполниться всего один раз
Да, про первую проверку я понимаю. Т.е. цикл не должен запуститься, если not (lo <= hi). Не понятно только
> The solution is to put the test at the bottom of the loop,
> where i < limit can be tested before the increment.
Не понятно именно про before, т.е. before это куда\как? :) Чего-то не запускается голова уже
источник

VY

Vasiliy Yorkin in Compiler Development
Ок, да, понял, IR для while нужно генерировать по-другому совсем. Я почему-то сначала подумал, что это нужно делать в аст при переписывании for -> let+while. NVM я разобрался, это нужно делать и там и там
источник

M

MaxGraey in Compiler Development
Что весьма интерестно в данном случае C++ и Rust выводят разные результаты:
https://godbolt.org/z/79LKrX

С++ - бесконечный цикл
Rust  - возврящает «1»
источник

AS

Aleksey Shipilev in Compiler Development
В С++ переменную в цикле unsigned int поди надо ;)
источник

AS

Aleksey Shipilev in Compiler Development
"Немножко жаль", что auto инферрит обычный int, судя по всему.
источник