Size: a a a

Compiler Development

2021 March 31

ДК

Дмитрий К in Compiler Development
suhr
Хотя бы тем, что это не дерево.
А AST, не смотря на название, вовсе не обязан быть деревом.
источник

s

suhr in Compiler Development
А синтаксическим он быть обязан?
источник

ДК

Дмитрий К in Compiler Development
suhr
А синтаксическим он быть обязан?
Агась.
источник

ДК

Дмитрий К in Compiler Development
Кстати, действительно абстрактным оно тоже редко бывает 😞
источник

s

suhr in Compiler Development
Если синтаксическое дерево является таки деревом, и AST является синтаксическим, то как AST может быть не деревом?
источник

ЗП

Зигохистоморфный Пре... in Compiler Development
Переслано от Зигохистоморфный Пре...
есть где нормальные работы описанные по open polymorphic variant via row types polymorphism?
источник

s

suhr in Compiler Development
Зигохистоморфный Препроморфизм
Переслано от Зигохистоморфный Препроморфизм
есть где нормальные работы описанные по open polymorphic variant via row types polymorphism?
источник

ВМ

Виталий Медоваров... in Compiler Development
Дмитрий К
А AST, не смотря на название, вовсе не обязан быть деревом.
Где можно прочитать про примеры абстрактных синтаксических деревьев, не являющихся деревом?
источник

s

suhr in Compiler Development
Самое близкое из того, что я знаю.
источник

M

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

ДК

Дмитрий К in Compiler Development
MaxGraey
Это смотря с чем сравнивать. Если сравнивать абстракность как унификацию для любого ситаксиса, то это не совсем абстракция - каждый язык имеет несколько специфичное AST которое варьируется от языка к языку. Но если рассматривать AST как абстракцию к самому синтаксису - то это как раз абстракция, и здесь оно полностью оправдывает свое название
Во втором случае термин "абстрактность" не имеет смысла. Синтаксическое дерево - это уже абстракция.
источник

ВМ

Виталий Медоваров... in Compiler Development
Дмитрий К
Во втором случае термин "абстрактность" не имеет смысла. Синтаксическое дерево - это уже абстракция.
Абстракция над чем? Конкретное синтаксическое дерево -- тоже синтаксическое дерево, но оно не абстрагирует ничего над синтаксисом (только если не думать что токены это абстракция над голым потоком символов конечно, но так это абстракция над голым потоком символов тогда транзитивно и будет)
источник

ДК

Дмитрий К in Compiler Development
suhr
Если синтаксическое дерево является таки деревом, и AST является синтаксическим, то как AST может быть не деревом?
Нередко под термином "дерево" на самом деле скрываются вот такие структуры: https://cs.stackexchange.com/questions/67849/what-do-you-call-a-dag-with-a-single-root-source
источник

s

suhr in Compiler Development
Проблема в том, что такая структура не соответствует синтаксису.
источник

s

suhr in Compiler Development
И AST получается не очень-то синтаксическим.
источник

M

MrSmith in Compiler Development
suhr
Если синтаксическое дерево является таки деревом, и AST является синтаксическим, то как AST может быть не деревом?
Он про стораджинг скорей всего
источник

M

MrSmith in Compiler Development
Плоские деревья вот это все
источник

AG

Alex Gryzlov in Compiler Development
источник

M

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

ДК

Дмитрий К in Compiler Development
Виталий Медоваров
Абстракция над чем? Конкретное синтаксическое дерево -- тоже синтаксическое дерево, но оно не абстрагирует ничего над синтаксисом (только если не думать что токены это абстракция над голым потоком символов конечно, но так это абстракция над голым потоком символов тогда транзитивно и будет)
Ну вот AST и должен абстрагировать от конкретного синтаксиса, но не редко уши синтаксиса таки пролезают и в него.
источник