initial commit

This commit is contained in:
myo
2026-05-27 18:04:47 +02:00
commit 575c6ec470
15 changed files with 165 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
@inproceedings{shaikhha_array_dps_2017,
author = {Shaikhha, Amir and Fitzgibbon, Andrew and Peyton Jones, Simon and Vytiniotis, Dimitrios},
title = {Destination-passing style for efficient memory management},
year = {2017},
isbn = {9781450351812},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3122948.3122949},
doi = {10.1145/3122948.3122949},
abstract = {We show how to compile high-level functional array-processing programs, drawn from image processing and machine learning, into C code that runs as fast as hand-written C. The key idea is to transform the program to destination-passing style, which in turn enables a highly-efficient stack-like memory allocation discipline.},
booktitle = {Proceedings of the 6th ACM SIGPLAN International Workshop on Functional High-Performance Computing},
pages = {1223},
numpages = {12},
keywords = {Array Programming, Destination-Passing Style},
location = {Oxford, UK},
series = {FHPC 2017}
}
+18
View File
@@ -0,0 +1,18 @@
@article{bagrel_dp_2025,
author = {Bagrel, Thomas and Spiwack, Arnaud},
title = {Destination Calculus: A Linear $𝜆$-Calculus for Purely Functional Memory Writes},
year = {2025},
issue_date = {April 2025},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {9},
number = {OOPSLA1},
url = {https://doi.org/10.1145/3720423},
doi = {10.1145/3720423},
abstract = {Destination passing —aka. out parameters— is taking a parameter to fill rather than returning a result from a function. Due to its apparently imperative nature, destination passing has struggled to find its way to pure functional programming. In this paper, we present a pure functional calculus with destinations at its core. Our calculus subsumes all the similar systems, and can be used to reason about their correctness or extension. In addition, our calculus can express programs that were previously not known to be expressible in a pure language. This is guaranteed by a modal type system where modes are used to manage both linearity and scopes. Type safety of our core calculus was proved formally with the Coq proof assistant.},
journal = {Proc. ACM Program. Lang.},
month = apr,
articleno = {89},
numpages = {27},
keywords = {Destination Passing, Functional Programming, Linear Types, Pure Language}
}
+1
View File
@@ -0,0 +1 @@
\bibliography{bibliography/acm_3122948.3122949,bibliography/acm_3720423,bibliography/minamide}
+16
View File
@@ -0,0 +1,16 @@
@inproceedings{minamide_holes_1998,
author = {Minamide, Yasuhiko},
title = {A functional representation of data structures with a hole},
year = {1998},
isbn = {0897919793},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/268946.268953},
doi = {10.1145/268946.268953},
abstract = {Data structures with a hole, in other words data structures with an uninitialized field, are useful to write efficient programs: they enable us to construct functional data structures flexibly and write functions such as append and map as tail recursive functions. In this paper we present an approach to introducing data structures with a hole into call-by-value functional programming languages like ML. Data structures with a hole are formalized as a new form of λ-abstraction called hole abstraction. The novel features of hole abstraction are that expressions inside hole abstraction are evaluated and application is implemented by destructive update of a hole. We present a simply typed call-by-value λ-calculus extended with hole abstractions. Then we show a compilation method of hole abstraction and prove correctness of the compilation.},
booktitle = {Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
pages = {7584},
numpages = {10},
location = {San Diego, California, USA},
series = {POPL '98}
}