Skip to content

Commit 08c43c9

Browse files
nkruschgithub-actions[bot]
authored andcommitted
[create-pull-request] automated change
1 parent c4cf9fd commit 08c43c9

File tree

6 files changed

+11
-8
lines changed

6 files changed

+11
-8
lines changed

data/desc.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
Staged Compilation with Module Functors
2-
Chiang, Tsung-Ju, et al. “Staged Compilation with Module Functors.” Proceedings of the ACM on Programming Languages, vol. 8, no. ICFP, Aug. 2024, pp. 693–727. Crossref, https://doi.org/10.1145/3674649.
3-
Multi-stage programming has been used in a wide variety of domains to eliminate the tension between abstraction and performance. However, the interaction of multi-stage programming features with features for programming-in-the-large remains understudied, hindering the full integration of multi-stage programming support into existing languages, and limiting the effective use of staging in large programs. We take steps to remedy the situation by studying the extension of MacoCaml, a recent OCaml extension that supports compile-time code generation via macros and quotations , with module functors, the key mechanism in OCaml for assembling program components into larger units. We discuss design choices related to evaluation order, formalize our calculus via elaboration, and show that the design enjoys key metatheoretical properties: syntactic type soundness, elaboration soundness, and phase distinction. We believe that this study lays a foundation for the continued exploration and implementation of the OCaml macro system.
1+
The Ultimate Conditional Syntax
2+
Cheng, Luyu, and Lionel Parreaux. “The Ultimate Conditional Syntax.” Proceedings of the ACM on Programming Languages, vol. 8, no. OOPSLA2, Oct. 2024, pp. 988–1017. Crossref, https://doi.org/10.1145/3689746.
3+
Functional programming languages typically support expressive pattern-matching syntax allowing programmers to write concise and type-safe code, especially appropriate for manipulating algebraic data types. Many features have been proposed to enhance the expressiveness of stock pattern-matching syntax, such as pattern bindings, pattern alternatives (a.k.a. disjunction), pattern conjunction, view patterns, pattern guards, pattern synonyms, active patterns, ‘if-let’ patterns, multi-way if-expressions, etc. In this paper, we propose a new pattern-matching syntax that is both more expressive and (we argue) simpler and more readable than previous alternatives. Our syntax supports parallel and nested matches interleaved with computations and intermediate bindings. This is achieved through a form of nested multi-way if-expressions with a condition-splitting mechanism to factor common conditional prefixes as well as a binding technique we call conditional pattern flowing. We motivate this new syntax with many examples in the setting of MLscript, a new ML-family programming language. We describe a straightforward desugaring pass from our rich source syntax into a minimal core syntax that only supports flat patterns and has an intuitive small-step semantics. We then provide a translation from the core syntax into a normalized syntax without backtracking, which is more amenable to coverage checking and compilation, and formally prove that our translation is semantics-preserving. We view this work as a step towards rethinking pattern matching to make it more powerful and natural to use. Our syntax can easily be integrated, in part or in whole, into existing as well as future programming language designs.

data/history.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,5 @@ https://doi.org/10.1145/3607830
4242
https://doi.org/10.1145/3649859
4343
https://doi.org/10.1145/3632398
4444
https://doi.org/10.1145/3689725
45-
https://doi.org/10.1145/3674649
45+
https://doi.org/10.1145/3674649
46+
https://doi.org/10.1145/3689746

data/next.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
https://doi.org/10.1145/3674649
1+
https://doi.org/10.1145/3689746

data/past.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ https://doi.org/10.1145/3607830
55
https://doi.org/10.1145/3649859
66
https://doi.org/10.1145/3632398
77
https://doi.org/10.1145/3689725
8-
https://doi.org/10.1145/3674649
8+
https://doi.org/10.1145/3674649
9+
https://doi.org/10.1145/3689746

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ The PL Reading Group is a regular meeting of [ΔΛΔ](https://augusta.presence.i
2929
| 5. | February 14 | Choral: Object-oriented Choreographic Programming | UH 227 |
3030
| 6. | February 21 | A Modal Type Theory of Expected Cost in Higher-Order Probabilistic Programs | UH 227 |
3131
| 7. | February 28 | Staged Compilation with Module Functors | UH 227 |
32-
| 9. | March 14 | Paper 8 discussion | UH 227 |
32+
| 9. | March 14 | The Ultimate Conditional Syntax | UH 227 |
3333
| 10. | March 21 | Paper 9 discussion | UH 227 |
3434
| 11. | March 28 | Paper 10 discussion | UH 227 |
3535
| 12. | April 4 | Paper 11 discussion | UH 227 |

docs/papers.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
4. Kavanagh, Ryan, and Brigitte Pientka. “Message-Observing Sessions.” Proceedings of the ACM on Programming Languages, vol. 8, no. OOPSLA1, Apr. 2024, pp. 1351–79. Crossref, <a href='https://doi.org/10.1145/3649859' target='_blank'>https://doi.org/10.1145/3649859</a>.
55
5. Giallorenzo, Saverio, et al. “Choral: Object-Oriented Choreographic Programming.” ACM Transactions on Programming Languages and Systems, vol. 46, no. 1, Jan. 2024, pp. 1–59. Crossref, <a href='https://doi.org/10.1145/3632398' target='_blank'>https://doi.org/10.1145/3632398</a>.
66
6. Rajani, Vineet, et al. “A Modal Type Theory of Expected Cost in Higher-Order Probabilistic Programs.” Proceedings of the ACM on Programming Languages, vol. 8, no. OOPSLA2, Oct. 2024, pp. 389–414. Crossref, <a href='https://doi.org/10.1145/3689725' target='_blank'>https://doi.org/10.1145/3689725</a>.
7-
7. Chiang, Tsung-Ju, et al. “Staged Compilation with Module Functors.” Proceedings of the ACM on Programming Languages, vol. 8, no. ICFP, Aug. 2024, pp. 693–727. Crossref, <a href='https://doi.org/10.1145/3674649' target='_blank'>https://doi.org/10.1145/3674649</a>.
7+
7. Chiang, Tsung-Ju, et al. “Staged Compilation with Module Functors.” Proceedings of the ACM on Programming Languages, vol. 8, no. ICFP, Aug. 2024, pp. 693–727. Crossref, <a href='https://doi.org/10.1145/3674649' target='_blank'>https://doi.org/10.1145/3674649</a>.
8+
8. Cheng, Luyu, and Lionel Parreaux. “The Ultimate Conditional Syntax.” Proceedings of the ACM on Programming Languages, vol. 8, no. OOPSLA2, Oct. 2024, pp. 988–1017. Crossref, <a href='https://doi.org/10.1145/3689746' target='_blank'>https://doi.org/10.1145/3689746</a>.

0 commit comments

Comments
 (0)