We study the relationship between small-step semantics, big-step semantics and abstract machines, for programming languages that employ an outermost reduction strategy, i.e., languages where reductions near the root of the abstract syntax tree are performed before reductions near the leaves. In particular, we investigate how Biernacka and Danvy's syntactic correspondence and Reynolds's functional correspondence can be applied to inter-derive semantic specifications for such languages.The main contribution of this dissertation is three-fold: First, we identify that backward overlapping reduction rules in the small-step semantics cause the refocusing step of the syntactic correspondence to be inapplicable. Second, we propose two solutions to overcome this in-applicability: backtracking and rule generalization. Third, we show how these solutions affect the other transformations of the two correspondences.Other contributions include the application of the syntactic and functional correspondences to Boolean normalization. In particular, we show how to systematically derive a spectrum of normalization functions for negational and conjunctive normalization.
ResuméVi studerer sammenhaengen mellem small-step semantikker, big-step semantikker og abstrakte maskiner, for programmeringssprog, der bruger yderste reduktionsstrategier, dvs. sprog, hvor reduktioner taet på roden af det abstrakte syntaks-trae bliver udført før reduktioner naer bladene. Specielt undersøger vi, hvordan Biernacka og Danvys syntaktiske korrespondence og Reynolds' funktionelle korrespondence kan anvendes til at udlede semantiske specifikationer fra hinanden for sådanne sprog.Det primaere resultat i denne afhandling består af tre dele: Først observerer vi, at reduktionsregler med bagudrettede overlap i small-step semantikker gør, at refokuserings-skridtet i den syntaktiske korrespondence ikke kan anvendes. Derefter fremsaetter vi to løsninger til at overvinde denne manglende anvendelighed: tilbagevenden og regel-generalisering. Til sidst viser vi, hvordan disse løsninger påvirker de øvrige transformationer i de to korrespondencer.De øvrige resultater inkluderer anvendelsen af de syntaktiske og funktionelle korrespondencer til Boolesk normalisering. Specielt viser vi, hvordan man systematisk kan udlede et spektrum af normaliseringsfunktioner for negationel og konjunktiv normalisering.iii