Size: a a a

Compiler Development

2020 April 25

IG

Ivan Grekov in Compiler Development
Victor Miasnikov
Корреляция: новая жена и всё -- "теория всего" не задалась

"Совпадение? Не ..." -)
По идее, она в тех обстоятельствах и не могла состояться
источник
2020 April 26

IJ

Igor 🐱 Jirkov in Compiler Development
Alexander Tchitchigin
Хотя вклад Пуанкаре в теорию относительности сильно недооценён. Очень сильно. 😔
специальную или общую? :)
источник

FO

FORTRAN ONE LOVE in Compiler Development
Михаил Бахтерев
Ну, вот на Схеме можно легко писать телеграм ботов, и можно уже давно. Но популярности это не добавляет. Контрпример :)
Да и на фортране бота было не сильно сложно наклепать :-)
источник

FO

FORTRAN ONE LOVE in Compiler Development
а это кто
Добавить комментарии в AST? Вроде ничего плохого не случится…
Отлично. А потом я беру код типа:
int a, // a variable
b, // b variable
C, // C variable
D; //d variable

И как тогда такое хранить в AST-дереве?

Для себя я решил эту задачу сохранением числа пробелов на начало лексемы, а дальше сама лексема с переформатированными //, чтобы они шли друг под другом. И в AST дереве в примере написано, что проинициализированы такие-то переменные
источник

KR

K R in Compiler Development
FORTRAN ONE LOVE
Отлично. А потом я беру код типа:
int a, // a variable
b, // b variable
C, // C variable
D; //d variable

И как тогда такое хранить в AST-дереве?

Для себя я решил эту задачу сохранением числа пробелов на начало лексемы, а дальше сама лексема с переформатированными //, чтобы они шли друг под другом. И в AST дереве в примере написано, что проинициализированы такие-то переменные
Теоретически дерево можно дополнить всяким, но практически непонятно даже как комментарии /* */ хранить так, чтобы не было безумно больно их обрабатывать.
источник

IJ

Igor 🐱 Jirkov in Compiler Development
K R
Теоретически дерево можно дополнить всяким, но практически непонятно даже как комментарии /* */ хранить так, чтобы не было безумно больно их обрабатывать.
Ну вообще можно любую грамматику тривиально дополнить комментариями, мне кажется
источник

IJ

Igor 🐱 Jirkov in Compiler Development
Берем все терминалы преобразуем в нетерминалы
источник

IJ

Igor 🐱 Jirkov in Compiler Development
'if' становится IF := 'if' | 'if' COMMENT
источник

KR

K R in Compiler Development
Ну и потом будем 15 лет жалеть, что женились на этой идее.

Я делал для языка с фортрановским синтаксисом, терпимо. Но для выражений это ужас.
источник

IJ

Igor 🐱 Jirkov in Compiler Development
А дальше комментарии могут храниться как аннотации к дереву
источник

KR

K R in Compiler Development
Может лучше их держать отдельно?

И прикреплять по location? Методами 2d графики :-)
источник

IJ

Igor 🐱 Jirkov in Compiler Development
K R
Может лучше их держать отдельно?

И прикреплять по location? Методами 2d графики :-)
Для компиляции они не нужны уже
источник

IJ

Igor 🐱 Jirkov in Compiler Development
А если нужны то есть варианты как хранить, конечно.
источник

IJ

Igor 🐱 Jirkov in Compiler Development
В идее, например, все токены это пары начального и конечного индекса в тексте, и из них потом строится аст
источник

IJ

Igor 🐱 Jirkov in Compiler Development
Т.е. в каждом узле аст есть привязка к индексу в тексте и к длине токена
источник

KR

K R in Compiler Development
Мне нужно было для трансформации в latex/tikz из dsl, описывающего windows metafile.

То есть, там и команды надо преобразовывать, и комменты оставлять.

Но там просто, а вот как для сложных вещей, например, из Хаскеля 98 в С делать ?
источник

FO

FORTRAN ONE LOVE in Compiler Development
K R
Теоретически дерево можно дополнить всяким, но практически непонятно даже как комментарии /* */ хранить так, чтобы не было безумно больно их обрабатывать.
Ну мне немного повезло с фортраном. Посреди строки не может быть комментария, поэтому было достаточно выравнивать по !
источник

AT

Alexander Tchitchigin in Compiler Development
Igor 🐱 Jirkov
специальную или общую? :)
Специальную. Группа преобразований Лоренца и вот это всё.
источник

VM

Victor Miasnikov in Compiler Development
polunin.ai
Кстати а что с комментариями? Их в АСТ нету, как быть?
Можно посмотреть как это сделано в утилите pretty print в Modula-3.

Да, грамматика модифицированна.
Например, в ней есть "группы пробелов" (?)  и т.п.
источник

МБ

Михаил Бахтерев in Compiler Development
Dmitry Ponyatov
а есть ли какие-то языки построенные только и исключительно на pattern match ?
чем они от Пролога отличаются?
Wolfram Mathematics. Но он тоже, наверное, "экзотичный", хотя, люди им пользуются активно.
источник