GPCE 2021
Sun 17 - Fri 22 October 2021 Chicago, Illinois, United States
co-located with SPLASH 2021
Mon 18 Oct 2021 09:30 - 09:45 at Zurich C - SLE/GPCE Session 5 Chair(s): Eelco Visser
Mon 18 Oct 2021 17:30 - 17:45 at Zurich C - SLE/GPCE Session 5 Chair(s): Paddy Krishnan

In metaprogramming, code generation and code analysis are complementary. Traditionally, principled metaprogramming extensions for programming languages, like MetaML and BER MetaOCaml, offer strong foundations for code generation but lack equivalent support for code analysis. Similarly, existing macro systems are biased towards the code generation aspect.

In this work, we present a calculus for macros featuring both code generation and code analysis. The calculus directly models separate compilation of macros, internalizing a commonly neglected aspect of macros. The system ensures that the generated code is well-typed and hygienic.

We implement our system in Scala 3, provide a formalization, and prove its soundness.

Mon 18 Oct

Displayed time zone: Central Time (US & Canada) change

09:00 - 10:20
SLE/GPCE Session 5SLE / GPCE at Zurich C +8h
Chair(s): Eelco Visser Delft University of Technology
09:00
15m
Talk
Type-safe generation of modules in applicative and generative stylesVirtual
GPCE
Yuhi Sato University of Tsukuba, Yukiyoshi Kameyama University of Tsukuba
09:15
15m
Talk
HACCLE: Metaprogramming for Secure Multi-Party ComputationVirtual
GPCE
Yuyan Bao Purdue University, Kirshanthan Sundararajah Purdue University, Raghav Malik Purdue University, Qianchuan Ye Purdue University, Christopher Wagner Purdue University, Nouraldin Jaber Purdue University, Fei Wang Purdue University, Mohammad Hassan Ameri Purdue university, Donghang Lu Purdue University, Alexander Seto Purdue University, Benjamin Delaware Purdue University, Roopsha Samanta Purdue University, Aniket Kate Purdue University, Christina Garman Purdue University, Jeremiah Blocki Purdue University, Pierre-David Letourneau Reservoir Labs, Benoit Meister Reservoir Labs, Jonathan Springer Reservoir Labs, Tiark Rompf Purdue University, Milind Kulkarni Purdue University
09:30
15m
Talk
Multi-Stage Programming with Generative and Analytical MacrosVirtualGPCE Best Paper Award
GPCE
09:45
15m
Talk
Metaprogramming with CombinatorsVirtual
GPCE
Mahshid Shahmohammadian Drexel University, Geoffrey Mainland Drexel University
10:00
20m
Live Q&A
Discussion, Questions and Answers
SLE

17:00 - 18:20
SLE/GPCE Session 5GPCE / SLE at Zurich C
Chair(s): Paddy Krishnan Oracle Labs, Australia
17:00
15m
Talk
Type-safe generation of modules in applicative and generative stylesVirtual
GPCE
Yuhi Sato University of Tsukuba, Yukiyoshi Kameyama University of Tsukuba
17:15
15m
Talk
HACCLE: Metaprogramming for Secure Multi-Party ComputationVirtual
GPCE
Yuyan Bao Purdue University, Kirshanthan Sundararajah Purdue University, Raghav Malik Purdue University, Qianchuan Ye Purdue University, Christopher Wagner Purdue University, Nouraldin Jaber Purdue University, Fei Wang Purdue University, Mohammad Hassan Ameri Purdue university, Donghang Lu Purdue University, Alexander Seto Purdue University, Benjamin Delaware Purdue University, Roopsha Samanta Purdue University, Aniket Kate Purdue University, Christina Garman Purdue University, Jeremiah Blocki Purdue University, Pierre-David Letourneau Reservoir Labs, Benoit Meister Reservoir Labs, Jonathan Springer Reservoir Labs, Tiark Rompf Purdue University, Milind Kulkarni Purdue University
17:30
15m
Talk
Multi-Stage Programming with Generative and Analytical MacrosVirtualGPCE Best Paper Award
GPCE
17:45
15m
Talk
Metaprogramming with CombinatorsVirtual
GPCE
Mahshid Shahmohammadian Drexel University, Geoffrey Mainland Drexel University
18:00
20m
Live Q&A
Discussion, Questions and Answers
SLE