Scheme Macros for Non-linear Pattern Matching with Backtracking for Non-free Data Types
Satoshi Egi

TL;DR
This paper introduces a compilation method for Egison's non-linear pattern matching with backtracking, enabling its integration into functional languages like Scheme, and demonstrates improved performance over the original Egison interpreter.
Contribution
It presents a novel translation approach for Egison pattern matching into standard functional language constructs, facilitating broader implementation and efficiency.
Findings
Egison pattern matching embedded in Scheme is faster than the original Egison interpreter.
The proposed method successfully translates Egison pattern matching into Scheme macros.
Benchmark results confirm performance improvements.
Abstract
Pattern matching is an important feature of programming languages for data abstraction. Many pattern-matching extensions have been proposed and implemented for extending the range of data types to which pattern matching is applicable. Among them, the pattern-matching system proposed by Egi and Nishiwaki features practical pattern matching for non-free data types by providing an extensible non-linear pattern-matching facility with backtracking. However, they implemented their proposal only in an interpreter of the Egison programming language, and a method for compiling pattern-matching expressions of Egison was not discussed. This paper proposes a method for translating a program that contains pattern-matching expressions of Egison to a program that contains only the existing syntax constructs of functional programming languages. This method is based on the three key ideas: (i)…
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAlgorithms and Data Compression · Advanced Database Systems and Queries · Data Management and Algorithms
