Size: a a a

Compiler Development

2021 March 31

ДК

Дмитрий К in Compiler Development
suhr
Проблема в том, что такая структура не соответствует синтаксису.
Чего это она не соответствует? Очень даже соответствует. Вполне обычная практика с иммутабельными струтурами реиспользовать одно и то же AST поддерево в разных местах, чтобы не копипастить одно и то же.
источник

ДК

Дмитрий К in Compiler Development
MaxGraey
DAG даже с одним корневым узлом это все еще DAG. И да DAG это суперсет дерева если что. Разница между деревом и DAG в том, что в DAG узел может (но не обязан!) иметь несколько предков, в то время как у дерева всегда должен быть лишь один предок
К чему это ликбез? Я это всё прекрасно знаю.
источник

M

MaxGraey in Compiler Development
Дмитрий К
Ну вот AST и должен абстрагировать от конкретного синтаксиса, но не редко уши синтаксиса таки пролезают и в него.
И где здесь противоречия? Как я сказал уже выше AST может быть специфичен для конкретного языка. Но вышеописанная структура является абстракцией над синтаксисом
источник

M

MaxGraey in Compiler Development
Дмитрий К
К чему это ликбез? Я это всё прекрасно знаю.
А к чему тезис о том, что кто то там DAG называет деревьями? И из-за этого следует что? Что AST может быть не правильно назван?
источник
2021 April 02

RS

Rifat S in Compiler Development
Несколько дней назад встретил ссылку на архив ИСП РАН. Просмотрел этот архив и нашел интересные названия статей по теме компиляции, оптимизации, верификации, статическому анализу, языкам программирования и другим. Статей много, сам я пока их не читал и открывал только парочку из них. Но, тем не менее, хочу поделиться ссылками, может быть кому-то будет полезно.
источник

RS

Rifat S in Compiler Development
Мониторинг и тестирование на основе многоуровневых спецификаций программ
https://www.ispras.ru/proceedings/isp_32_2020_6/isp_32_2020_6_7/
Верификация соответствия между разноуровневыми моделями функциональных требований
https://www.ispras.ru/proceedings/isp_32_2020_6/isp_32_2020_6_19/
О разработке Оберон-системы с заданными свойствами эргодичности
https://www.ispras.ru/proceedings/isp_32_2020_6/isp_32_2020_6_67/
Внутрипроцедурный анализ для поиска ошибок на основе символьного выполнения
https://www.ispras.ru/proceedings/isp_32_2020_6/isp_32_2020_6_87/
Экспертная оценка результатов верификации инструментов верификации моделей программ
https://www.ispras.ru/proceedings/isp_32_2020_5/isp_32_2020_5_7/
Разработка компиляторов предметно-ориентированных языков для спецпроцессоров
https://www.ispras.ru/proceedings/isp_32_2020_5/isp_32_2020_5_35/
Архитектура системы дедуктивной верификации машинного кода
https://www.ispras.ru/proceedings/isp_32_2020_3/isp_32_2020_3_7/
Моделирование библиотечных функций в промышленном статическом анализаторе кода
https://www.ispras.ru/proceedings/isp_32_2020_3/isp_32_2020_3_21/
Подходы к отладке и обеспечению качества статического анализатора
https://www.ispras.ru/proceedings/isp_32_2020_3/isp_32_2020_3_33/
Генерация кодов для вещественной арифметики в архитектуре MIPS
https://www.ispras.ru/proceedings/isp_32_2020_3/isp_32_2020_3_49/
Реализация подсистемы памяти в рамках потактово-точного симулятора уровня приложений микропроцессоров архитектуры «Эльбрус»
https://ispranproceedings.elpub.ru/jour/article/view/1284#
Исследование технологии RISC-V
https://ispranproceedings.elpub.ru/jour/article/view/1285#
Автоматическое доказательство корректности программ с динамической памятью
https://ispranproceedings.elpub.ru/jour/article/view/1233#
Разработка языка: OOP or not OOP or better OOP
https://ispranproceedings.elpub.ru/jour/article/view/1215#
Толерантный синтаксический анализ с использованием модифицированных алгоритмов LL(1) и LR(1) со встроенной обработкой символа «Any»
https://ispranproceedings.elpub.ru/jour/article/view/1177#
Исследование подходов к реализации конвейера инструкций в рамках потактово-точного симулятора микропроцессоров “Эльбрус”
https://ispranproceedings.elpub.ru/jour/article/view/1174#
Использование инвариантов функции высокого уровня для дедуктивной верификации машинного кода
https://ispranproceedings.elpub.ru/jour/article/view/1166#
Анализ характера изменений программ и поиск неисправленных фрагментов кода
https://ispranproceedings.elpub.ru/jour/article/view/1141#
Комбинирование динамического символьного исполнения, статического анализа кода и фаззинга
https://ispranproceedings.elpub.ru/jour/article/view/1119#
О новом поколении промежуточных представлений, применяемых для анализа бинарного кода
https://ispranproceedings.elpub.ru/jour/article/view/1120#
Интерактивный специализатор подмножества языка Java, основанный на методе частичных вычислений
https://ispranproceedings.elpub.ru/jour/article/view/553#
Статический анализ для поиска переполнения буфера: актуальные направления развития
https://ispranproceedings.elpub.ru/jour/article/view/518#
Построение модульного программного обеспечения на основе однородной компонентой модели
https://ispranproceedings.elpub.ru/jour/article/view/526#
Статический анализ для поиска переполнения буфера: актуальные направления развития
https://ispranproceedings.elpub.ru/jour/article/view/518#
Чистая компиляция как парадигма программирования
https://ispranproceedings.elpub.ru/jour/article/view/479#
Распараллеливание реализаций сугубо последовательных алгоритмов
https://ispranproceedings.elpub.ru/jour/article/view/480#
Онтология предметной области «Удобство использования программного обеспечения»
https://ispranproceedings.elpub.ru/jour/article/view/488#
Логика первого порядка для задания требований к безопасному программному коду
https://ispranproceedings.elpub.ru/jour/article/view/356#
Обещающая компиляция в ARMv8.3
https://ispranproceedings.elpub.ru/jour/article/view/357#
Обнаружение неточно повторяющегося текста в документации программного обеспечения
источник

