Size: a a a

Compiler Development

2020 May 25

A

Alex in Compiler Development
for(int c; (c = getchar()) != EOF;)
Не могли бы вы порекомендовать какие-нибудь книги или статьи по генераторам парсеров (конкретный тип парсеров не принципиален)  - все что я нашел по большей части описывает то как пользоваться уже существующими решениями (ANTLR, BISON). Я имею общее представление о принципах работы генератора (без проблем смогу написать что-то простое), но мне хотелось бы прежде ознакомится с литературой а не проверять на практике правильность моего понимания.
Не совсем по генераторам, но раз уж советуют книги просто про парсеры, то есть великолепная книга Grune: "Parsing Techniques: A Practical Guide"
источник

PS

Peter Sovietov in Compiler Development
Alex
Не совсем по генераторам, но раз уж советуют книги просто про парсеры, то есть великолепная книга Grune: "Parsing Techniques: A Practical Guide"
Отличная рекомендация! А не хотите добавить ее описание на вики? А то там пока только название фигурирует :)
источник

f

for(int c; (c = getc... in Compiler Development
Спасибо, это я как раз сейчас изучаю. Я поверхностно просмотрел то что сейчас порекомендовали - но в большинстве случаев все же ничего конкретного там не было - наверное потомучто там все же нет никаких особых усложнений. На самом деле я ожидал увидеть что-то наподобие 'реализация генератора парсеров' где именно рассматривается логика генерации кода для парсера.
источник

A

Alex in Compiler Development
Peter Sovietov
Отличная рекомендация! А не хотите добавить ее описание на вики? А то там пока только название фигурирует :)
Ок, чуть позже добавлю (хотя я не полностью прочитал, только нужные мне главы)
источник

PS

Peter Sovietov in Compiler Development
for(int c; (c = getchar()) != EOF;)
Спасибо, это я как раз сейчас изучаю. Я поверхностно просмотрел то что сейчас порекомендовали - но в большинстве случаев все же ничего конкретного там не было - наверное потомучто там все же нет никаких особых усложнений. На самом деле я ожидал увидеть что-то наподобие 'реализация генератора парсеров' где именно рассматривается логика генерации кода для парсера.
Дело в том, что сами парсеры обладают различными выразительными возможностями. Я не знаю книг, исключительно посвященных генераторам парсеров. Поэтому лучше вопрос конкретизировать.
источник

PS

Peter Sovietov in Compiler Development
Alex
Ок, чуть позже добавлю (хотя я не полностью прочитал, только нужные мне главы)
Спасибо!
источник

PS

Peter Sovietov in Compiler Development
for(int c; (c = getchar()) != EOF;)
Спасибо, это я как раз сейчас изучаю. Я поверхностно просмотрел то что сейчас порекомендовали - но в большинстве случаев все же ничего конкретного там не было - наверное потомучто там все же нет никаких особых усложнений. На самом деле я ожидал увидеть что-то наподобие 'реализация генератора парсеров' где именно рассматривается логика генерации кода для парсера.
Посмотрите вот эту статью. Она про современный подход и изложение там весьма доступное: http://www.romanredz.se/papers/FI2007.pdf
источник

A

Alex in Compiler Development
Ну и сложно же в этих ваших гитхабах правки внести. В общем, завтра разбираться буду
источник

VM

Victor Miasnikov in Compiler Development
for(int c; (c = getchar()) != EOF;)
Спасибо, это я как раз сейчас изучаю. Я поверхностно просмотрел то что сейчас порекомендовали - но в большинстве случаев все же ничего конкретного там не было - наверное потомучто там все же нет никаких особых усложнений. На самом деле я ожидал увидеть что-то наподобие 'реализация генератора парсеров' где именно рассматривается логика генерации кода для парсера.
Вы не пробовали посмотреть на COCO/R?

( есть и книга от его автора)
источник

А

Алексей in Compiler Development
Victor Miasnikov
Вы не пробовали посмотреть на COCO/R?

( есть и книга от его автора)
я как-то трогал довольно давно coco/r под c#
источник

А

Алексей in Compiler Development
antlr помощнее будет конечно
источник

VM

Victor Miasnikov in Compiler Development
Алексей
я как-то трогал довольно давно coco/r под c#
Есть варианты и под Modula-2, Oberon, Modula-3.
источник

VM

Victor Miasnikov in Compiler Development
Алексей
antlr помощнее будет конечно
COCO/R - "как альтернатива".

И ключевое слово для поиска литературы.
источник

RS

Rifat S in Compiler Development
По поводу оптимизаций, кто как считает, какие оптимизации являются оптимизациями, соответствующими принципу Парето, то есть их реализация достаточно проста (20% усилий), но дает значительные улучшения (80% результата). И наоборот какие оптимизации не стоят свеч.
источник

AB

Artöm Bakri Al-Sarmi... in Compiler Development
Подмножество dead code elimination без анализа значений является
источник

AB

Artöm Bakri Al-Sarmi... in Compiler Development
Удаление веток вида if (0) в том числе
источник

M

MaxGraey in Compiler Development
Rifat S
По поводу оптимизаций, кто как считает, какие оптимизации являются оптимизациями, соответствующими принципу Парето, то есть их реализация достаточно проста (20% усилий), но дает значительные улучшения (80% результата). И наоборот какие оптимизации не стоят свеч.
DCE, CSE, inlining, constant propagation (const folding) еще DAE (dead argument elimination)
источник

AD

Artyom Drozdov in Compiler Development
векторизация в тривиальных случаях?
источник

A

Alex in Compiler Development
Rifat S
По поводу оптимизаций, кто как считает, какие оптимизации являются оптимизациями, соответствующими принципу Парето, то есть их реализация достаточно проста (20% усилий), но дает значительные улучшения (80% результата). И наоборот какие оптимизации не стоят свеч.
На разных машинах и на разных задачах всё очень индивидуально. Более того, часто бывает так что одни незначительные оптимизации создают контекст для других сильных оптимизаций. Поэтому я бы не стал утверждать что здесь работает принцип 80/20
источник

AK

Andrei Kurosh in Compiler Development
Artyom Drozdov
векторизация в тривиальных случаях?
Вот кстати вопрос, насколько автовекторизация это хорошо если она только тривиальная. Получается, что незначительное изменение может вдруг сильно ударить по производительности
источник