Abstrakt. Vi utvidgar vår korrespondens mellan utvärderare och abstrakta maskiner från ren inställning av λ-kalculus till oren inställning av beräknings λ-kalculus. Vi visar hur man kan få fram nya abstrakta maskiner från monadiska utvärderare för beräknings-λ-calculus. Från och med 1) en allmän utvärderare parameteriserad av en monad och 2) en monad som anger en beräkningseffekt, vi inline komponenterna i monaden i den generiska utvärderaren för att få en utvärderare skriven i en stil som är specifik för denna beräkningseffekt. Vi härleder sedan motsvarande abstrakta maskin genom stängning-konvertering, CPS-transformering, och defunktionalisering denna specifika utvärderare. Vi illustrerar konstruktionen med identitetsmonaden, erhålla ännu en CEK-maskin, och med en lyft statsmonad, erhålla en variant av CEK-maskinen med fel och tillstånd. Dessutom karakteriserar vi den svans-rekursiva stackinspektion som Clements och Felleisen presenterade vid ESOP 2003 som en lyft statsmonad. Detta gör det möjligt för oss att kombinera stackinspection monad med andra monader och att konstruera abstrakta maskiner för språk med korrekt svans-rekursiv stack inspektion och andra beräkningseffekter. Konstruktionsvågarna till andra monader, inklusive en som är mer korrekt ägnad åt stackinspektion än de upplyfta statsmonad- och andra monadutvärderare.
Ager m.fl. REF undersöker en överensstämmelse mellan semantik som beskrivs i termer av monadiska utvärderare och språk med beräkningseffekter.
A functional correspondence between monadic evaluators and abstract machines for languages with computational effects
{'venue': 'Theoretical Computer Science', 'journal': None, 'mag_field_of_study': ['Computer Science']}