Size: a a a

Compiler Development

2020 April 15

KR

K R in Compiler Development
Peter Sovietov
Вот два примера вполне себе языков: SPIRAL, Fortress.
Спасибо!
источник

p

polunin.ai in Compiler Development
Dmitry Ponyatov
такой странный вопрос: а возможен концептуально такой язык, в котором любой объект имеет методы self.eval(in context) и self.apply(to arg, in context) т.е. любой объект является функцией?
В идрисе насколько знаю любое значение это функция
источник

G

Gymmasssorla in Compiler Development
polunin.ai
В идрисе насколько знаю любое значение это функция
+
источник

G

Gymmasssorla in Compiler Development
self : () -> A
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
Gymmasssorla
self : () -> A
обычный thunk
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
он же ленивое значение
источник
2020 April 16

SM

Sailor Moon in Compiler Development
Но идрис же строгий по умолчанию. Зачем тогда врапить значения таким образом?
источник

AT

Alexander Tchitchigin in Compiler Development
Sailor Moon
Но идрис же строгий по умолчанию. Зачем тогда врапить значения таким образом?
Вот именно для того чтобы получить ленивые.
источник

VY

Vasiliy Yorkin in Compiler Development
Да, для ленивости в идрисе есть Lazy (как в окамл или пурсе)
(https://github.com/idris-lang/Idris-dev/wiki/Unofficial-FAQ#can-i-have-lazy-evaluation-if-i-want-it)
источник

AT

Alexander Tchitchigin in Compiler Development
Vasiliy Yorkin
Да, для ленивости в идрисе есть Lazy (как в окамл или пурсе)
(https://github.com/idris-lang/Idris-dev/wiki/Unofficial-FAQ#can-i-have-lazy-evaluation-if-i-want-it)
Который оборачивает в функцию от юнита. 🤷‍♀️
источник

VY

Vasiliy Yorkin in Compiler Development
Да, это, наверное, везде одинаково сделано
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
Vasiliy Yorkin
Да, это, наверное, везде одинаково сделано
это же классическое определение) хочешь сделать значение ленивым - упакуй его в вызываемое значение)
источник

SM

Sailor Moon in Compiler Development
Изначально было что все значения уже завернуты, теперь только те которые Lazy?
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
сделай его он деманд
источник

SM

Sailor Moon in Compiler Development
Зигохистоморфный Препроморфизм
это же классическое определение) хочешь сделать значение ленивым - упакуй его в вызываемое значение)
и про мемоизацию не забудь
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
Sailor Moon
и про мемоизацию не забудь
это уже про другое, есть понятие оптимизации этих thunks в памяти и если он уже был когда-то вычислен, то вычитай уже редуцированное значение и тд
источник

VY

Vasiliy Yorkin in Compiler Development
graph reduction, g-machine в х-е
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
но это же и есть 3 модели
по значению
по имени
по требованию
источник

SM

Sailor Moon in Compiler Development
Зигохистоморфный Препроморфизм
это уже про другое, есть понятие оптимизации этих thunks в памяти и если он уже был когда-то вычислен, то вычитай уже редуцированное значение и тд
нет, именно ленивое вычисление включает мемоизацию https://en.m.wikipedia.org/wiki/Lazy_evaluation
. Call by name не включает мемоизации
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
Sailor Moon
нет, именно ленивое вычисление включает мемоизацию https://en.m.wikipedia.org/wiki/Lazy_evaluation
. Call by name не включает мемоизации
а я где-то это сказал? про мемоизацию и оптимизацию санков это про вычислительной модели по требованию
источник