Szukam materiału instruktażowego, który obejmuje dowody poprawności kompilatora, najlepiej przy użyciu metod denotacyjnych, na poziomie początkującego studenta.
Alternatywnie, czy znasz kilka prostych przykładów kompilatora, których mógłbym zilustrować problemy? (Pierwszym przykładem, który przyszedł mi do głowy, był tłumacz z wyrażeń odrostkowych na wyrażenia postfiksowe. Ale nie pokazał niczego interesującego oprócz tego, jak wprowadzić indukcję w składni.)
Graham Hutton ma mały przykład w swojej książce „Programowanie w Haskell”, która jest świetnym miejscem do rozpoczęcia.
Mam także kilka zmechanizowanych dowodów (różne logiki) kompilatora McCarthy-Painter w raporcie, który przygotowałem dla mojej doktoratu .
źródło
Być może nie najprostszy przykład, ale Xavier Leroy wykonał dużo pracy w tej dziedzinie, takich jak formalnie zweryfikowane kompilatora C . Poprowadził letnią prezentację szkolną przy użyciu małego imperatywnego języka IMP, który jest dostępnym wstępem do bardziej zaawansowanych prac.
źródło