Filters








1,165 Hits in 5.9 sec

A fresh approach to representing syntax with static binders in functional programming

Andrew M. Pitts
2001 SIGPLAN notices  
var = term in term plus specification of how λ, let and letrec bind var s (as usual) ν is a type of bindable names (not int, string, . . . !)  ...  of how λ, let and letrec bind var s (as usual) in general, ν . α is a type of name-abstractions over values of type α (not ν * α, or ν -> α !)  ...  To do Try to implement this approach as an extension of a complete ML system. But how does freshness inference interact with polymorphism, exceptions, abstract types, references, . . . ?  ... 
doi:10.1145/507669.507637 fatcat:uvt3zjdf3vdehjhwijv7ezd664

A fresh approach to representing syntax with static binders in functional programming

Andrew M. Pitts
2001 Proceedings of the sixth ACM SIGPLAN international conference on Functional programming - ICFP '01  
var = term in term plus specification of how λ, let and letrec bind var s (as usual) ν is a type of bindable names (not int, string, . . . !)  ...  of how λ, let and letrec bind var s (as usual) in general, ν . α is a type of name-abstractions over values of type α (not ν * α, or ν -> α !)  ...  To do Try to implement this approach as an extension of a complete ML system. But how does freshness inference interact with polymorphism, exceptions, abstract types, references, . . . ?  ... 
doi:10.1145/507635.507637 dblp:conf/icfp/Pitts01 fatcat:xhvl6kgrwrhofknwku4mekvz6y

A fresh approach to representing syntax with static binders in functional programming

Andrew M. Pitts
2001 Proceedings of the sixth ACM SIGPLAN international conference on Functional programming - ICFP '01  
var = term in term plus specification of how λ, let and letrec bind var s (as usual) ν is a type of bindable names (not int, string, . . . !)  ...  of how λ, let and letrec bind var s (as usual) in general, ν . α is a type of name-abstractions over values of type α (not ν * α, or ν -> α !)  ...  To do Try to implement this approach as an extension of a complete ML system. But how does freshness inference interact with polymorphism, exceptions, abstract types, references, . . . ?  ... 
doi:10.1145/507636.507637 fatcat:5a7qo32sozevros5efmnvue3oy

Equivariant Syntax and Semantics [chapter]

Andrew M. Pitts
2002 Lecture Notes in Computer Science  
The notion of symmetry in mathematical structures is a powerful tool in many branches of mathematics. The talk presents an application of this notion to programming language theory.  ...  A Fresh Approach In fact it is possible to have a mathematical foundation for syntax involving binders which directly generalises the classical initial algebra view of syntax from parse trees to parse  ...  Getting in a Bind In my opinion, the biggest defect of the algebraic approach to syntax and semantics in its traditional form is that it cannot cope convincingly with programming language constructs that  ... 
doi:10.1007/3-540-45465-9_3 fatcat:j5yhzgv4sbhxndrjnfqfltbbim

FreshML

Mark R. Shinwell, Andrew M. Pitts, Murdoch J. Gabbay
2003 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming - ICFP '03  
FreshML without static freshness inference is no more impure than ML and our experiences programming in it show that it supports a programming style pleasingly close to informal practice when it comes  ...  to dealing with syntax modulo α-equivalence.  ...  Acknowledgements This research was funded by UK EPSRC grant GR/R07615/01 and by a donation from Microsoft's Cambridge Research Laboratory.  ... 
doi:10.1145/944705.944729 dblp:conf/icfp/ShinwellPG03 fatcat:hbrec2zwnfapjer5ak4k3wfioy

FreshML

Mark R. Shinwell, Andrew M. Pitts, Murdoch J. Gabbay
2003 SIGPLAN notices  
FreshML without static freshness inference is no more impure than ML and our experiences programming in it show that it supports a programming style pleasingly close to informal practice when it comes  ...  to dealing with syntax modulo α-equivalence.  ...  Acknowledgements This research was funded by UK EPSRC grant GR/R07615/01 and by a donation from Microsoft's Cambridge Research Laboratory.  ... 
doi:10.1145/944746.944729 fatcat:vf3eauuxkrbilionfwm3zlava4

Relating nominal and higher-order abstract syntax specifications

Andrew Gacek
2010 Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming - PPDP '10  
In particular, we develop a semantics-preserving translation from αProlog, a nominal abstract syntax based logic programming language, to G − , a higher-order abstract syntax based logic programming language  ...  These approaches have spawned two different communities which have developed along similar lines but with subtle differences that make them difficult to relate.  ...  Another popular approach is based on higher-order abstract syntax which uses a weak λ-calculus to represent binding in object systems [13, 17] .  ... 
doi:10.1145/1836089.1836112 dblp:conf/ppdp/Gacek10 fatcat:voueku6hujcpph4sj7lvgaxmdq

Relating Nominal and Higher-order Abstract Syntax Specifications [article]

