Size: a a a

Compiler Development

2020 January 28

AT

Alexander Tchitchigin in Compiler Development
Михаил Бахтерев
Это новая статья, кажется (?)
👍
источник

AK

Andrei Kurosh in Compiler Development
Yuriy Syrovetskiy
крипту уже можно так использовать. зачем стартап?
Давайте оффтоп про крипту куда-нибудь в другой чат
источник

E

Eugene in Compiler Development
Михаил Бахтерев
Интересный вопрос тут в другом: что появилось раньше, интерфейсы или классы типов? Кто наплодил сущностей?
классы типов — конец 80-х гг, интерфейсы явы — середина 90-х гг
источник

А⚙

Антон ⚙️ in Compiler Development
Oleg Morozov
да в Go слава Богу отвязались от прямой связанности при объявлении типа, но это все еще коллекция методов
но это по правде тонкости
те же трейты в Расте работают аналогично

хотелось бы просто их не писать, а объединить это.
использовать тип сразу как самодостаточную единицу, так и как контракт
Ни разу.
* Интерфейсы в Go всегда подразумевают боксинг, в Rust — нет
* В Go невозможно выразить "этот тип удовлетворяет нескольким этим интерфейсам"
* В Go нельзя написать реализации методов по умолчанию
источник

OM

Oleg Morozov in Compiler Development
Антон ⚙️
Ни разу.
* Интерфейсы в Go всегда подразумевают боксинг, в Rust — нет
* В Go невозможно выразить "этот тип удовлетворяет нескольким этим интерфейсам"
* В Go нельзя написать реализации методов по умолчанию
это детали, которые не важны в контексте изначального вопроса
источник

А⚙

Антон ⚙️ in Compiler Development
Антон ⚙️
Ни разу.
* Интерфейсы в Go всегда подразумевают боксинг, в Rust — нет
* В Go невозможно выразить "этот тип удовлетворяет нескольким этим интерфейсам"
* В Go нельзя написать реализации методов по умолчанию
Ах да, ещё на интерфейсах невозможно выразить метод, возвращающий значение типа, для которого он определён
источник

OM

Oleg Morozov in Compiler Development
когда я говорил аналогично, я имел ввиду аналогично не привязаны на момент объявления типа
источник

(P

(Kirill, Poletaev) => in Compiler Development
Oleg Morozov
это детали, которые не важны в контексте изначального вопроса
Так ты мягкое с теплым сравниваешь

Механика трейтов совершенно иная от интерфейсов ГО
источник

А⚙

Антон ⚙️ in Compiler Development
Михаил Бахтерев
Нет. Вы кода пишете в сигнатуре функции Class a => ... это рассахаривается в ClassDictionary a -> ... связывание динамическое
Необязательно. Если конкретный тип известен (что бывает практически всегда), то функции вполне себе инлайнятся
источник

(P

(Kirill, Poletaev) => in Compiler Development
о чем тебе и говорит человек
источник

А⚙

Антон ⚙️ in Compiler Development
Alexander Vershilov
Ну и бывают сложные случаи с вложенными типами, которые не известны на этапе компиляции, там то да точно динамическое
Полиморфная рекурсия
источник

AV

Alexander Vershilov in Compiler Development
+
источник

OM

Oleg Morozov in Compiler Development
(Kirill, Poletaev) =>
Так ты мягкое с теплым сравниваешь

Механика трейтов совершенно иная от интерфейсов ГО
а цель общая
причем здесь механика?
источник

А⚙

Антон ⚙️ in Compiler Development
Михаил Бахтерев
https://arxiv.org/abs/1910.00935

We present DiffTaichi, a new differentiable programming language tailored for building high-performance differentiable physical simulators. Based on an imperative programming language, DiffTaichi generates gradients of simulation steps using source code transformations that preserve arithmetic intensity and parallelism. A light-weight tape is used to record the whole simulation program structure and replay the gradient kernels in a reversed order, for end-to-end backpropagation. We demonstrate the performance and productivity of our language in gradient-based learning and optimization tasks on 10 different physical simulators. For example, a differentiable elastic object simulator written in our language is 4.2x shorter than the hand-engineered CUDA version yet runs as fast, and is 188x faster than the TensorFlow implementation. Using our differentiable programs, neural network controllers are typically optimized within only tens of iterations.
У, клёво
источник

А⚙

Антон ⚙️ in Compiler Development
Oleg Morozov
а цель общая
причем здесь механика?
Не совсем. В Rust, например, имеют смысл маркерные трейты. На Go они в силу неявности имплементации интерфейса невыразимы
источник

OM

Oleg Morozov in Compiler Development
ну давайте еще подробнее закопаемся в то, что интерфейсы ГО и трейты Раста не одно и то же
это и так ясно
тред начинался на тему как без них, других абстракций и обобщений прожить
точнее подсказать примеры, где уже так делали
источник

(P

(Kirill, Poletaev) => in Compiler Development
Oleg Morozov
ну давайте еще подробнее закопаемся в то, что интерфейсы ГО и трейты Раста не одно и то же
это и так ясно
тред начинался на тему как без них, других абстракций и обобщений прожить
точнее подсказать примеры, где уже так делали
Не писать на этих языках наверное...
источник

(P

(Kirill, Poletaev) => in Compiler Development
Зачем писать на ЯП и не использовать все его фичи?
источник

FO

FORTRAN ONE LOVE in Compiler Development
(Kirill, Poletaev) =>
Зачем писать на ЯП и не использовать все его фичи?
вы в C++ используете все его возможности, или только нужные?
источник

OM

Oleg Morozov in Compiler Development
никто и не говорил писать именно на них
может стоит ознакомится с изначальной темой, чтоб не было мискомьюникейшена
источник