{"title":"纯模式微积分在de Bruijn","authors":"Alexis Martín, Alejandro Ríos, Andrés Viso","doi":"10.1016/j.entcs.2020.08.006","DOIUrl":null,"url":null,"abstract":"<div><p>It is well-known in the field of programming languages that dealing with variable names and binders may lead to conflicts such as undesired captures when implementing interpreters or compilers. This situation has been overcome by resorting to de Bruijn indices for calculi where binders capture only one variable name, like the <em>λ</em>-calculus. The advantage of this approach relies on the fact that so-called <em>α</em>-equivalence becomes syntactical equality when working with indices.</p><p>In recent years pattern calculi have gained considerable attention given their expressiveness. They turn out to be notoriously convenient to study the foundations of modern functional programming languages modeling features like pattern matching, path polymorphism, pattern polymorphism, etc. However, the literature falls short when it comes to dealing with <em>α</em>-conversion and binders capturing simultaneously several variable names. Such is the case of the <em>Pure Pattern Calculus</em> (<span>PPC</span>): a natural extension of <em>λ</em>-calculus that allows to abstract virtually any term.</p><p>This paper extends de Bruijn's ideas to properly overcome the multi-binding problem by introducing a novel presentation of <span>PPC</span> with bidimensional indices, in an effort to implement a prototype for a typed functional programming language based on <span>PPC</span> that captures path polymorphism.</p></div>","PeriodicalId":38770,"journal":{"name":"Electronic Notes in Theoretical Computer Science","volume":"351 ","pages":"Pages 95-113"},"PeriodicalIF":0.0000,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/j.entcs.2020.08.006","citationCount":"0","resultStr":"{\"title\":\"Pure Pattern Calculus à la de Bruijn\",\"authors\":\"Alexis Martín, Alejandro Ríos, Andrés Viso\",\"doi\":\"10.1016/j.entcs.2020.08.006\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<div><p>It is well-known in the field of programming languages that dealing with variable names and binders may lead to conflicts such as undesired captures when implementing interpreters or compilers. This situation has been overcome by resorting to de Bruijn indices for calculi where binders capture only one variable name, like the <em>λ</em>-calculus. The advantage of this approach relies on the fact that so-called <em>α</em>-equivalence becomes syntactical equality when working with indices.</p><p>In recent years pattern calculi have gained considerable attention given their expressiveness. They turn out to be notoriously convenient to study the foundations of modern functional programming languages modeling features like pattern matching, path polymorphism, pattern polymorphism, etc. However, the literature falls short when it comes to dealing with <em>α</em>-conversion and binders capturing simultaneously several variable names. Such is the case of the <em>Pure Pattern Calculus</em> (<span>PPC</span>): a natural extension of <em>λ</em>-calculus that allows to abstract virtually any term.</p><p>This paper extends de Bruijn's ideas to properly overcome the multi-binding problem by introducing a novel presentation of <span>PPC</span> with bidimensional indices, in an effort to implement a prototype for a typed functional programming language based on <span>PPC</span> that captures path polymorphism.</p></div>\",\"PeriodicalId\":38770,\"journal\":{\"name\":\"Electronic Notes in Theoretical Computer Science\",\"volume\":\"351 \",\"pages\":\"Pages 95-113\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2020-09-15\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"https://sci-hub-pdf.com/10.1016/j.entcs.2020.08.006\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Electronic Notes in Theoretical Computer Science\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://www.sciencedirect.com/science/article/pii/S1571066120300426\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q3\",\"JCRName\":\"Computer Science\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Electronic Notes in Theoretical Computer Science","FirstCategoryId":"1085","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S1571066120300426","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"Computer Science","Score":null,"Total":0}
It is well-known in the field of programming languages that dealing with variable names and binders may lead to conflicts such as undesired captures when implementing interpreters or compilers. This situation has been overcome by resorting to de Bruijn indices for calculi where binders capture only one variable name, like the λ-calculus. The advantage of this approach relies on the fact that so-called α-equivalence becomes syntactical equality when working with indices.
In recent years pattern calculi have gained considerable attention given their expressiveness. They turn out to be notoriously convenient to study the foundations of modern functional programming languages modeling features like pattern matching, path polymorphism, pattern polymorphism, etc. However, the literature falls short when it comes to dealing with α-conversion and binders capturing simultaneously several variable names. Such is the case of the Pure Pattern Calculus (PPC): a natural extension of λ-calculus that allows to abstract virtually any term.
This paper extends de Bruijn's ideas to properly overcome the multi-binding problem by introducing a novel presentation of PPC with bidimensional indices, in an effort to implement a prototype for a typed functional programming language based on PPC that captures path polymorphism.
期刊介绍:
ENTCS is a venue for the rapid electronic publication of the proceedings of conferences, of lecture notes, monographs and other similar material for which quick publication and the availability on the electronic media is appropriate. Organizers of conferences whose proceedings appear in ENTCS, and authors of other material appearing as a volume in the series are allowed to make hard copies of the relevant volume for limited distribution. For example, conference proceedings may be distributed to participants at the meeting, and lecture notes can be distributed to those taking a course based on the material in the volume.