Size: a a a

Compiler Development

2021 February 08

M

MrSmith in Compiler Development
CiC всему голова
источник

M

MrSmith in Compiler Development
источник

VS

Victor Shamparov in Compiler Development
MrSmith
Не помню в чем проблема такого синтаксиса, но вроде так лучше не писать
Взгляд со стороны оптимизаций в компиляторе: наличие таких ссылок даёт большие возможности по утечке указателя в какую-нибудь фигню, так что с f сделать что-то довольно сложно. Полагаю, GC сталкивается с теми же проблемами.
источник

M

MrSmith in Compiler Development
Вот хороше то как было бы если все адт писали как люди указывая не только интерфейс но и контракт поведения
источник

M

MrSmith in Compiler Development
Раньше кстати их называли алгебраическими типами
источник

AK

Andrei Kurosh in Compiler Development
Danil Braindead
В дотнете, да и в jvm, у обьектов в заголовке есть указатель на обьект-тип, то есть условный malloc(sizeof(foo)), если бы не было сторогой типизации, то как и в примере выше в приципе любой обьект можно было бы реинтепретир кастить к нужному типу(теряется смысл типизации)
Там достаточно жирный заголовок, в котором помимо ссылки на тип также хранятся флаги для GC, монитора (lock) и есть даже пустое место, обусловленное выравниванием
источник

K

Kir in Compiler Development
Хорошая статья
источник

s

suhr in Compiler Development
> Сразу ясно, что эти два определения моноидов никак не могут совпадать.

Нет, не ясно.
источник

ΑZ

Αλεχ Zhukovsky in Compiler Development
Alexander Tchitchigin
Так там не то что арифметики на указателях, но и ссылок "внутрь" объектов нет. Примерно по этим самым причинам. 🤷‍♀️
где нет ссылок "внутрь?"
источник

ΑZ

Αλεχ Zhukovsky in Compiler Development
suhr
> Сразу ясно, что эти два определения моноидов никак не могут совпадать.

Нет, не ясно.
да, статья немного про сову
источник

AT

Alexander Tchitchigi... in Compiler Development
Αλεχ Zhukovsky
где нет ссылок "внутрь?"
В Java.
источник

DF

Dollar Føølish in Compiler Development
В джава ссылка ето не адрес
источник

DF

Dollar Føølish in Compiler Development
Там двойная индирекция
источник

AT

Alexander Tchitchigi... in Compiler Development
Поинт в том, что ссылки "внутрь" сильно усложняют (и тормозят) GC.
источник

ΑZ

Αλεχ Zhukovsky in Compiler Development
а что происходит при Foo foo = bar.baz.foo?
источник

AT

Alexander Tchitchigi... in Compiler Development
Dollar Føølish
Там двойная индирекция
Depends on implementation. 🤷‍♀️
источник

DF

Dollar Føølish in Compiler Development
Угу
источник

ΑZ

Αλεχ Zhukovsky in Compiler Development
в дотнете насколько я знаю ссылки это просто указатели которые умеют вместе с гц перемещаться при уплотнении кучи
источник

DF

Dollar Føølish in Compiler Development
Да
источник

AT

Alexander Tchitchigi... in Compiler Development
Αλεχ Zhukovsky
а что происходит при Foo foo = bar.baz.foo?
Две ссылки на один и тот же объект. В Java же вообще "внутри" объекта нет (или не было до недавних пор) — только ссылки на другие объекты. Ссылки на поля как таковые брать просто нельзя.
источник