Size: a a a

Compiler Development

2020 April 23

AG

Alex Gryzlov in Compiler Development
там есть два основных подхода - small-step и big-step
источник

AG

Alex Gryzlov in Compiler Development
мелкошаговый совсем автоматный, а крупношаговый ближе к денотационной семантике, он более абстрактный, т.е. оставляет технические вещи за кадром отчасти
источник

PS

Peter Sovietov in Compiler Development
И на деле оба этих подхода вполне могут использоваться в рамках одного описания, если хочется чтобы получилась компактная запись, без чрезмерного количества правил :)
источник

BD

Berkus Decker in Compiler Development
сейчас будет еще вопрос, ща только найду контекст
источник

BD

Berkus Decker in Compiler Development
type checking rules + type environments (как это описывал Айкен) = оно как с оп семантикой пересекается?
источник

AG

Alex Gryzlov in Compiler Development
тайпчекер это же предварительный шаг, после парсинга
источник

AG

Alex Gryzlov in Compiler Development
отсеять семантически невалидные термы
источник

PS

Peter Sovietov in Compiler Development
На этот раз я более строго сформулирую. Проверка типов относится к статической семантике языка. Статической — потому что проверка осуществляется во время компиляции.
источник

PS

Peter Sovietov in Compiler Development
И для статической, и для динамической семантики может использоваться один и тот же формализм на основе правил переписывания. К тому же в некоторых ЯП граница между статическим и динамическим бывает довольно зыбкой. Но обычно под операционной семантикой подразумевают семантику динамическую.
источник

PS

Peter Sovietov in Compiler Development
@clayrat Вы согласны?
источник

AG

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

BD

Berkus Decker in Compiler Development
ага, а переписывание термов в динамической семантике заканчивается когда? что там является терминалами?
источник

AG

Alex Gryzlov in Compiler Development
на нормальной форме
источник

AG

Alex Gryzlov in Compiler Development
заканчивается тогда когда заканчиваются правила :)
источник

AG

Alex Gryzlov in Compiler Development
это в общем ключевой момент, то для чего ОС и вводится: про систему неплохо бы доказать что она строго нормализующая, т.е. перепись 1) терминирует 2) на нормальной форме
источник

BD

Berkus Decker in Compiler Development
поняль, теперь круто бы поглядеть где-нибудь на работающие примеры сего
источник

AG

Alex Gryzlov in Compiler Development
примеры доказательства или просто small-step интерпретатора?
источник

BD

Berkus Decker in Compiler Development
примеры интерпретатора
источник

BD

Berkus Decker in Compiler Development
про доказательства примерно понятно
источник

AG

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