A Brief Overview of the Pawns Programming Language
Lee Naish

TL;DR
Pawns is a novel programming language that integrates pure functional and imperative paradigms with compiler-verified effects and sharing annotations, enabling safer and clearer code management.
Contribution
It introduces a unified language supporting both paradigms with effect and sharing annotations, and a sharing analysis compiler to ensure code safety and clarity.
Findings
Supports both functional and imperative programming seamlessly
Compiler performs sharing analysis to verify effects and dependencies
Requires explicit annotations for effects and sharing in code
Abstract
Pawns is a programming language under development which supports pure functional programming (including algebraic data types, higher order programming and parametric polymorphism) and imperative programming (including pointers, destructive update of shared data structures and global variables), integrated so each can call the other and with purity checked by the compiler. For pure functional code the programmer need not understand the representation of the data structures. For imperative code the representation must be understood and all effects and dependencies must be documented in the code. For example, if a function may update one of its arguments, this must be declared in the function type signature and noted where the function is called. A single update operation may affect several variables due to sharing of representations (pointer aliasing). Pawns code requires all affected…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems
