Size: a a a

Compiler Development

2020 May 19

А

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

T

TGG in Compiler Development
Тут уже третья мировая, я в бункер!
источник

AT

Alexander Tchitchigi... in Compiler Development
polunin.ai
потому что непонятно зачем нужен функциональный язык с сильными типами, но при этом без нормальных рекордов и отсутсвием refinement и dependent типов.
Потому что dependent types очень накладно пользоваться — как в смысле времени и удобства разработки, так и в смысле доп. расходов в рантайме. Да и refinement types на практике не так радужны, как хотелось бы. А работу завершать и выкатывать в прод иногда всё-таки нужно. Поэтому Haskell. To get shit done.
источник

AS

Aleksey Shipilev in Compiler Development
Опять началось. Есть универсальный ответ: пишите проекты на тех языках, в которых вы чувствуете себя как рыба в воде. У вас будет куча проблем алгоритмического толка, не хватало ещё и ново-языково-обучающих проблем себе огрести, которые всё равно приведут к переписыванию.
источник

А

Алексей in Compiler Development
при том что любой статический язык с GC не будет на порядки медленней раста для это задачи, да и GC мешать не будет
источник

p

polunin.ai in Compiler Development
Алексей
не в смысле зачем вообще, а зачем для компилятора?
не нужно. с этой позиции у хаскеля нет рекордов и зависимых типов.
источник

AT

Alexander Tchitchigi... in Compiler Development
polunin.ai
у хаскеля эта опция отсутсвует
Не полностью, не полностью...
источник

p

polunin.ai in Compiler Development
хаскель может быть нужен чтобы написать нормальный функциональный ЯП и забыть про хаскель.
источник

А

Алексей in Compiler Development
polunin.ai
не нужно. с этой позиции у хаскеля нет рекордов и зависимых типов.
у хаскеля есть рекорды (хоть и плохие),  а зависимых типов и у раста нет
источник

p

polunin.ai in Compiler Development
Alexander Tchitchigin
Потому что dependent types очень накладно пользоваться — как в смысле времени и удобства разработки, так и в смысле доп. расходов в рантайме. Да и refinement types на практике не так радужны, как хотелось бы. А работу завершать и выкатывать в прод иногда всё-таки нужно. Поэтому Haskell. To get shit done.
напомните в какой вселенной dependent types дают оверхед в рантайме.
источник

M

MaxGraey in Compiler Development
Pavel Meledin
а какой считаете быстрым из тех которые в индустрии широко используют?
Именно из AOT компилируемых? C + GCC пожалуй. А вообще сложно так сразу ответить. Вообще самый быстрый будет тот у которого собственный хорошо сбалансированный бэкенд, а таких очень немного
источник

IJ

Igor 🐱 Jirkov in Compiler Development
Обнаружил любопытную вещь. Когда-то году в 2012 (?) я искал простые и self-contained реализации диалектов лиспа, чем меньше тем лучше. Нашёл, в частности, https://github.com/JeffBezanson/femtolisp , который и поныне кажется мне вполне интересным для изучения. Впоследствии его автор стал работать над Julia, и, оказывается, в Julia и поныне сканер и парсер написаны на femtolisp! Интерпретатор оного идёт в комплекте с джулией и вызывается каждый раз, когда нужно разобрать кусочек кода.
источник

а

акварель на мету... in Compiler Development
как можно оптимизировать replace?
при запуске программы загружается шаблон
и входные данные трансформируются согласно ему
вот пример шаблона : "[{name}]: {text}"
потом проводится .replace("{name}", name)...
пока в голову приходит только идея при запуске находить позицию этих переменных, убирать их и запоминать позицию. Потом делать что-то типа .append(indexes[var_name], var_value), достаточно ли это хороший подход?
источник

p

polunin.ai in Compiler Development
MaxGraey
Именно из AOT компилируемых? C + GCC пожалуй. А вообще сложно так сразу ответить. Вообще самый быстрый будет тот у которого собственный хорошо сбалансированный бэкенд, а таких очень немного
у нас тут говорят что нет программ компилируемых больше минуты, так что скорость компиляции можно игнорировать)
источник

IJ

Igor 🐱 Jirkov in Compiler Development
Pavel Meledin
а какой считаете быстрым из тех которые в индустрии широко используют?
Очевидно, V
источник

M

MaxGraey in Compiler Development
polunin.ai
у нас тут говорят что нет программ компилируемых больше минуты, так что скорость компиляции можно игнорировать)
У кого у вас? У раст сообщества?
источник

AT

Alexander Tchitchigi... in Compiler Development
polunin.ai
напомните в какой вселенной dependent types дают оверхед в рантайме.
В нашей, в которой проблему witness erasure в общем виде не решили да и фиг решат (подозреваю, она Тьюринг-полная, как и все серьёзные проблемы).
источник

А

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

p

polunin.ai in Compiler Development
MaxGraey
У кого у вас? У раст сообщества?
источник

А

Алексей in Compiler Development
в экосистеме раста есть такие модули, которые больше минуты собираются?
источник