You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: bib/book.bib
+36Lines changed: 36 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,22 @@
1
+
@inproceedings{compilingWithoutCont,
2
+
author = {Maurer, Luke and Downen, Paul and Ariola, Zena M. and Peyton Jones, Simon},
3
+
title = {Compiling without Continuations},
4
+
year = {2017},
5
+
isbn = {9781450349888},
6
+
publisher = {Association for Computing Machinery},
7
+
address = {New York, NY, USA},
8
+
url = {https://doi.org/10.1145/3062341.3062380},
9
+
doi = {10.1145/3062341.3062380},
10
+
abstract = {Many fields of study in compilers give rise to the concept of a join point—a place where different execution paths come together. Join points are often treated as functions or continuations, but we believe it is time to study them in their own right. We show that adding join points to a direct-style functional intermediate language is a simple but powerful change that allows new optimizations to be performed, including a significant improvement to list fusion. Finally, we report on recent work on adding join points to the intermediate language of the Glasgow Haskell Compiler.},
11
+
booktitle = {Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation},
12
+
pages = {482–494},
13
+
numpages = {13},
14
+
keywords = {CPS, ANF, Haskell, GHC, list fusion, intermediate languages},
15
+
location = {Barcelona, Spain},
16
+
series = {PLDI 2017}
17
+
}
18
+
19
+
1
20
@article{jones1992implementing,
2
21
author = {Jones, Peyton and L, Simon and Peyton Jones, Simon},
3
22
title = {Implementing Lazy Functional Languages on Stock Hardware: The Spineless Tagless G-machine},
title = {Making a Fast Curry: Push/Enter vs. Eval/Apply for Higher-Order Languages},
267
+
year = {2004},
268
+
isbn = {1581139055},
269
+
publisher = {Association for Computing Machinery},
270
+
address = {New York, NY, USA},
271
+
url = {https://doi.org/10.1145/1016850.1016856},
272
+
doi = {10.1145/1016850.1016856},
273
+
abstract = {Higher-order languages that encourage currying are implemented using one of two basic evaluation models: push/enter or eval/apply. Implementors use their intuition and qualitative judgements to choose one model or the other.Our goal in this paper is to provide, for the first time, a more substantial basis for this choice, based on our qualitative and quantitative experience of implementing both models in a state-of-the-art compiler for Haskell.Our conclusion is simple, and contradicts our initial intuition: compiled implementations should use eval/apply.},
274
+
booktitle = {Proceedings of the Ninth ACM SIGPLAN International Conference on Functional Programming},
0 commit comments