RS

Rifat S in Compiler Development
https://ispranproceedings.elpub.ru/jour/article/view/330#
Обзор подходов к улучшению качества результатов статического анализа программ
https://ispranproceedings.elpub.ru/jour/article/view/279#
Комбинация методов статической верификации композиции требований
https://ispranproceedings.elpub.ru/jour/article/view/282#
Обзор подходов к моделированию памяти в инструментах статической верификации
https://ispranproceedings.elpub.ru/jour/article/view/240#
Автоматическое обнаружение использования неинициализированных значений в рамках полносистемной эмуляции
https://ispranproceedings.elpub.ru/jour/article/view/167#
Автоматическое доказательство безопасности локальных пустых указателей
https://ispranproceedings.elpub.ru/jour/article/view/168#
Когда защита стека в компиляторах не срабатывает?
https://ispranproceedings.elpub.ru/jour/article/view/169#
Ускорение оптимизации программ во время связывания
https://ispranproceedings.elpub.ru/jour/article/view/177#
Оптимизация читаемости тестов порождаемых при символьных вычислениях
https://ispranproceedings.elpub.ru/jour/article/view/180#
Применимость AutoProof: учебный пример верификации ПО
https://ispranproceedings.elpub.ru/jour/article/view/63#
Инфраструктура статического анализа программ на языке C#
https://ispranproceedings.elpub.ru/jour/article/view/25#
Оптимизация динамической загрузки библиотек на архитектуре ARM
https://ispranproceedings.elpub.ru/jour/article/view/27#
Концепция наследования в современных языках программирования
https://ispranproceedings.elpub.ru/jour/article/view/921#
Агрессивная инлайн-подстановка функций для VLIW-архитектур
https://ispranproceedings.elpub.ru/jour/article/view/922#
Чувствительный к путям поиск дефектов в программах на языке C# на примере разыменования нулевого указателя
https://ispranproceedings.elpub.ru/jour/article/view/676#
Метод легковесного статического анализа для поиска состояний гонок
https://ispranproceedings.elpub.ru/jour/article/view/677#
О дедуктивной верификации Си программ, работающих с разделяемыми данными
https://ispranproceedings.elpub.ru/jour/article/view/598#
Применение алгоритмов проверки эквивалентности для оптимизации программ
https://ispranproceedings.elpub.ru/jour/article/view/602#
Инструменты анализа и разработки эффективного кода для параллельных архитектур
https://ispranproceedings.elpub.ru/jour/article/view/781#
Поиск повторяющихся фрагментов исходного кода при автоматическом рефакторинге
https://ispranproceedings.elpub.ru/jour/article/view/872#
Использование аспектно-ориентированного программирования для выполнения запросов по исходному коду программ
https://ispranproceedings.elpub.ru/jour/article/view/990#
Двухэтапная компиляция для оптимизации и развертывания программ на языках общего назначения
https://ispranproceedings.elpub.ru/jour/article/view/999#
Планирование команд и конвейеризация циклов на современных архитектурах
https://ispranproceedings.elpub.ru/jour/article/view/1000#
Программная конвейеризация циклов на платформе ARM
https://ispranproceedings.elpub.ru/jour/article/view/1001#
Поддержка команд с условным выполнением в селективном планировщике команд
https://ispranproceedings.elpub.ru/jour/article/view/1031#
Компиляция программ для современных архитектур.
https://www.ispras.ru/proceedings/isp_16_2009/isp_16_2009_31/
Верификация компиляторов – систематический подход.
https://www.ispras.ru/proceedings/isp_2007_13_1/isp_2007_13_1_47/
Использование параллелизма на уровне команд в компиляторе для Intel Itanium.
https://www.ispras.ru/proceedings/isp_9_2006/isp_9_2006_9/
Разреженная модель базовых блоков для оптимизации потоков команд.
https://www.ispras.ru/proceedings/isp_9_2006/isp_9_2006_23/
Интегрированная среда описания системы команд встраиваемых процессоров.
https://www.ispras.ru/proceedings/isp_9_2006/isp_9_2006_143/
Усовершенствованный алгоритм распространения констант с использованием GSA-представления.
https://www.ispras.ru/proceedings/isp_2004_8_2/isp_2004_8_2_7/
Инкрементальная верификация объектно-ориентированных данных на основе спецификации ограничений.
источник

