Size: a a a

Compiler Development

2020 March 15

p

polunin.ai in Compiler Development
Нууу он не в одно время с растом вышел, а лет на 5-10 раньше него
источник

АВ

Александр Вольнов in Compiler Development
polunin.ai
Нууу он не в одно время с растом вышел, а лет на 5-10 раньше него
Go 1.0 вышел в марте 2012, Альфа-версия rust в январе 2012. Я про них обоих примерно в то время впервые услышал.
источник

E

Eugene in Compiler Development
Александр Вольнов
А, я перепутал этот чат с другим, тут нет такого запрета. Язык Go.
Я про свой язык в чате про C++ рассказывал, а также упоминал там, что писал на Go на работе. Мне админ warn выдал.
это в каком таком чате запрещено упоминать голанг?
источник

АВ

Александр Вольнов in Compiler Development
@fludpac там есть админ, который питает особую неприязнь к Go и раздаёт warn'ы и ban'ы. При этом там часто во всю обсуждают rust и другие языки.
источник

p

polunin.ai in Compiler Development
Александр Вольнов
Go 1.0 вышел в марте 2012, Альфа-версия rust в январе 2012. Я про них обоих примерно в то время впервые услышал.
источник

VT

Vasiliy Tereshkov in Compiler Development
Состыковал свой маленький компилятор с игровой библиотекой Raylib. Написал про свои приключения с соглашениями о вызове.

https://habr.com/ru/post/492360/
источник

АВ

Александр Вольнов in Compiler Development
Представлен в 2009, а версия 1.0 вышла в 2012. Насколько я помню, Go и Rust были на слуху в одно время, наверное как раз в 2012, когда Go уже был стабильный и появился нестабильный Rust, про который тогда писали, что это типа конкурент Go.
Ну неважно, нет смысла спорить об этом. Когда я писал, что вышли одновременно, я не ориентировался на точность, а чисто на свою память о том, что я услышал про них одновременно. Может у вас был другой опыт.
источник

p

polunin.ai in Compiler Development
Александр Вольнов
Представлен в 2009, а версия 1.0 вышла в 2012. Насколько я помню, Go и Rust были на слуху в одно время, наверное как раз в 2012, когда Go уже был стабильный и появился нестабильный Rust, про который тогда писали, что это типа конкурент Go.
Ну неважно, нет смысла спорить об этом. Когда я писал, что вышли одновременно, я не ориентировался на точность, а чисто на свою память о том, что я услышал про них одновременно. Может у вас был другой опыт.
Ок, Rust 1.0 вышел в 2015
источник

АВ

Александр Вольнов in Compiler Development
polunin.ai
Ок, Rust 1.0 вышел в 2015
Да, когда я погуглил, я это уже увидел.
источник

__

_________ _________ in Compiler Development
polunin.ai
Ок, Rust 1.0 вышел в 2015
))
источник

AS

Anatoly Shirokov in Compiler Development
Александр Вольнов
Цель моей беседы здесь - исследование рынка, анализ частых вопросов и всего такого, что поможет мне правильно предподнести свой язык, когда он будет готов.
А так да, надо взять и сделать. Только на это время нужно.
По поводу операционной и дентационной семантики. Я не силён в терминологии - что это означает и как её показать?
Я бы уже чат переименовал в "чат Александра Вольнова"
источник

А

Алексей in Compiler Development
Александр Вольнов
@fludpac там есть админ, который питает особую неприязнь к Go и раздаёт warn'ы и ban'ы. При этом там часто во всю обсуждают rust и другие языки.
Я вот тоже питаю
источник

A

Alex Ф-ф-фэils!🌠︙ in Compiler Development
Алексей
Я вот тоже питаю
Это норма🤷‍♂
источник

К

Константин in Compiler Development
Александр Вольнов
Первая версия предназначена только для бинарного. Чтобы разбирать все, наверное придётся встроить прямо в рантайм генератор парсеров на основе грамматики. А генератор парсеров написать будет сложнее, чем сделать простой парсер для языка.
Я уже писал обобщённый десериализатор для JSON-подобных языков, там можно настроить наличие/отсутствие кавычек, разделитель (':', '=' или любой другой) и ещё кучу всего, что позволило парсить как JSON, так и подмножество XML, а также сишные структуры с designated initializers. Написал за пару дней примерно вместе с сериализатором.
А язык я проектировал так, что его парсер будет не сильно сложнее парсера, который в десериализаторе. Думаю, он займёт не больше недели (2 выходных + вечера).
Есть гораздо более сложные задачи, чем парсер, но большинство из них нужно будет решить уже после того, как выйдет первая версия. И так как язык не будет языком общего назначения, по крайней мере в ближайшие пару лет, то решать их придётся на C++.
Текст - это подмножество двоичного формата, да да. Или Вы имеете ввиду, что система сможет успешно разбирать не совсем любой двоичный формат, а только некое подмножество? Что же это за серебряная пуля такая? Вы же собираете задачи для обобщения, чтобы учесть всё и не переделывать по мере выяснения подробностей. По-моему, текстовый формат - это отличный кандидат в такие задачи.
источник

АВ

Александр Вольнов in Compiler Development
Алексей
Я вот тоже питаю
Тогда вы наверняка с ним подружитесь.
А тебе чем этот язык не нравится? Понятно, что там много косяков и костылей типа пустых интерфейсов, не хватает дженериков, а вместо RAII defer нужно вручную писать.
Зато это один из немногих нативных safe языков. В нём легко писать асинхронный сетевой код и он не такой замороченный, как Rust. В нём просто сходу делается кросскомпиляция, которая была необходима для моего проекта на работе. Когда я показал своему коллеге-сишнику, как работает кросскомпиляция в Go, он не поверил, что это может быть так просто и сказал, что это волшебство какое-то.
источник

MB

Mikail Bagishov in Compiler Development
И почему это го safe? Отстрелить ногу с многопточным багом в нем не сложнее чем в плюсах, как только ты вышел за пределы каналов и начал применять например мьютексы.
источник

MB

Mikail Bagishov in Compiler Development
Даже так - есть баги, от которых C++ способен застраховать, а го нет. Например взять Read-лок у RWLock, а потом что-то туда писать.
источник

АВ

Александр Вольнов in Compiler Development
Константин
Текст - это подмножество двоичного формата, да да. Или Вы имеете ввиду, что система сможет успешно разбирать не совсем любой двоичный формат, а только некое подмножество? Что же это за серебряная пуля такая? Вы же собираете задачи для обобщения, чтобы учесть всё и не переделывать по мере выяснения подробностей. По-моему, текстовый формат - это отличный кандидат в такие задачи.
Не совсем любой двоичный формат, но почти любой из тех бинарных форматов, которые имеют практическое значение, а они подчиняются довольно простой грамматике. По крайней мере так для первой версии.
Более сложные форматы впоследствии будут разбираться уже не напрямую средствами языка, а с помощью плагинов.
источник

АВ

Александр Вольнов in Compiler Development
Mikail Bagishov
И почему это го safe? Отстрелить ногу с многопточным багом в нем не сложнее чем в плюсах, как только ты вышел за пределы каналов и начал применять например мьютексы.
По крайней мере там с памятью и адресной арифметикой напортачить сложно благодаря GC. Ну и для моих задач я обходился одними каналами. А мьютексы в Go не рекомендуют использовать.
источник

К

Константин in Compiler Development
Вы можете подкорректировать 1-ю версию текстового языка, чтобы он тоже соответствовал простой грамматике
источник