2141:. The converse derivation (closure conversion, CPS transformation, and defunctionalization) is documented in John Reynolds's article "Definitional Interpreters for Higher-Order Programming Languages", which is the origin of the CEK machine and was subsequently identified as a blueprint for transforming compositional evaluators into abstract machines as well as vice versa.
202:
The CS machine contains just a control statement and a store. It is also described by the original paper. In an application, instead of putting variables into an environment it substitutes them with an address on the store and putting the value of the variable in that address. The continuation is not
157:
Each component of the CEK machine has various representations. The control string is usually a term being evaluated, or sometimes, a line number. For example, a CEK machine evaluating the lambda calculus would use a lambda expression as a control string. The environment is almost always a map from
58:
The CEK machine builds on the SECD machine by replacing the dump (call stack) with the more advanced continuation, and putting parameters directly into the environment, rather than pushing them on to the parameter stack first. Other modifications can be made which creates a whole family of related
221:
The SECD machine was the machine that CEK machine was based on. It has a stack, environment, control statement and dump. The dump is a call stack, and is used instead of a continuation. The stack is used for passing parameters to functions. The control statement was written in
51:. The control statement is the term being evaluated at that moment, the environment is (usually) a map from variable names to values, and the continuation stores another state, or a special halt case. It is a simplified form of another abstract machine called the
63:
has the environment map variables to a pointer on the store, which is effectively a heap. This allows it to model mutable state better than the ordinary CEK machine. The CK machine has no environment, and can be used for simple calculi without variables.
2238:
They differ on how they behave with respect to applications: the CEK implements left-to-right call-by-value, i.e. it first evaluates the function part, the LAM gives instead precedence to arguments, realizing right-to-left
158:
variables to values, or in the case of CESK machines, variables to addresses in the store. The representation of the continuation varies. It often contains another environment as well as a continuation type, for example
76:. Its environment maps variables to closures and the continuations are either a halt, a continuation to evaluate an argument (ar), or a continuation to evaluate an application after evaluating a function (ap):
2660:. Implementation and Application of Functional Languages, 16th International Workshop, IFL 2004, Revised Selected Papers, Lecture Notes in Computer Science 3474, Springer. pp. 52β71.
2187:
2617:. Lecture Notes in Computer Science. Vol. 2986. Programming Languages and Systems, 13th European Symposium on Programming, ESOP 2004, LNCS 2986, Springer. pp. 279β293.
1430:, where the domain of answers is polymorphic, i.e., is implemented with a type variable. This continuation-passing implementation is mapped back to direct style as follows:
2527:
2475:
272:
1758:
This direct-style implementation is also in defunctionalized form, or more precisely in closure-converted form. Here is the result of closure-unconverting it:
72:
A CEK machine can be created for any programming language so the term is often used vaguely. For example, a CEK machine could be created to interpret the
2320:
2632:
2300:
2262:
2231:
2122:) and where syntactic functions are defined as semantic functions and syntactic applications are defined as semantic applications (
348:
182:
The CESK machine is another machine closely related to the CEK machine. The environment in a CESK machine maps variables to
2111:
166:. It is sometimes a call stack, where each frame is the rest of the state, i.e. a control statement and an environment.
2698:(13). 5th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming (PPDP'03): 8β19.
2480:. Formal Description of Programming Concepts III, Elsevier Science Publishers B.V. (North-Holland). pp. 193β217.
2830:
1427:
2759:
Formally verified derivation of an executable and terminating CEK machine from call-by-value lambda-p-hat-calculus
289:
To wit, here is an implementation of the CEK machine in OCaml, representing lambda terms with de Bruijn indices:
194:. This makes it much more useful for interpreting imperative programming languages, rather than functional ones.
2160:
2254:
Semantics and
Algebraic Specification: Essays Dedicated to Peter D. Mosses on the Occasion of His 60th Birthday
2154:
2115:
44:
40:
2327:
2214:
Accattoli, Beniamino; Barenbaum, Pablo; Mazza, Damiano (19 August 2014), "Distilling abstract machines",
2190:
2406:
2282:
186:, on a "store" (heap) hence the name "CESK". It can be used to model mutable state, for example the Ξ
2779:; Millikin, Kevin (2008). "A rational deconstruction of Landin's SECD machine with the J operator".
988:
2806:
2788:
2595:
2503:
2499:
2451:
2447:
2361:
2357:
2278:
2157:(via a left-to-right call-by-value CPS transformation), it also syntactically corresponds to the
279:
275:
32:
28:
999:
as the first-order representation of a continuation. Here is its refunctionalized counterpart:
2661:
2628:
2512:
2460:
2296:
2290:
2258:
2252:
2227:
257:
226:, and the machine had its own "programming language". A lambda calculus statement like this:
2798:
2736:
2699:
2618:
2587:
2575:
2557:
2549:
2481:
2219:
283:
223:
24:
2382:
2365:
2150:
286:'s Interpreter III in "Definitional Interpreters for Higher-Order Programming Languages".
204:
191:
73:
2613:
Thielecke, Hayo (2004). "Answer Type
Polymorphism in Call-by-Name Continuation Passing".
2216:
Proceedings of the 19th ACM SIGPLAN international conference on
Functional programming
282:
wrote "The machine is derived from
Reynolds' extended interpreter IV.", referring to
2824:
2776:
2720:
2683:
2648:
2286:
2130:
2123:
36:
2599:
2810:
2802:
2652:
2507:
2194:
2193:-- with a left-to-right applicative-order reduction strategy, and likewise for the
2138:
2134:
356:
216:
52:
48:
2623:
2485:
2757:
2704:
2687:
2455:
2423:
2741:
2724:
2591:
2556:. Vol. 2. Proceedings of 25th ACM National Conference. pp. 717β740.
2119:
2665:
2552:(1972). "Definitional Interpreters for Higher-Order Programming Languages".
2535:(Technical report). Department of Computer Science, Indiana University. 197.
2223:
352:
2561:
47:. A state in a CEK machine includes a control statement, environment and
2688:"A Functional Correspondence between Evaluators and Abstract Machines"
274:-Calculus", and on page 4 of the technical report with the same name,
2793:
174:
There are some other machines closely linked to the CEK machine.
254:
On page 196 of "Control
Operators, the SECD Machine, and the
2321:"Implementing functional languages with abstract machines"
2257:. Springer Science & Business Media. pp. 162β.
2197:(via a right-to-left call-by-value CPS transformation).
207:; it does not need to remember to evaluate an argument.
2366:"A Calculus for Assignments in Higher-Order Languages"
246:
is a function that applies two abstractions together.
2554:
Proceedings of the ACM annual conference on - ACM '72
2515:
2463:
2163:
260:
39:. It is generally implemented as an interpreter for
2654:A Rational Deconstruction of Landin's SECD Machine
2521:
2469:
2181:
266:
2677:
2675:
2725:"A Concrete Framework for Environment Machines"
2578:(1998). "Definitional Interpreters Revisited".
2544:
2542:
2509:Control Operators, the SECD Machine, and the
2457:Control Operators, the SECD Machine, and the
2153:, does not only functionally correspond to a
8:
43:, but can also be used to implement simple
2182:{\displaystyle \lambda {\widehat {\rho }}}
2792:
2740:
2703:
2622:
2514:
2462:
2168:
2167:
2162:
2118:where the domain of values is reflexive (
259:
1426:This implementation is in left-to-right
78:
2729:ACM Transactions on Computational Logic
2206:
140:Abstraction while evaluating argument
129:Abstraction while evaluating function
2580:Higher-Order and Symbolic Computation
7:
2765:(Thesis). University of Southampton.
2682:Ager, Mads Sig; Biernacki, Dariusz;
2352:
2350:
2348:
2319:Thielecke, Hayo (December 9, 2015).
2314:
2312:
2292:Semantics Engineering with PLT Redex
2781:Logical Methods in Computer Science
14:
2615:Programming Languages and Systems
2189:calculus -- a calculus that uses
60:
2383:"A refresher on the CEK machine"
2251:Jens Palsberg (28 August 2009).
2110:The resulting implementation is
107:, E', K where closure(t,E') = E
45:imperative programming languages
41:functional programming languages
2114:. It is the usual Scott-Tarski
2133:'s rational deconstruction of
35:that implements left-to-right
1:
2116:definitional self-interpreter
2624:10.1007/978-3-540-24725-8_20
2486:10.1007/978-3-319-14125-1_13
2295:. MIT Press. pp. 113β.
234:would be written like this:
153:Representation of components
2756:Rozowski, Wojciech (2021).
59:machines. For example, the
2847:
2705:10.7146/brics.v10i13.21783
2407:"The SECD Virtual Machine"
2149:The CEK machine, like the
1428:continuation-passing style
987:This implementation is in
214:
190:calculus described in the
143:Abs, E, ap(Ξ»x.Exp, E', K)
16:Theoretical computer model
2742:10.7146/brics.v13i3.21909
2686:; Midtgaard, Jan (2003).
2218:, ACM, pp. 363β376,
2803:10.2168/LMCS-4(4:12)2008
2522:{\displaystyle \lambda }
2470:{\displaystyle \lambda }
1760:
1432:
1001:
361:
291:
267:{\displaystyle \lambda }
2735:(1). Article #6: 1β30.
2719:Biernacka, MaΕgorzata;
2592:10.1023/A:1010075320153
2224:10.1145/2628136.2628154
2155:meta-circular evaluator
2129:This derivation mimics
2523:
2471:
2183:
268:
2562:10.1145/800194.805852
2524:
2472:
2387:CMSC 330, Summer 2015
2283:Findler, Robert Bruce
2191:explicit substitution
2184:
989:defunctionalized form
312:(* de Bruijn index *)
269:
203:needed because it is
135:t, E', ap(Abs, E, K)
132:Abs, E, ar(t, E', K)
2513:
2506:, Daniel P. (1986).
2461:
2161:
258:
2692:Brics Report Series
2448:Felleisen, Matthias
2362:Friedman, Daniel P.
2358:Felleisen, Matthias
2279:Felleisen, Matthias
80:
2651:, Olivier (2004).
2519:
2467:
2179:
280:Daniel P. Friedman
276:Matthias Felleisen
264:
79:
33:Daniel P. Friedman
29:Matthias Felleisen
2831:Abstract machines
2634:978-3-540-21313-0
2576:Reynolds, John C.
2550:Reynolds, John C.
2428:www.cs.bath.ac.uk
2302:978-0-262-25817-3
2264:978-3-642-04163-1
2176:
150:
149:
124:, E, ar(e, E, K)
2838:
2815:
2814:
2796:
2773:
2767:
2766:
2764:
2753:
2747:
2746:
2744:
2716:
2710:
2709:
2707:
2679:
2670:
2669:
2659:
2645:
2639:
2638:
2626:
2610:
2604:
2603:
2572:
2566:
2565:
2546:
2537:
2536:
2534:
2528:
2526:
2525:
2520:
2496:
2490:
2489:
2476:
2474:
2473:
2468:
2452:Friedman, Daniel
2444:
2438:
2437:
2435:
2434:
2420:
2414:
2413:
2411:
2403:
2397:
2396:
2394:
2393:
2379:
2373:
2372:
2370:
2364:(October 1986).
2354:
2343:
2342:
2340:
2338:
2332:
2326:. Archived from
2325:
2316:
2307:
2306:
2289:(10 July 2009).
2275:
2269:
2268:
2248:
2242:
2241:
2211:
2188:
2186:
2185:
2180:
2178:
2177:
2169:
2106:
2103:
2100:
2097:
2094:
2091:
2088:
2085:
2082:
2079:
2076:
2073:
2070:
2067:
2064:
2061:
2058:
2055:
2052:
2049:
2046:
2043:
2040:
2037:
2034:
2031:
2028:
2025:
2022:
2019:
2016:
2013:
2010:
2007:
2004:
2001:
1998:
1995:
1992:
1989:
1986:
1983:
1980:
1977:
1974:
1971:
1968:
1965:
1962:
1959:
1956:
1953:
1950:
1947:
1944:
1941:
1938:
1935:
1932:
1929:
1926:
1923:
1920:
1917:
1914:
1911:
1908:
1905:
1902:
1899:
1896:
1893:
1890:
1887:
1884:
1881:
1878:
1875:
1872:
1869:
1866:
1863:
1860:
1857:
1854:
1851:
1848:
1845:
1842:
1839:
1836:
1833:
1830:
1827:
1824:
1821:
1818:
1815:
1812:
1809:
1806:
1803:
1800:
1797:
1794:
1791:
1788:
1785:
1782:
1779:
1776:
1773:
1770:
1767:
1764:
1754:
1751:
1748:
1745:
1742:
1739:
1736:
1733:
1730:
1727:
1724:
1721:
1718:
1715:
1712:
1709:
1706:
1703:
1700:
1697:
1694:
1691:
1688:
1685:
1682:
1679:
1676:
1673:
1670:
1667:
1664:
1661:
1658:
1655:
1652:
1649:
1646:
1643:
1640:
1637:
1634:
1631:
1628:
1625:
1622:
1619:
1616:
1613:
1610:
1607:
1604:
1601:
1598:
1595:
1592:
1589:
1586:
1583:
1580:
1577:
1574:
1571:
1568:
1565:
1562:
1559:
1556:
1553:
1550:
1547:
1544:
1541:
1538:
1535:
1532:
1529:
1526:
1523:
1520:
1517:
1514:
1511:
1508:
1505:
1502:
1499:
1496:
1493:
1490:
1487:
1484:
1481:
1478:
1475:
1472:
1469:
1466:
1463:
1460:
1457:
1454:
1451:
1448:
1445:
1442:
1439:
1436:
1422:
1419:
1416:
1413:
1410:
1407:
1404:
1401:
1398:
1395:
1392:
1389:
1386:
1383:
1380:
1377:
1374:
1371:
1368:
1365:
1362:
1359:
1356:
1353:
1350:
1347:
1344:
1341:
1338:
1335:
1332:
1329:
1326:
1323:
1320:
1317:
1314:
1311:
1308:
1305:
1302:
1299:
1296:
1293:
1290:
1287:
1284:
1281:
1278:
1275:
1272:
1269:
1266:
1263:
1260:
1257:
1254:
1251:
1248:
1245:
1242:
1239:
1236:
1233:
1230:
1227:
1224:
1221:
1218:
1215:
1212:
1209:
1206:
1203:
1200:
1197:
1194:
1191:
1188:
1185:
1182:
1179:
1176:
1173:
1170:
1167:
1164:
1161:
1158:
1155:
1152:
1149:
1146:
1143:
1140:
1137:
1134:
1131:
1128:
1125:
1122:
1119:
1116:
1113:
1110:
1107:
1104:
1101:
1098:
1095:
1092:
1089:
1086:
1083:
1080:
1077:
1074:
1071:
1068:
1065:
1062:
1059:
1056:
1053:
1050:
1047:
1044:
1041:
1038:
1035:
1032:
1029:
1026:
1023:
1020:
1017:
1014:
1011:
1008:
1005:
998:
994:
983:
980:
977:
974:
971:
968:
965:
962:
959:
956:
953:
950:
947:
944:
941:
938:
935:
932:
929:
926:
923:
920:
917:
914:
911:
908:
905:
902:
899:
896:
893:
890:
887:
884:
881:
878:
875:
872:
869:
866:
863:
860:
857:
854:
851:
848:
845:
842:
839:
836:
833:
830:
827:
824:
821:
818:
815:
812:
809:
806:
803:
800:
797:
794:
791:
788:
785:
782:
779:
776:
773:
770:
767:
764:
761:
758:
755:
752:
749:
746:
743:
740:
737:
734:
731:
728:
725:
722:
719:
716:
713:
710:
707:
704:
701:
698:
695:
692:
689:
686:
683:
680:
677:
674:
671:
668:
665:
662:
659:
656:
653:
650:
647:
644:
641:
638:
635:
632:
629:
626:
623:
620:
617:
614:
611:
608:
605:
602:
599:
596:
593:
590:
587:
584:
581:
578:
575:
572:
569:
566:
563:
560:
557:
554:
551:
548:
545:
542:
539:
536:
533:
530:
527:
524:
521:
518:
515:
512:
509:
506:
503:
500:
497:
494:
491:
488:
485:
482:
479:
476:
473:
470:
467:
464:
461:
458:
455:
452:
449:
446:
443:
440:
437:
434:
431:
428:
425:
422:
419:
416:
413:
410:
407:
404:
401:
398:
395:
392:
389:
386:
383:
380:
377:
374:
371:
368:
365:
343:
340:
337:
334:
331:
328:
325:
322:
319:
316:
313:
310:
307:
304:
301:
298:
295:
273:
271:
270:
265:
224:postfix notation
205:lazily evaluated
170:Related machines
81:
25:abstract machine
2846:
2845:
2841:
2840:
2839:
2837:
2836:
2835:
2821:
2820:
2819:
2818:
2775:
2774:
2770:
2762:
2755:
2754:
2750:
2718:
2717:
2713:
2681:
2680:
2673:
2657:
2647:
2646:
2642:
2635:
2612:
2611:
2607:
2574:
2573:
2569:
2548:
2547:
2540:
2532:
2511:
2510:
2498:
2497:
2493:
2459:
2458:
2446:
2445:
2441:
2432:
2430:
2422:
2421:
2417:
2409:
2405:
2404:
2400:
2391:
2389:
2381:
2380:
2376:
2368:
2356:
2355:
2346:
2336:
2334:
2330:
2323:
2318:
2317:
2310:
2303:
2277:
2276:
2272:
2265:
2250:
2249:
2245:
2234:
2213:
2212:
2208:
2203:
2159:
2158:
2151:Krivine machine
2147:
2108:
2107:
2104:
2101:
2098:
2095:
2092:
2089:
2086:
2083:
2080:
2077:
2074:
2071:
2068:
2065:
2062:
2059:
2056:
2053:
2050:
2047:
2044:
2041:
2038:
2035:
2032:
2029:
2026:
2023:
2020:
2017:
2014:
2011:
2008:
2005:
2002:
1999:
1996:
1993:
1990:
1987:
1984:
1981:
1978:
1975:
1972:
1969:
1966:
1963:
1960:
1957:
1954:
1951:
1948:
1945:
1942:
1939:
1936:
1933:
1930:
1927:
1924:
1921:
1918:
1915:
1912:
1909:
1906:
1903:
1900:
1897:
1894:
1891:
1888:
1885:
1882:
1879:
1876:
1873:
1870:
1867:
1864:
1861:
1858:
1855:
1852:
1849:
1846:
1843:
1840:
1837:
1834:
1831:
1828:
1825:
1822:
1819:
1816:
1813:
1810:
1807:
1804:
1801:
1798:
1795:
1792:
1789:
1786:
1783:
1780:
1777:
1774:
1771:
1768:
1765:
1762:
1756:
1755:
1752:
1749:
1746:
1743:
1740:
1737:
1734:
1731:
1728:
1725:
1722:
1719:
1716:
1713:
1710:
1707:
1704:
1701:
1698:
1695:
1692:
1689:
1686:
1683:
1680:
1677:
1674:
1671:
1668:
1665:
1662:
1659:
1656:
1653:
1650:
1647:
1644:
1641:
1638:
1635:
1632:
1629:
1626:
1623:
1620:
1617:
1614:
1611:
1608:
1605:
1602:
1599:
1596:
1593:
1590:
1587:
1584:
1581:
1578:
1575:
1572:
1569:
1566:
1563:
1560:
1557:
1554:
1551:
1548:
1545:
1542:
1539:
1536:
1533:
1530:
1527:
1524:
1521:
1518:
1515:
1512:
1509:
1506:
1503:
1500:
1497:
1494:
1491:
1488:
1485:
1482:
1479:
1476:
1473:
1470:
1467:
1464:
1461:
1458:
1455:
1452:
1449:
1446:
1443:
1440:
1437:
1434:
1424:
1423:
1420:
1417:
1414:
1411:
1408:
1405:
1402:
1399:
1396:
1393:
1390:
1387:
1384:
1381:
1378:
1375:
1372:
1369:
1366:
1363:
1360:
1357:
1354:
1351:
1348:
1345:
1342:
1339:
1336:
1333:
1330:
1327:
1324:
1321:
1318:
1315:
1312:
1309:
1306:
1303:
1300:
1297:
1294:
1291:
1288:
1285:
1282:
1279:
1276:
1273:
1270:
1267:
1264:
1261:
1258:
1255:
1252:
1249:
1246:
1243:
1240:
1237:
1234:
1231:
1228:
1225:
1222:
1219:
1216:
1213:
1210:
1207:
1204:
1201:
1198:
1195:
1192:
1189:
1186:
1183:
1180:
1177:
1174:
1171:
1168:
1165:
1162:
1159:
1156:
1153:
1150:
1147:
1144:
1141:
1138:
1135:
1132:
1129:
1126:
1123:
1120:
1117:
1114:
1111:
1108:
1105:
1102:
1099:
1096:
1093:
1090:
1087:
1084:
1081:
1078:
1075:
1072:
1069:
1066:
1063:
1060:
1057:
1054:
1051:
1048:
1045:
1042:
1039:
1036:
1033:
1030:
1027:
1024:
1021:
1018:
1015:
1012:
1009:
1006:
1003:
996:
992:
985:
984:
981:
978:
975:
972:
969:
966:
963:
960:
957:
954:
951:
948:
945:
942:
939:
936:
933:
930:
927:
924:
921:
918:
915:
912:
909:
906:
903:
900:
897:
894:
891:
888:
885:
882:
879:
876:
873:
870:
867:
864:
861:
858:
855:
852:
849:
846:
843:
840:
837:
834:
831:
828:
825:
822:
819:
816:
813:
810:
807:
804:
801:
798:
795:
792:
789:
786:
783:
780:
777:
774:
771:
768:
765:
762:
759:
756:
753:
750:
747:
744:
741:
738:
735:
732:
729:
726:
723:
720:
717:
714:
711:
708:
705:
702:
699:
696:
693:
690:
687:
684:
681:
678:
675:
672:
669:
666:
663:
660:
657:
654:
651:
648:
645:
642:
639:
636:
633:
630:
627:
624:
621:
618:
615:
612:
609:
606:
603:
600:
597:
594:
591:
588:
585:
582:
579:
576:
573:
570:
567:
564:
561:
558:
555:
552:
549:
546:
543:
540:
537:
534:
531:
528:
525:
522:
519:
516:
513:
510:
507:
504:
501:
498:
495:
492:
489:
486:
483:
480:
477:
474:
471:
468:
465:
462:
459:
456:
453:
450:
447:
444:
441:
438:
435:
432:
429:
426:
423:
420:
417:
414:
411:
408:
405:
402:
399:
396:
393:
390:
387:
384:
381:
378:
375:
372:
369:
366:
363:
345:
344:
341:
338:
335:
332:
329:
326:
323:
320:
317:
314:
311:
308:
305:
302:
299:
296:
293:
256:
255:
252:
219:
213:
200:
189:
180:
172:
155:
74:lambda calculus
70:
17:
12:
11:
5:
2844:
2842:
2834:
2833:
2823:
2822:
2817:
2816:
2777:Danvy, Olivier
2768:
2748:
2721:Danvy, Olivier
2711:
2684:Danvy, Olivier
2671:
2640:
2633:
2605:
2586:(4): 355β361.
2567:
2538:
2518:
2491:
2466:
2439:
2415:
2398:
2374:
2344:
2308:
2301:
2287:Flatt, Matthew
2270:
2263:
2243:
2239:call-by-value.
2232:
2205:
2204:
2202:
2199:
2175:
2172:
2166:
2146:
2143:
1761:
1433:
1002:
362:
292:
263:
251:
248:
215:Main article:
212:
209:
199:
196:
192:original paper
187:
179:
176:
171:
168:
154:
151:
148:
147:
144:
141:
137:
136:
133:
130:
126:
125:
119:
113:
109:
108:
102:
96:
92:
91:
88:
85:
69:
66:
15:
13:
10:
9:
6:
4:
3:
2:
2843:
2832:
2829:
2828:
2826:
2812:
2808:
2804:
2800:
2795:
2790:
2786:
2782:
2778:
2772:
2769:
2761:
2760:
2752:
2749:
2743:
2738:
2734:
2730:
2726:
2722:
2715:
2712:
2706:
2701:
2697:
2693:
2689:
2685:
2678:
2676:
2672:
2667:
2663:
2656:
2655:
2650:
2644:
2641:
2636:
2630:
2625:
2620:
2616:
2609:
2606:
2601:
2597:
2593:
2589:
2585:
2581:
2577:
2571:
2568:
2563:
2559:
2555:
2551:
2545:
2543:
2539:
2531:
2530:
2516:
2505:
2501:
2495:
2492:
2487:
2483:
2479:
2478:
2464:
2453:
2449:
2443:
2440:
2429:
2425:
2419:
2416:
2408:
2402:
2399:
2388:
2384:
2378:
2375:
2367:
2363:
2359:
2353:
2351:
2349:
2345:
2333:on 2021-07-17
2329:
2322:
2315:
2313:
2309:
2304:
2298:
2294:
2293:
2288:
2284:
2280:
2274:
2271:
2266:
2260:
2256:
2255:
2247:
2244:
2240:
2235:
2233:9781450328739
2229:
2225:
2221:
2217:
2210:
2207:
2200:
2198:
2196:
2192:
2173:
2170:
2164:
2156:
2152:
2144:
2142:
2140:
2136:
2132:
2127:
2125:
2121:
2117:
2113:
2112:compositional
1759:
1431:
1429:
1000:
990:
360:
358:
354:
350:
290:
287:
285:
284:John Reynolds
281:
277:
261:
249:
247:
245:
240:
239:
235:
232:
231:
227:
225:
218:
210:
208:
206:
197:
195:
193:
185:
177:
175:
169:
167:
165:
161:
152:
145:
142:
139:
138:
134:
131:
128:
127:
123:
120:
117:
114:
111:
110:
106:
103:
100:
97:
94:
93:
89:
86:
83:
82:
77:
75:
67:
65:
62:
56:
54:
50:
46:
42:
38:
37:call by value
34:
30:
26:
22:
2784:
2780:
2771:
2758:
2751:
2732:
2728:
2714:
2695:
2691:
2653:
2643:
2614:
2608:
2583:
2579:
2570:
2553:
2508:
2502:, Matthias;
2494:
2456:
2442:
2431:. Retrieved
2427:
2418:
2401:
2390:. Retrieved
2386:
2377:
2337:September 9,
2335:. Retrieved
2328:the original
2291:
2273:
2253:
2246:
2237:
2215:
2209:
2195:SECD machine
2148:
2145:Modern times
2139:SECD machine
2128:
2109:
1757:
1425:
986:
357:Peter Landin
346:
288:
253:
243:
241:
237:
236:
233:
229:
228:
220:
217:SECD machine
211:SECD machine
201:
183:
181:
178:CESK machine
173:
163:
159:
156:
121:
115:
112:Application
104:
98:
71:
61:CESK machine
57:
53:SECD machine
49:continuation
27:invented by
20:
18:
2787:(4): 1β67.
347:Values are
164:application
146:Exp, E', K
84:Transition
68:Description
21:CEK Machine
2433:2020-09-23
2392:2020-09-19
2201:References
198:CS machine
2794:0811.3231
2666:0909-0878
2529:-Calculus
2517:λ
2500:Felleisen
2477:-Calculus
2465:λ
2174:^
2171:ρ
2165:λ
262:λ
95:Variable
2825:Category
2723:(2007).
2600:34126862
2504:Friedman
2454:(1986).
997:continue
748:continue
709:continue
454:continue
353:invented
349:closures
184:pointers
160:argument
2811:7926360
991:, with
250:Origins
118:, E, K
101:, E, K
2809:
2664:
2631:
2598:
2424:"secd"
2299:
2261:
2230:
2135:Landin
2124:Tarski
1907:t'
1883:t'
1537:t'
1525:t'
1148:t'
1130:t'
763:t'
742:t'
242:where
238:N:M:ap
23:is an
2807:S2CID
2789:arXiv
2763:(PDF)
2658:(PDF)
2649:Danvy
2596:S2CID
2533:(PDF)
2410:(PDF)
2369:(PDF)
2331:(PDF)
2324:(PDF)
2131:Danvy
2120:Scott
2096:value
2036:value
2027:value
2012:value
2000:apply
1988:apply
1946:->
1901:->
1886:->
1859:->
1844:match
1838:value
1826:value
1787:value
1784:->
1781:value
1766:value
1744:value
1660:value
1651:value
1636:value
1624:apply
1612:apply
1570:->
1528:->
1501:->
1486:match
1480:value
1468:value
1415:->
1394:value
1304:'
1292:'
1289:->
1286:value
1271:value
1256:value
1244:apply
1226:apply
1223:->
1202:->
1181:->
1133:->
1097:->
1082:match
1073:'
1061:'
1058:->
1055:value
1037:value
970:value
865:value
850:value
838:apply
796:->
745:->
706:->
691:match
685:value
658:value
622:->
598:apply
595:->
538:->
496:match
490:value
481:value
433:value
412:value
385:value
367:value
351:, as
230:(M N)
116:(f e)
87:From
2662:ISSN
2629:ISBN
2339:2020
2297:ISBN
2259:ISBN
2228:ISBN
2102:eval
2087:term
2075:main
1976:eval
1958:eval
1904:eval
1862:List
1850:with
1829:list
1811:term
1799:eval
1763:type
1750:eval
1735:term
1723:main
1699:eval
1600:eval
1582:eval
1504:List
1492:with
1471:list
1453:term
1441:eval
1400:eval
1385:term
1373:main
1346:eval
1205:eval
1184:eval
1106:List
1088:with
1040:list
1022:term
1010:eval
995:and
993:cont
976:eval
961:term
949:main
922:eval
880:cont
799:eval
718:List
697:with
676:cont
661:list
643:term
631:eval
541:eval
508:with
466:cont
439:cont
421:cont
415:list
406:term
394:cont
391:type
388:list
379:term
364:type
342:term
336:term
324:term
297:term
294:type
278:and
31:and
2799:doi
2737:doi
2700:doi
2619:doi
2588:doi
2558:doi
2482:doi
2220:doi
2137:'s
2126:).
2072:let
2048:FUN
2042:let
1997:and
1967:and
1949:let
1928:APP
1895:fun
1889:FUN
1880:ABS
1868:nth
1853:IND
1796:rec
1793:let
1772:FUN
1720:let
1672:CLO
1666:let
1621:and
1591:and
1573:let
1552:APP
1531:CLO
1522:ABS
1510:nth
1495:IND
1438:rec
1435:let
1409:fun
1370:let
1319:CLO
1313:let
1241:and
1217:fun
1196:fun
1163:APP
1142:CLO
1127:ABS
1112:nth
1091:IND
1007:rec
1004:let
946:let
895:CLO
889:let
835:and
778:APP
757:CLO
739:ABS
724:nth
700:IND
628:and
451:rec
448:let
373:CLO
355:by
330:APP
318:ABS
309:int
303:IND
162:or
90:To
2827::
2805:.
2797:.
2783:.
2731:.
2727:.
2696:10
2694:.
2690:.
2674:^
2627:.
2594:.
2584:11
2582:.
2541:^
2450:;
2426:.
2385:.
2360:;
2347:^
2311:^
2285:;
2281:;
2236:,
2226:,
2069:v1
2063:in
2060:v0
2021:v1
2006:v0
1994:v1
1991:v0
1985:in
1979:t1
1970:v1
1961:t0
1952:v0
1940:t1
1934:t0
1922:))
1916:::
1775:of
1711:::
1708:v1
1696:in
1693:v0
1687:))
1645:v1
1630:v0
1618:v1
1615:v0
1609:in
1603:t1
1594:v1
1585:t0
1576:v0
1564:t1
1558:t0
1358:::
1355:v1
1343:in
1340:v0
1334:))
1265:v1
1250:v0
1238:))
1232:v1
1229:v0
1220:v1
1208:t1
1199:v0
1187:t0
1175:t1
1169:t0
1157:))
982:C0
934:::
931:v1
919:in
916:v0
910:))
859:v1
844:v0
832:))
817:t1
811:C2
802:t0
790:t1
784:t0
772:))
613:C0
604:v1
601:v0
592:v1
589:),
580:v0
574:C1
568:))
559:v0
553:C1
544:t1
535:v0
532:),
517:t1
511:C2
445:C0
430:of
427:C1
403:of
400:C2
376:of
359::
333:of
321:of
306:of
244:ap
55:.
19:A
2813:.
2801::
2791::
2785:4
2745:.
2739::
2733:9
2708:.
2702::
2668:.
2637:.
2621::
2602:.
2590::
2564:.
2560::
2488:.
2484::
2436:.
2412:.
2395:.
2371:.
2341:.
2305:.
2267:.
2222::
2105:t
2099:=
2093::
2090:)
2084::
2081:t
2078:(
2066:f
2057:=
2054:)
2051:f
2045:(
2039:=
2033::
2030:)
2024::
2018:(
2015:)
2009::
2003:(
1982:e
1973:=
1964:e
1955:=
1943:)
1937:,
1931:(
1925:|
1919:e
1913:v
1910:(
1898:v
1892:(
1877:|
1874:n
1871:e
1865:.
1856:n
1847:t
1841:=
1835::
1832:)
1823::
1820:e
1817:(
1814:)
1808::
1805:t
1802:(
1790:)
1778:(
1769:=
1753:t
1747:=
1741::
1738:)
1732::
1729:t
1726:(
1717:)
1714:e
1705:(
1702:t
1690:=
1684:e
1681:,
1678:t
1675:(
1669:(
1663:=
1657::
1654:)
1648::
1642:(
1639:)
1633::
1627:(
1606:e
1597:=
1588:e
1579:=
1567:)
1561:,
1555:(
1549:|
1546:)
1543:e
1540:,
1534:(
1519:|
1516:n
1513:e
1507:.
1498:n
1489:t
1483:=
1477::
1474:)
1465::
1462:e
1459:(
1456:)
1450::
1447:t
1444:(
1421:)
1418:v
1412:v
1406:(
1403:t
1397:=
1391::
1388:)
1382::
1379:t
1376:(
1367:k
1364:)
1361:e
1352:(
1349:t
1337:=
1331:e
1328:,
1325:t
1322:(
1316:(
1310:=
1307:a
1301::
1298:)
1295:a
1283::
1280:k
1277:(
1274:)
1268::
1262:(
1259:)
1253::
1247:(
1235:k
1214:(
1211:e
1193:(
1190:e
1178:)
1172:,
1166:(
1160:|
1154:e
1151:,
1145:(
1139:(
1136:k
1124:|
1121:)
1118:n
1115:e
1109:.
1103:(
1100:k
1094:n
1085:t
1079:=
1076:a
1070::
1067:)
1064:a
1052::
1049:k
1046:(
1043:)
1034::
1031:e
1028:(
1025:)
1019::
1016:t
1013:(
979:t
973:=
967::
964:)
958::
955:t
952:(
943:k
940:)
937:e
928:(
925:t
913:=
907:e
904:,
901:t
898:(
892:(
886:=
883:)
877::
874:k
871:(
868:)
862::
856:(
853:)
847::
841:(
829:k
826:,
823:e
820:,
814:(
808:(
805:e
793:)
787:,
781:(
775:|
769:e
766:,
760:(
754:(
751:k
736:|
733:)
730:n
727:e
721:.
715:(
712:k
703:n
694:t
688:=
682::
679:)
673::
670:k
667:(
664:)
655::
652:e
649:(
646:)
640::
637:t
634:(
625:v
619:v
616:,
610:|
607:k
586:k
583:,
577:(
571:|
565:k
562:,
556:(
550:(
547:e
529:k
526:,
523:e
520:,
514:(
505:v
502:,
499:c
493:=
487::
484:)
478::
475:v
472:(
469:)
463::
460:c
457:(
442:|
436:*
424:|
418:*
409:*
397:=
382:*
370:=
339:*
327:|
315:|
300:=
188:Ο
122:f
105:t
99:x
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.