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

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

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

42 ответов

48 просмотров

А какие были объективные критерии? Максимальное увеличение 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, короче

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта