Size: a a a

Compiler Development

2021 March 23

TP

Tim Plotnikov in Compiler Development
Yaroslav Schekin
Да я же и не только Вас спрашиваю...
Мне просто интересно, почему у указаний на то, как работает gcc/clang и т.п., такой "вес". ;)
Я так понял, что это потому, что среди "компиляторщиков" они считаются важными/выдающимися... но почему?
Наверное потому что их использует просто огромное кол-во народа. Что, в свою очередь, видет к нахождению большего кол-ва багов, их фиксов, запросов множества фич и огромного кол-ва оптимизаций
источник

А

Александр in Compiler Development
Dmitry Ponyatov
ну как бы общеизвестно, что переводчиков к технической литературе принципиально подпускать нельзя — перевод могут сделать только узкие специалисты, которые в теме
Проблема не столько в переводчиках, а в порой халтурном отношении, когда слог у переводчика - шикарный, но в теме не разбирается, в целом в этом плане как я считаю должен быть какой-нибудь ресурс для стандартизации терминологии, иначе получаем зоопарк в духе того, как в 20-ом веке в советах на первых порах активно заимствовали технологии, но получалось, что заимствовали часто из разных стран и как результат получались заимствования одинаковых по смыслу, но разных по происхождению терминов для смежных дисциплин.
источник

к

кана in Compiler Development
Tim Plotnikov
Так-с, а кто-нибудь знает как парсится Haskell? Там же долбанутая грамматика должна быть)
на генераторах, и вроде таки довольно простая грамматика
источник

TP

Tim Plotnikov in Compiler Development
Kakadu
Вы можете попробовать поиспользовать high-level парсер-комбинаторы:
1) Будете иметь высокоуровневость между ручным рекурсивным спуском и грамматикой
2) ИСпытаете некоторые проблемы с производительностью, если будут наивные парсер-комбинаторы, без наворотов, придуманных в Parsley и ему подобных
Спасибо, совсем забыл про них!
источник

VK

Vladimir Kazanov in Compiler Development
Yaroslav Schekin
А как же их парсил gcc до перехода на recursive descent (я немного пытался поискать, но в mailing lists gcc мне лично как-то трудно ориентироваться), кстати?
Генераторы парсеров обычно поддерживают вставку умных кусочков кода... Сейчас Бизон еще и алгоритм GLR освоил, который сложности разбора C/С++ в теории позволяет преодолевать. Но практически там было очень много костылей.

Если язык не создавался в рамках конкретного инструмента (как тот же Питон), то трудно при разработке синтаксиса удержаться в рамках LR/LL
источник

VK

Vladimir Kazanov in Compiler Development
Впрочем, Питон нынче перешел на либеральный PEG
источник

А

Александр in Compiler Development
Alexander Tchitchigin
"Квантифицированные" они. Не выдумывайте, пожалуйста. 😊 Посмотрите как в книжках по логике пишут.
транслит, но ПМСМ ЯП учат ведь не только матлогики и специалисты по формальным языкам, поэтому такой перевод - ужасен своей топорностью, это как если в учебнике по Си писали "аллоцируем память на хипе", боюсь при таком переводе на КиРу никто не молился бы...
источник

YS

Yaroslav Schekin in Compiler Development
Tim Plotnikov
Наверное потому что их использует просто огромное кол-во народа. Что, в свою очередь, видет к нахождению большего кол-ва багов, их фиксов, запросов множества фич и огромного кол-ва оптимизаций
Хмм... казалось бы, куда ни посмотри, С/С++ (и прочие упомянутые языки/компиляторы) сейчас в сумме использует (куда?) меньшее "кол-во народа". Так почему именно им такой почёт?
источник

YS

Yaroslav Schekin in Compiler Development
Vladimir Kazanov
Генераторы парсеров обычно поддерживают вставку умных кусочков кода... Сейчас Бизон еще и алгоритм GLR освоил, который сложности разбора C/С++ в теории позволяет преодолевать. Но практически там было очень много костылей.

Если язык не создавался в рамках конкретного инструмента (как тот же Питон), то трудно при разработке синтаксиса удержаться в рамках LR/LL
> Генераторы парсеров обычно поддерживают вставку умных кусочков кода...

Ну да, там обычно несчастный lexer отдувается, а то и что-то "между".

> Сейчас Бизон еще и алгоритм GLR освоил,

Кстати, это "сейчас" — это где-то 20 лет назад, just FYI (просто я недавно интересовался). ;)
источник

TP

Tim Plotnikov in Compiler Development
> С/С++ (и прочие упомянутые языки/компиляторы) сейчас в сумме использует (куда?) меньшее "кол-во народа".
Меньшее чем что?
источник

VK

Vladimir Kazanov in Compiler Development
Yaroslav Schekin
Хмм... казалось бы, куда ни посмотри, С/С++ (и прочие упомянутые языки/компиляторы) сейчас в сумме использует (куда?) меньшее "кол-во народа". Так почему именно им такой почёт?
вы уверены? Ваш компьютер, вероятно, весь состоит из кода, собираемого на C/C++, и только сверху будет слой какого-нибудь JS
источник

D

Danya in Compiler Development
По моему опыту С++ сейчас основной язык в компиляторо-строении
источник

TP

Tim Plotnikov in Compiler Development
Danya
По моему опыту С++ сейчас основной язык в компиляторо-строении
Вы хотели сказать в программировании)
источник

VK

Vladimir Kazanov in Compiler Development
Yaroslav Schekin
> Генераторы парсеров обычно поддерживают вставку умных кусочков кода...

Ну да, там обычно несчастный lexer отдувается, а то и что-то "между".

> Сейчас Бизон еще и алгоритм GLR освоил,

Кстати, это "сейчас" — это где-то 20 лет назад, just FYI (просто я недавно интересовался). ;)
Ну, в таких проектах 10-20 лет это недавно 😊
источник

D

Danya in Compiler Development
Tim Plotnikov
Вы хотели сказать в программировании)
В целом IT — точно нет
Он не подходит для повседневных задач типа бекенда и фронтенда
источник

А

Александр in Compiler Development
Дмитрий К
Не думаю, что подвязывать изучение языка ко книжкам по логике - хорошая идея. Если что-то можно объяснить простым языком, то лучше так и поступить. Даже если пишите книжку по логике.
Логика бывает разная и подвязывать перевод к формальным языкам академично, но отнюдь не педагогично, проще говоря давая малоассоциативный перевод вы повышаете порог входа, создаёте читателю трудности, а порой и вынуждаете просто сомневатся состоятельности русского перевода, т.к. новояз для читателя ничем не лучше чем оригинал.
источник

AT

Alexander Tchitchigi... in Compiler Development
Александр
транслит, но ПМСМ ЯП учат ведь не только матлогики и специалисты по формальным языкам, поэтому такой перевод - ужасен своей топорностью, это как если в учебнике по Си писали "аллоцируем память на хипе", боюсь при таком переводе на КиРу никто не молился бы...
Какой транслит, Вы о чём?! "Квантор" – это же исконно русское слово! 🤦‍♀️

Если языки программирования тащат "фичи" из логики (а куда они без логики денутся), то мне не понятно, зачем целенаправленно использовать другую терминологию? Чтобы запутать учеников и они потом не могли восстановить связи с логикой? Отличная мысль!
источник

D

Danya in Compiler Development
Danya
По моему опыту С++ сейчас основной язык в компиляторо-строении
Думаю довольно сильно на это повлияла LLVM
источник

YS

Yaroslav Schekin in Compiler Development
Tim Plotnikov
> С/С++ (и прочие упомянутые языки/компиляторы) сейчас в сумме использует (куда?) меньшее "кол-во народа".
Меньшее чем что?
Чем остальные языки, в сумме (а судя по некоторым наглым рейтингам, один только python перебивает оба).
источник

YS

Yaroslav Schekin in Compiler Development
Vladimir Kazanov
вы уверены? Ваш компьютер, вероятно, весь состоит из кода, собираемого на C/C++, и только сверху будет слой какого-нибудь JS
"Состоит из кода" и "используется сейчас" — совсем разные вещи, нет?
Но я, конечно, не уверен.
источник