Size: a a a

Compiler Development

2020 February 01

KR

K R in Compiler Development
Andrei Kurosh
Чтобы не сбивать с толку автокомплит
Не человек для автокомплита, а автокомплит для человека.
источник

KR

K R in Compiler Development
FORTRAN ONE LOVE
давно гонял: у меня были отклонения значений в точке порядка 1e-18-1e-19
А вот погрешности контролировать Х-ль как раз не может пока.
источник

FO

FORTRAN ONE LOVE in Compiler Development
K R
А вот погрешности контролировать Х-ль как раз не может пока.
я сравнивал различные кодогенераторы и хаки... так что это не совсем честное сравнение)
источник

AK

Andrei Kurosh in Compiler Development
K R
Не человек для автокомплита, а автокомплит для человека.
Чтобы инструмент приносил пользу, его нужно правильно применять
источник

KR

K R in Compiler Development
Andrei Kurosh
Чтобы инструмент приносил пользу, его нужно правильно применять
Да. И в типичном аналитическом notebook на три странички он должен работать в связке с repl.
источник

KR

K R in Compiler Development
То, что прочитано ядром, попадает в autocomplete.
источник
2020 February 02

VT

Vasiliy Tereshkov in Compiler Development
MaxGraey
V
Коллеги, а правда, прокомментируйте положение дел с языком V. Лично мне очень понравилась задумка, но компилятор, кажется, целиком состоит из багов. Первое, на что я наткнулся (конечно, после нерабочей самокомпиляции) - это выделение памяти под локальные массивы в куче безо всяких попыток эту память освобождать. Я вообще начинаю сомневаться, что у них есть внятный план по работе с памятью. Но если всё так плохо, откуда такой ажиотаж?
https://github.com/vlang/v/issues/3517
источник

M

MaxGraey in Compiler Development
Vasiliy Tereshkov
Коллеги, а правда, прокомментируйте положение дел с языком V. Лично мне очень понравилась задумка, но компилятор, кажется, целиком состоит из багов. Первое, на что я наткнулся (конечно, после нерабочей самокомпиляции) - это выделение памяти под локальные массивы в куче безо всяких попыток эту память освобождать. Я вообще начинаю сомневаться, что у них есть внятный план по работе с памятью. Но если всё так плохо, откуда такой ажиотаж?
https://github.com/vlang/v/issues/3517
Алекс сказал, что сделает менеджер памяти в компайл тайм, без подсчета ссылок и GC, без концепции владения и RAII как в Rust. Мы все очень этого ждем, потому что тогда и до премии Тьюринга рукой подать;) И да, все это будет делаться без анализа AST, CFG и PDG или какого любого промежуточного представления, потому как в V всего этого нету насколько я помню (хотя может что то и поменялось).

> Но если всё так плохо, откуда такой ажиотаж?
Ажиотаж потому, что Алекс заигрывает с комьюнити гошников и раст-боев, скопировав все ценное от туда (ну кроме менеджера памяти). Посмотри на Vue нарпимер, там такой же принцип - взято все проверенное временем из React и Angular - ну и как результат звед больше чем у этих двух фреймворков) Здесь примерно тоже самое.
источник

KR

K R in Compiler Development
MaxGraey
Алекс сказал, что сделает менеджер памяти в компайл тайм, без подсчета ссылок и GC, без концепции владения и RAII как в Rust. Мы все очень этого ждем, потому что тогда и до премии Тьюринга рукой подать;) И да, все это будет делаться без анализа AST, CFG и PDG или какого любого промежуточного представления, потому как в V всего этого нету насколько я помню (хотя может что то и поменялось).

> Но если всё так плохо, откуда такой ажиотаж?
Ажиотаж потому, что Алекс заигрывает с комьюнити гошников и раст-боев, скопировав все ценное от туда (ну кроме менеджера памяти). Посмотри на Vue нарпимер, там такой же принцип - взято все проверенное временем из React и Angular - ну и как результат звед больше чем у этих двух фреймворков) Здесь примерно тоже самое.
А если без дури, то можно сделать то, за что мы любим Rust в ленивом чистом функциональном языке типа Clean или Haskell 98? То есть, выделение почти всего на стеке с хорошим контролем освобождения?
источник

DP

Dmitry Ponyatov in Compiler Development
Tom Cauf
Есть же лисп, не?
no-syntax, и вообще не списком единым
источник

МБ

Михаил Бахтерев in Compiler Development
FORTRAN ONE LOVE
Вот у меня такая формулка сейчас забита... С начала и до конца руками... И я не пойму, если я в ней накосячил, пока не посчитаю по ней...
А зачем эту формулу забивать как одно целое? Ведь, в ней много повторяющихся подвыражений.
источник

МБ

Михаил Бахтерев in Compiler Development
K R
В общем, в вычмате классические алгебраические типы данных не нужны из-за того, что ветвлений почти нет.
Эмс... Сколько не работаю с вычматом, никогда не сталкивался с ситуацией "без ветвлений". Что я делаю не так? Вычмат - это же не только нейросеточки
источник

KR

K R in Compiler Development
Ну и какие там у вас мегаветвления?
источник

KR

K R in Compiler Development
Что-нибудь хоть отдалённо похожее на
https://github.com/ocaml/ocaml/blob/trunk/lambda/simplif.ml#L26

есть?
источник

KR

K R in Compiler Development
В вычмате, как правило, один, ну два запуска программы с разными параметрами полностью проверяют все ветки программы.
источник

KR

K R in Compiler Development
Есть проблемы с точностью и т.д., но алгебраическими типами данных это не ловится.
источник

МБ

Михаил Бахтерев in Compiler Development
K R
Ну и какие там у вас мегаветвления?
Что такое мегаветвление? Довольно часто встречаются разные крайние случаи, которые надо обрабатывать отдельно. Довольно часто приходится оперировать разреженными структурами данных, в которых тоже довольно много разных вариантов надо разбирать. Не всегда пара запусков все ветвления выявляет. Но ADT и даже индуктивные типы это не вылавливают, тут согласен.
источник

AT

Alexander Tchitchigin in Compiler Development
K R
А если без дури, то можно сделать то, за что мы любим Rust в ленивом чистом функциональном языке типа Clean или Haskell 98? То есть, выделение почти всего на стеке с хорошим контролем освобождения?
Система ownership-borrowing в Rust - частный случай линейных (аффинных) типов. В Clean линейные типы всегда были, в Haskell хотят добавить. Есть пейпер, но фактически встроить в GHC - сложно. Поэтому пока ждём-с.
источник

YS

Yuriy Syrovetskiy in Compiler Development
K R
А если без дури, то можно сделать то, за что мы любим Rust в ленивом чистом функциональном языке типа Clean или Haskell 98? То есть, выделение почти всего на стеке с хорошим контролем освобождения?
функциональный стиль предполагает функциональные структуры данных, которым не будет значительно лучше от контроля освобождения.

вот если только типы менять на императивные в оптимизаторе...
источник

AT

Alexander Tchitchigin in Compiler Development
Yuriy Syrovetskiy
функциональный стиль предполагает функциональные структуры данных, которым не будет значительно лучше от контроля освобождения.

вот если только типы менять на императивные в оптимизаторе...
Не только. В Хаскеле есть и императивные структуры - массивы, вектора и прочие матрицы. Они могут заоптимизироваться "из коробки", когда линейщину втащат.
источник