Size: a a a

Compiler Development

2020 February 06

ИЧ

Илья Чистяков in Compiler Development
@true_grue а может знаешь алгоритм, как в 3д автоматически распределить узлы? чтоб так же красивве деревья получались по дефолту, и чтоб новые узлы автоматом появлились в равноудалённом месте
источник

PS

Peter Sovietov in Compiler Development
Илья Чистяков
@true_grue а может знаешь алгоритм, как в 3д автоматически распределить узлы? чтоб так же красивве деревья получались по дефолту, и чтоб новые узлы автоматом появлились в равноудалённом месте
Алгоритмы визуализации графов — это очень большая тема, на которую написаны целые монографии. Есть алгоритмы, которые легко переносятся и в 3d. Например, это семейство алгоритмов, основанное на физ. моделировании (см. force-directed graph drawing).
источник

ИЧ

Илья Чистяков in Compiler Development
Peter Sovietov
Алгоритмы визуализации графов — это очень большая тема, на которую написаны целые монографии. Есть алгоритмы, которые легко переносятся и в 3d. Например, это семейство алгоритмов, основанное на физ. моделировании (см. force-directed graph drawing).
да, видел исследование графвиза, тяжеловато
источник

SO

Sergey Ostanevich in Compiler Development
Timur Safin
во, а давайте @Sergos12 спросим? почему aiSee и смотрели ли вокруг?
бамбарбия. 🙄 кергуду! 😳
я там и близко не лежал.
источник

IK

Ivan Kochurkin in Compiler Development
Peter Sovietov
Интересно! Вообще, это малоразвитая область — средства визуализации и отладки для разработчиков компиляторов.
Согласен. Заметил, что рисование на бумажке не всегда помогает - не все получается изобрать на ней, приходится все в голове держать, в код переносить.
источник

IK

Ivan Kochurkin in Compiler Development
EgorBo
но как обычно - как только пытаешься построить граф для чего-то сложнее a + b — превращается в мессиво аля Анрил Блюпринтс по ссылке :)
+ 1. К тому же на AST, CPG, PDG не все прямо укладывается. Например, ref, out узлы.
источник

VY

Vasiliy Yorkin in Compiler Development
Красота, я для своей поделки по учебнику Аппеля какой-то претти-принтинг по типу тоже делал. Иначе ничего не понятно. Прикольно, если бы это было интерактивно ещё (фолдинг, фильтры, метки итд)
источник

АУ

Анна Удовиченко in Compiler Development
У меня наверное на всех околокомпиляторных работах была печаталка деревьев. Откроешь такое дерево тысяч на 10 строк и разглядываешь, мммм
источник

PS

Peter Sovietov in Compiler Development
Ivan Kochurkin
Согласен. Заметил, что рисование на бумажке не всегда помогает - не все получается изобрать на ней, приходится все в голове держать, в код переносить.
На уровне синт. разбора уже есть интересные инструменты. Например, для Ohm: https://ohmlang.github.io/editor/
источник

IK

Ivan Kochurkin in Compiler Development
Анна Удовиченко
У меня наверное на всех околокомпиляторных работах была печаталка деревьев. Откроешь такое дерево тысяч на 10 строк и разглядываешь, мммм
Да, тоже такое юзаем иногда. Лучше юзать форматы lisp или json, чтобы ненужные узлы можно было сворачивать.
источник

IK

Ivan Kochurkin in Compiler Development
Кстати, есть онлайн-версия: https://astexplorer.net/
источник

IK

Ivan Kochurkin in Compiler Development
Serguey Zefirov
Нет, нельзя. Во-первых, это много текста, во-вторых, это используется в продукте в компании, из которой я давно уволился.

4-й ANTLR имеет бесконечный предпросмотр, который он строит динамически. Это документированная вещь, она позволяет описывать больший класс грамматик (VHDL весьма интересный язык, у него даже лексический анализ нельзя отдельным проходом провести). Также документировано, что это может приводить к уменьшению скорости разбора.

Как насчёт параллельности и перезапускаемости?
Похоже вы все же не умеете готовить ANTLR. У автора данной статьи нет проблем проблем с производительностью, т.к. грамматику для любого современного языка можно записать в SLL форме: https://habr.com/en/post/486824/
источник

KR

K R in Compiler Development
Serguey Zefirov
Разница между машиной Тьюринга и лямбда-исчислением в том, что машина Тьюринга моделирует человека-вычислителя с бескоиснечной бумагой, бесконеным карандашиком и бесконечным ластиком. У лямбда-исчисления ластик отсутствует.

Они друг другу не противоречат.
— Ну почему физики всегда требуют такое дорогое оборудование? Вот, например, математики просят только бумагу, карандаши и ластики.
Подумав, добавляет:
— А философы, те ещё лучше, им даже ластики не нужны.
источник

KR

K R in Compiler Development
Peter Sovietov
Интересно! Вообще, это малоразвитая область — средства визуализации и отладки для разработчиков компиляторов.
А для анализа простого и обычного кода разве что-то есть? Мне нужна какая-то связка редактора типа Visio, средства построения моделей из кода и opengrok.
источник

PS

Peter Sovietov in Compiler Development
K R
А для анализа простого и обычного кода разве что-то есть? Мне нужна какая-то связка редактора типа Visio, средства построения моделей из кода и opengrok.
Я — за специализацию. Компиляторщики для себя хотя бы что-то делают. Исследователи кода тоже имеют инструменты с развитой визуализацией, в духе IDA. В динамической среде Смолтока тоже имеется особое средство — бразуер, возможности которого превышают то, чем обладают обычные IDE. Для моделирования и порождения кода из области ЦОС по спецификации есть тот же Simulink в Matlab. Для обучения программированию и для моделирования можно посмотреть на то, что предлагает Брет Виктор: http://worrydream.com/LearnableProgramming/
источник

DP

Dmitry Ponyatov in Compiler Development
Илья Чистяков
да, но я хочу более мощную штуку
FLProg ? CodeView, среды для языков МЭК
источник

DP

Dmitry Ponyatov in Compiler Development
по визуализации Roassal / Moose какой-нибудь не подойдет?
https://moosetechnology.org/
источник

ИЧ

Илья Чистяков in Compiler Development
Хочу чтоб программирование стало как игра от первого лица.
источник

ИЧ

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

ИЧ

Илья Чистяков in Compiler Development
Там и CI сделать под это всё соответствующий.
источник