SPLASH Workshop/Symposium Events 2025
2025 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity (SPLASH Events 2025)
Powered by
Conference Publishing Consulting

26th ACM SIGPLAN International Workshop on Scheme and Functional Programming (Scheme 2025), October 12–18, 2025, Singapore, Singapore

Scheme 2025 – Proceedings

Contents - Abstracts - Authors

26th ACM SIGPLAN International Workshop on Scheme and Functional Programming (Scheme 2025)

Frontmatter

Title Page


Welcome from the Chairs
Welcome to the 26th ACM SIGPLAN International Workshop on Scheme and Functional Programming (Scheme 2025). The Scheme and Functional Programming Workshop is a yearly meeting of programming language practitioners who share an aesthetic sense embodied by the Algorithmic Language Scheme: universality through minimalism and flexibility through rigorous design.

Scheme 2025 Organization


Invited Contributions

Scheme and New Frontiers for Language Design (Keynote)
Michael D. Adams
(National University of Singapore, Singapore)
Scheme has long served as a vibrant platform for exploring programming-language ideas and advancing programming-language concepts. From contracts to macros and from continuations to growing languages, it is a dynamic environment for reconceptualizing how we program.
In this keynote, I present several underexplored language-design directions that hold significant potential. Due to Scheme's rich history and design, it is uniquely positioned to lead the development of these ideas. For example, supporting more sophisticated continuation structures and more expressive macro systems. These directions point to new frontiers where we can push the boundaries of how programs are structured and how we think about programming.

Publisher's Version
Scheme Reports at Fifty: Where Do We Go from Here? (Status Update from the R7RS Large Committee)
Daphne Preston-Kendal
(Scheme Working Groups, Germany)
On 22 December 2025, Scheme will celebrate its 50th birthday with the anniversary of the publication of the first Scheme report. As chair of the current Scheme reports working group, I have the daunting task of laying a foundation for the Scheme language to successfully move onwards into its next fifty years.
The recent development of this series of reports has been marked by an acrimonious split over R6RS vs R7RS small, followed by the prolonged and still ongoing gestation of the R7RS large report. The Scheme language itself survived these battles: new Schemers are still discovering the language; new projects in Scheme are still pushing forward the cutting edge of computer science and engineering practice; the landscape of implementations is as lively as ever. But the Scheme reports find themselves in new surroundings, one into which R7RS large has to adapt itself.
What function does the Scheme report serve for the community now? What does the community want to see in the Scheme report, and how do we continue to reconcile diverging visions for the future of the language? How do we build a working group that represents the diversity of opinions on the nature of Scheme and the best direction for its future? This presentation will be an invitation to discuss these questions and more, as well as an invitation to Schemers of all generations to join us in building R7RS large as a good home for all Schemers to live in.

Publisher's Version

Papers

Checking a Denotational Semantics of Scheme in Agda
Peter D. Mosses
(Delft University of Technology, Netherlands; Swansea University, UK)
The authoritative standards for the algorithmic language Scheme are the Scheme reports. Most of the revised reports include a denotational semantics for primitive Scheme expressions and selected procedures.
This paper first traces the history of the semantic definition, and summarizes its form and content. It then presents a shallow embedding of denotational semantics into the functional programming language Agda. The embedding is illustrated by showing how fragments of the denotational semantics given in the fifth revised Scheme report (R5RS) are embedded into Agda.
Type-checking the Agda embedding of a semantics indirectly tests its wellformedness. Agda reported several issues with the embedding of the complete denotational semantics from R5RS. The paper suggests changes to the semantics that would address the reported issues, as well as further changes that could improve the conciseness and perspicuity of the definitions.
This paper is dedicated to the memory of Christopher Strachey (1916–1975)


Publisher's Version Published Artifact Artifacts Available
Rewriting Macros on the Fly: A Modular Approach to Administrative Reduction during Expansion
Paul Downen
(University of Massachusetts at Lowell, USA)
Administrative reductions are extra steps introduced by program transformations, usually as a form of bookkeeping new information needed by the transformation. While this can keep transformations themselves simple and small, they have the unfortunate effect of making the programs they produce more costly in terms of run-time resources and---worse still---cognitive resources used by humans trying to read and debug their code. This paper introduces a general-purpose technique for eliminating administrative expressions in macros using localized rewriting rules. The result is a system of writing and rewriting compositional macros (both in the sense that the macros are defined as compositional functions, and that several different macros can be combined without administrative reductions) that can be extended by the programmer with new functionality.

Publisher's Version Info
Fast and Extensible Hybrid Embeddings with Micros
Sean Bocirnea and William J. Bowman
(University of British Columbia, Canada)
Macro embedding is a popular approach to defining extensible shallow embeddings of object languages in Scheme-like host languages. While macro embedding has even been shown to enable implementing extensible typed languages in systems like Racket, it comes at a cost: compile-time performance. In this paper, we revisit micros—syntax to intermediate representation (IR) transformers, rather than source syntax to source syntax transformers (macros). Micro embedding enables stopping at an IR, producing a deep embedding and enabling high performance compile-time functions over an efficient IR, before shallowly embedding the IR back into source syntax. Combining micros with several design patterns to enable the IR and functions over it to be extensible, we achieve extensible hybrid embedding of statically typed languages with significantly improved compile-time compared to macro-embedding approaches. We describe our design patterns and propose new abstractions packaging these patterns.

Publisher's Version
Hygienic Macros via Staged Environment Machines (Position Paper)
Yuito Murase
(Kyoto University, Japan)
The relationship between staged computation and procedural macros is often mentioned in the literature. However, this relationship is not as straightforward as it may appear. Existing approaches tend to compromise the role of macros as syntactic extensions, focusing primarily on staged type systems to enforce the static safety of macros.
In this position paper, we propose a different approach to connecting procedural macros and staged computation: to understand the semantic aspect of procedural macros through the lens of staged computation. We observe that the notion of a syntactic environment in hygienic macros has a natural counterpart in a staged extension of environment machines. Building on this observation, we sketch our draft design of an environment machine for a Lisp-like language with an explicit-renaming macro facility à la Clinger.

Publisher's Version

proc time: 0.17