Notions of Stack-manipulating Computation and Relative Monads
This program is tentative and subject to change.
We present \emph{relative monads} in a polymorphic call-by-push-value (CBPV) calculus as a common abstraction for stack-based implementations of effects. This brings the powerful abstraction of monadic programming to lower-level stack-based languages. We demonstrate the applicability of the relative monad abstraction by modeling stack-based implementations of common monads used in functional programming as relative monads such as exceptions, state, continuations and free monads.
Next, we demonstrate that relative monads in CBPV are more compositional than monads in pure languages. First, while the use of monads allows for the use of embedded call-by-value programming in a pure language using do-notation, in contrast a relative monad allows for embedded CBPV programming within a CBPV programming language. This means that all code in CBPV can be reinterpreted to work with an arbitrary relative monad. Inspired by this, we extend our CBPV calculus with a new feature called ``monadic blocks'' that allow for reinterpretation of code with respect to any user-defined monad. We then show that monadic blocks allow us to take any monad implementation in CBPV and automatically derive the corresponding monad transformer, a process which is not automatic for monads in pure languages.
All examples are executable in Zydeco, a stack-based functional language we have designed and implemented based on polymorphic CBPV and extended with monadic blocks.
This program is tentative and subject to change.
Fri 17 OctDisplayed time zone: Perth change
10:30 - 12:15 | |||
10:30 15mTalk | Fast Client-Driven CFL-Reachability via Regularization-Based Graph Simplification OOPSLA Chenghang Shi SKLP, Institute of Computing Technology, CAS, Dongjie He Chongqing University, China, Haofeng Li SKLP, Institute of Computing Technology, CAS, Jie Lu SKLP, Institute of Computing Technology, CAS, China, Lian Li Institute of Computing Technology at Chinese Academy of Sciences; University of Chinese Academy of Sciences, Jingling Xue University of New South Wales | ||
10:45 15mTalk | Flexible and Expressive Typed Path Patterns for GQL OOPSLA Wenjia Ye National University of Singapore, Matías Toro University of Chile, Tomás Diaz University of Chile, Bruno C. d. S. Oliveira University of Hong Kong, Manuel Rigger National University of Singapore, Claudio Gutierrez DCC, Universidad de Chile & IMFD, Domagoj Vrgoč Pontificia Universidad Católica de Chile & IMFD Chile | ||
11:00 15mTalk | Quantified Underapproximation via Labeled Bunches OOPSLA Lang Liu Illinois Institute of Technology, Farzaneh Derakhshan Illinois Institute of Technology, Limin Jia Carnegie Mellon University, Gabriel A. Moreno Carnegie Mellon University Software Engineering Institute, Mark Klein Carnegie Mellon University | ||
11:15 15mTalk | HpC: A Calculus for Hybrid and Mobile Systems OOPSLA Xiong Xu Institute of Software, Chinese Academy of Sciences, Jean-Pierre Talpin INRIA, France, Shuling Wang Institute of Software, Chinese Academy of Sciences, Bohua Zhan Huawei Technologies Co., Ltd., Xinxin Liu Institute of software, Chinese academy of sciences, Naijun Zhan Peking University | ||
11:30 15mTalk | Notions of Stack-manipulating Computation and Relative Monads OOPSLA Yuchen Jiang University of Michigan, Runze Xue University of Michigan; University of Cambridge; Indiana University, Max S. New University of Michigan |