185 похожих чатов

Так, объясняю. Языки, подходящие для написания компиляторов: 1. C. 2. TypeScript. 3. Go. При

оценке использованы объективные критерии. Вопросы? :)

42 ответов

43 просмотра

А какие были объективные критерии? Максимальное увеличение problem set, чтобы собственно компиляторная часть была пренебрежимо малой?

Окаменелое говно, язык с unsound системой типов и убожество без сумм-типов. Офигенный набор, ничего не скажешь

Поэтому он идёт во вторую категорию, а не третью.

Антон 🇦🇲
Окаменелое говно, язык с unsound системой типов и ...

> убожество без сумм-типов Костылится на интерфейсах, жить можно. Правда с паниками, в статике необработанные варианты кажется никак не отловить

Peter-Sovietov Автор вопроса
Pasha Sokolov
А какие были объективные критерии? Максимальное ув...

Вот, хороший вопрос! Где можно найти самые изящные реализации компиляторов? В учебниках по разработке компиляторов! Но, естественно, нас интересуют только современные учебники. Итак! Crafting Interpreters. Там Си. Совершенно замечательный учебник — 低レイヤを知りたい人のためのCコンパイラ作成入門. Там тоже Си. Compiling to Assembly from Scratch. Это уже TypeScript. Наконец, Writing A Compiler In Go. Сами понимаете, какой там язык реализации.

Peter-Sovietov Автор вопроса
Brenoritvrezorkre
Замечательный учебник ())))))

Зря смеетесь, это учебник автора chibicc.

Andrey
> убожество без сумм-типов Костылится на интерфейс...

Можно даже без интерфейсов, функциями. Оно же visitor pattern по оопешному.

Да, и для джавы автор рекомендует написать генератор классов-нод

Антон 🇦🇲
И нафиг оно тогда надо?

Менеджеры боятся Rust, например. А Go уже используется

suhr
Scott encoding.

Хрен редьки не сильно слаще, когда приходится руками писать. 🤷‍♀

Andrey
Менеджеры боятся Rust, например. А Go уже использу...

А писать компиляторы менеджеры не боятся? 😂

Peter Sovietov
Вот, хороший вопрос! Где можно найти самые изящны...

Странно, что вы ещë buildyourownlisp.com в пример не привели

suhr
Можно даже без интерфейсов, функциями. Оно же visi...

А как без интерфейсов? Всё равно же будет интерфейс с методом visit, разве нет?

Peter Sovietov
Зря смеетесь, это учебник автора chibicc.

Для его прочтения нужно знать wenyan lang?

Pasha Sokolov
Странно, что вы ещë buildyourownlisp.com в пример ...

Только я его по ходу прочтения переводил на Rust, код вышел удобнее, проще и короче

Alexander Chichigin
А писать компиляторы менеджеры не боятся? 😂

Продукт такой, что в нём пачка DSL, на которых пользователи даже что-то пишут

Pasha Sokolov
Какого формата?

Ну, если честно там не особо много написано, только Bad C and terrible rationales

0. Eat your own dogfood

Peter-Sovietov Автор вопроса
Brenoritvrezorkre
А он анимешник? Чиби

Хуже, он — японец. Воспользуйтесь историей чата. Мы уже все это не раз обсуждали. И 8сс, и 9сс, chibicc.

Peter Sovietov
Хуже, он — японец. Воспользуйтесь историей чата. М...

Слушай, ты не знаешь, с какой версии в расте появился борроу чекер?

Andrey
А как без интерфейсов? Всё равно же будет интерфей...

В Go есть замыкания и типы для функций func visitPlus(visitor func(e1, e2 Expression) Expression) { .... }

Peter-Sovietov Автор вопроса

Да, известный тип, но, увы, не в нашем чате :)

Не помню, про что это

Антон 🇦🇲
Не помню, про что это

Формализация старого раста в устаревшем лине

Для написания компелов Го не самый лучший вариант, имхо.

Го слишком тупой для всего компиляторов

Re
Вопрос, в чем он тупой?

Не знаю, мне понравилось с ним работать, но он показался крайне тупыи и легким. Что-то для план9, короче

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта