The typechecking of programs with implicit type structure.
Proc. of the international symposium on Semantics of data types
An abstract frame work for environment machines
Theoretical Computer Science
Theoretical Computer Science
Semantic analysis of normalisation by evaluation for typed lambda calculus
Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
Composing monads using coproducts
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
FroCoS '02 Proceedings of the 4th International Workshop on Frontiers of Combining Systems
Combining Computational Effects: commutativity & sum
TCS '02 Proceedings of the IFIP 17th World Computer Congress - TC1 Stream / 2nd IFIP International Conference on Theoretical Computer Science: Foundations of Information Technology in the Era of Networking and Mobile Computing
Monads and Modular Term Rewriting
CTCS '97 Proceedings of the 7th International Conference on Category Theory and Computer Science
Abstract Syntax and Variable Binding
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
Infinite trees and completely iterative theories: a coalgebraic view
Theoretical Computer Science
Semantics of Name and Value Passing
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
A framework for typed HOAS and semantics
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Free iterative theories: a coalgebraic view
Mathematical Structures in Computer Science
Mathematical Structures in Computer Science
de Bruijn notation as a nested datatype
Journal of Functional Programming
Explicit substitutions and higher-order syntax
MERLIN '03 Proceedings of the 2003 ACM SIGPLAN workshop on Mechanized reasoning about languages with variable binding
Substitution in non-wellfounded syntax with variable binding
Theoretical Computer Science - Selected papers of CMCS'03
Iteration and coiteration schemes for higher-order and nested datatypes
Theoretical Computer Science - Foundations of software science and computation structures
Higher-order semantic labelling for inductive datatype systems
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Initial Algebra Semantics for Cyclic Sharing Structures
TLCA '09 Proceedings of the 9th International Conference on Typed Lambda Calculi and Applications
Polymorphic abstract syntax via Grothendieck construction
FOSSACS'11/ETAPS'11 Proceedings of the 14th international conference on Foundations of software science and computational structures: part of the joint European conferences on theory and practice of software
Hi-index | 0.00 |
Recently there has been a great deal of interest in higher-order syntax which seeks to extend standard initial algebra semantics to cover languages with variable binding. The canonical example studied in the literature is that of the untyped 驴-calculus which is handled as an instance of the general theory of binding algebras, cf. Fiore et al. [13].Another important syntactic construction is that of explicit substitutions which are used to model local definitions and to implement reduction in the 驴-calculus. The syntax of a language with explicit substitutions does not form a binding algebra as an explicit substitution may bind an arbitrary number of variables. Thus explicit substitutions are a natural test case for the further development of the theory and applications of syntax with variable binding.This paper shows that a language containing explicit substitutions and a first-order signature 驴 is naturally modelled as the initial algebra of the Id + F 驴驴_ +_ 驴 _ endofunctor. We derive a similar formula for adding explicit substitutions to the untyped 驴-calculus and then show these initial algebras provide useful datatypes for manipulating abstract syntax by implementing two reduction machines. We also comment on the apparent lack of modularity in syntax with variable binding as compared to first-order languages.