RS

Rifat S in Compiler Development
https://www.ispras.ru/proceedings/isp_2004_8_2/isp_2004_8_2_21/
Использование особенностей ЦПОС в компиляторе языка 'С'.
https://www.ispras.ru/proceedings/isp_2004_8_1/isp_2004_8_1_137/
Рефакторинг архитектуры программного обеспечения: выделение слоев.
https://www.ispras.ru/proceedings/isp_2004_8_1/isp_2004_8_1_211/
источник

PS

Peter Sovietov in Compiler Development
Сразу выступлю в защиту авторов процитированных статей — оформление целиком на совести журнала :)
источник

RS

Rifat S in Compiler Development
Еще хочу сказать, что кроме этих статей в архиве ИСП РАН много других. Возможно, что какие-то интересные и важные статьи я пропустил. Возможно, кого-то заинтересует другая тематика. Это список статей, которые мне показались интересными по названию и сфере моих интересов.
источник

РС

Роман Соловьев... in Compiler Development
видимо анализатор в Rider работает как-то по другому.

вариант в случае ошибки игнорировать все до  синхронизирующего токена тут не прокатывает
источник

ВМ

Виталий Медоваров... in Compiler Development
Это анализ уже не на уровне синтаксиса, а на уровне семантики. Оно смотрит весь блок и ищет там объявления переменных, если не находит то ругается. В моём плагине есть нечто подобное, для того чтобы убедиться что нет дупликатов ключей в словарях/объектах: https://github.com/madwareru/intellij-ron-remix/blob/main/src/main/kotlin/com/github/madwareru/intellijronremix/ide/annotator/checkers/RONMapCheckerAnnotator.kt
источник

ВМ

Виталий Медоваров... in Compiler Development
Или вот тут можно посмотреть на то как подобные проверки делаются в более серьёзном плагине(в этом случае для раста):
https://github1s.com/madwareru/intellij-rust/blob/master/src/main/kotlin/org/rust/ide/annotator/RsErrorAnnotator.kt
источник

AT

Alexander Tchitchigi... in Compiler Development
Небезызвестная "The death of optimizing compilers" -- а есть ли запись выступления где-нибудь на Youtube? Предвкушаю, что оно феерично! 😄
источник

AT

Alexander Tchitchigi... in Compiler Development
источник

AS

Aλexander Syrotenko in Compiler Development
Alexander Tchitchigin
Небезызвестная "The death of optimizing compilers" -- а есть ли запись выступления где-нибудь на Youtube? Предвкушаю, что оно феерично! 😄
Реально надо само выступление смотреть) По слайдам очередной наброс)
источник

AT

Alexander Tchitchigi... in Compiler Development
Aλexander Syrotenko
Реально надо само выступление смотреть) По слайдам очередной наброс)
Не очередной -- наброс очень качественный! 😄
источник

PS

Peter Sovietov in Compiler Development
Это не наброс. Автор — один из лучших специалистов в низкоуровневой оптимизации.
источник

AG

Alex Gryzlov in Compiler Development
в общем авторам новых систем типов есть где развернуться ;)
источник

ВМ

Виталий Медоваров... in Compiler Development
Виталий Брагилевский тоже говорит что если программа на хаскеле медленная это недоработка разработчиков хаскеля
источник