A copy of this work was available on the public web and has been preserved in the Wayback Machine. The capture dates from 2007; you can also visit the original URL.
The file type is application/pdf
.
Filters
A fresh approach to representing syntax with static binders in functional programming
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
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
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]
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
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
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
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]
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
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]
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
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]
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
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
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
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