Andrew Gacek
2010 arXiv   pre-print
In particular, we develop a semantics-preserving translation from alpha-Prolog, a nominal abstract syntax based logic programming language, to G-, a higher-order abstract syntax based logic programming  ...  These approaches have spawned two different communities which have developed along similar lines but with subtle differences that make them difficult to relate.  ...  Another popular approach is based on higher-order abstract syntax which uses a weak λ-calculus to represent binding in object systems [13, 17] .  ... 
arXiv:1003.5447v2 fatcat:ze6gvbmavbay7oorffuxj5isy4

Functional programming with λ-tree syntax

Ulysse Gérard, Dale Miller, Gabriel Scherer
2019 Proceedings of the 21st International Symposium on Principles and Practice of Programming Languages 2019 - PPDP '19  
In this approach, bindings never become free nor escape their scope: instead, binders in data structures are permitted to move to binders within programs.  ...  We present the design of a new functional programming language, MLTS, that uses the lambda-tree syntax approach to encoding bindings appearing within data structures.  ...  Functional programming with λ-tree syntax  ... 
doi:10.1145/3354166.3354177 dblp:conf/ppdp/Gerard0S19 fatcat:qtkdac7eizhv5abtuelor33rwi

Modelling homogeneous generative meta-programming [article]

Martin Berger, Laurence Tratt, Christian Urban
2017 arXiv   pre-print
As a demonstration of the flexibility of our approach, we also provide a simple type system for the calculus.  ...  The calculus is designed such that we can gradually enhance it with the features needed to model many of the advanced features of real languages.  ...  Every time the program is run, eval is called anew, as any other user-level function. Compile-time evaluation is trickier and is represented in our approach with top-level downMLs ↓{. . .}  ... 
arXiv:1602.06568v2 fatcat:wmxo7qjturb2vkzcdrh4tvghja

Modelling Homogeneous Generative Meta-Programming

Martin Berger, Laurence Tratt, Christian Urban, Marc Herbstritt
2017 European Conference on Object-Oriented Programming  
We demonstrate this by showing how a simple, staged type system as found in Template Haskell can be added to the calculus.  ...  The calculus is designed such that it can be gradually enhanced with the features needed to model many of the advanced features of real languages.  ...  Section 3.2 run each expression in a fresh environment with no link to the outside world.  ... 
doi:10.4230/lipics.ecoop.2017.5 dblp:conf/ecoop/BergerTU17 fatcat:vdmr4z5qazb6dcikc56fisfjmm

Extensible Grammars for Language Specialization [chapter]

Luca Cardelli, Florian Matthes, Martín Abadi
1994 Database Programming Languages (DBPL-4)  
A frequent dilemma in the design  ...  Finally, section 6 compares our concept of extensible grammars with other approaches to syntax extension. 2 Overview The syntax extension formalism described in this paper assumes the scenario  ...  We are also able to prove that these dynamic parse rules are consistent with the static type rules given in section 4.1.  ... 
doi:10.1007/978-1-4471-3564-7_2 fatcat:72oglzpgijgcpculdqhce6u5vq

A unified treatment of syntax with binders

NICOLAS POUILLARD, FRANÇOIS POTTIER
2012 Journal of functional programming  
We informally recall several existing approaches to representing data structures with names and binders in a nominal style (section 3).  ...  First, we informally recall several existing approaches to working with de Bruijn indices in a "safe" manner. Then, we extend the interface and implementation of our library (section 9).  ...  Warm-up: the bare nominal approach The bare approach to syntax in nominal style requires very little infrastructure to begin with. Names and binders are represented by so-called atoms.  ... 
doi:10.1017/s0956796812000251 fatcat:wanfmih7q5e23lbrp72ghdo67e

Romeo

Paul Stansifer, Mitchell Wand
2014 SIGPLAN notices  
(lambda (x 1 ) (lambda (x 2 ) (e 1 e 2 ))) If such a function were passed (syntax for) two identity functions, it should produce (syntax for) the composition function: But if both its arguments are the  ...  As a result, few tools exist to safely manipulate code in those languages for which name problems are the most challenging.  ...  Acknowledgements We would like to thank Fabian Muehlboeck for his work in testing and validating Romeo, and Dionna Glaze for her collaboration in hammering out the formal properties of our binding system  ... 
doi:10.1145/2692915.2628162 fatcat:dcp56rzrqzblbeb4nlufg6tcw4

Romeo: A system for more flexible binding-safe programming

PAUL STANSIFER, MITCHELL WAND
2016 Journal of functional programming  
As a result, few tools exist to safely manipulate code in those languages for which name problems are the most challenging.  ...  We address this problem with Romeo, a language that respects α-equivalence on its values, and which has access to a rich specification language for binding, inspired by attribute grammars.  ...  Acknowledgements We would like to thank Fabian Muehlboeck for his work in testing and validating Romeo, and Dionna Glaze for her collaboration in hammering out the formal properties of our binding system  ... 
doi:10.1017/s0956796816000137 fatcat:cmhijepvqzg4ji4ga3h3hwixsu
« Previous Showing results 1 — 15 out of 1,165 results