Пример альфа-преобразования, необходимого в Минкамле - PullRequest
0 голосов
/ 28 декабря 2018

У меня был курс по функциональному программированию в ocaml / mincaml , и мы говорили об альфа-преобразовании.Если я правильно понял, цель альфа-преобразования состоит в том, чтобы синтаксически определить разницу между двумя разными переменными, которым можно было бы присвоить одно и то же имя в разных частях кода, верно?

Моя проблема в том, что наш учитель шел довольно быстро, предполагая, что мы все хорошо разбираемся в этой теме и особенно говоря: " Вы легко найдете программы MinCaml, нуждающиеся в альфа-преобразовании, чтобы дать правильные ответы. "

Я искал, но на самом деле не вижу, хотите ли вы иметь в виду пример или хорошую документацию в Интернете, чтобы помочь мне лучше понять эту концепцию с некоторыми примерами, в которых альфа-преобразование равно действительно необходимо ?

Большое спасибо.

NB. Если у кого-то есть идеи с тегами получше, я не могу добавить ни «mincaml», ни «альфа-преобразование»."так ...

1 Ответ

0 голосов
/ 28 декабря 2018

Альфа-преобразования упрощают и упрощают реализацию некоторых процессов компиляции.

Например, когда MinCaml удаляет ненужные определения (elim.ml), он ищет свободные переменные выражения (KNormal.fv), чтобы проверить, можем ли мы безопасно исключить определение.

Если мы не можем предположить, что у каждой переменной есть свои индивидуальные имена, этот процесс требует дополнительного поиска.Выполнив альфа-преобразование перед исключениями, мы можем пропустить это и написать процесс с простыми кодами.

...