Size: a a a

Compiler Development

2020 January 28

K

Kir in Compiler Development
Алексей
а значит интерфейсы и не нужны особо
it depends
источник

А

Алексей in Compiler Development
а что же такого в интерфейсах, что классами типов не покрывается?
источник

K

Kir in Compiler Development
Удобство. Если индирекция быстрее передачи параметров в функцию - скорость. Кроме того, если ты делаешь не функционально чистый язык, то под инстансами начинает осыпаться семантика.
источник

А

Алексей in Compiler Development
под растом что-то не рассыпалась вроде
источник

K

Kir in Compiler Development
Просто если у тебя есть statement, который вводит инстанс, то теюе надо решать - код до этого statement может использовать этот инстанс или нет
источник

K

Kir in Compiler Development
И может ли этот инстанс использовать "код до него"
источник

А

Алексей in Compiler Development
это скорее уже что-то типа declaration будет, а не statement
источник

K

Kir in Compiler Development
А если у тебя инстансы могут объявляться не в топлевеле (а например у тебя окамль-с-тайпклассами), то проблемы становятся довольно затруднительными
источник

K

Kir in Compiler Development
Ну вот, ты принял решение to hoist it up
источник

А

Алексей in Compiler Development
Kir
Ну вот, ты принял решение to hoist it up
допустим, какие негативные последствия?
источник

А

Алексей in Compiler Development
пусть даже если допустимы локальные инстансы для функций
источник

А

Алексей in Compiler Development
или в инстансах не просто имплементации методов, а замкнутые имплементации?
источник

K

Kir in Compiler Development
Ты не можешь использовать "локальные переменные" в инстансах. Только импортированные биндинги и toplevel
источник

А

Алексей in Compiler Development
ну то есть можно запретить замыкания, хотя тогда как-то бессмысленно делать локальные инстансы
источник

AT

Alexander Tchitchigin in Compiler Development
Алексей
пусть даже если допустимы локальные инстансы для функций
Если есть разные инстансы, то это уже не классы типов, строго говоря - нет когерентности.
источник

K

Kir in Compiler Development
В случае окамля ты можешь открывать модули, делая инстансы видимыми, и тебе либо нужно либо добавлять в сигнатуру модуля, либо что-то сильно думать
источник

K

Kir in Compiler Development
Вот и дело-то в этом
источник

А

Алексей in Compiler Development
Alexander Tchitchigin
Если есть разные инстансы, то это уже не классы типов, строго говоря - нет когерентности.
в смысле?
источник

AT

Alexander Tchitchigin in Compiler Development
Алексей
в смысле?
Вы знаете что такое когерентность инстансов классов типов?
источник

А

Алексей in Compiler Development
я то думал, что в разных модулях спокойно ммогут жить разные инстансы
источник