Dependent types in practical programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Fast Decision Procedures Based on Congruence Closure
Journal of the ACM (JACM)
Domain specific embedded compilers
Proceedings of the 2nd conference on Domain-specific languages
Type-safe cast: (functional pearl)
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Tagless staged interpreters for typed languages
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
A lightweight implementation of generics and dynamics
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Guarded recursive datatype constructors
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Qualified types: theory and practice (ordering relation)
Qualified types: theory and practice (ordering relation)
A constraint-based approach to guarded algebraic data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Embedding polymorphic dynamic typing
Proceedings of the seventh ACM SIGPLAN workshop on Generic programming
Hi-index | 0.00 |
We report our experience with exploring a new point in the design space for formal reasoning systems: the development of the programming language @Wmega. @Wmega is intended as both a practical programming language and a logic. The main goal of @Wmega is to allow programmers to describe and reason about semantic properties of programs from within the programming language itself, mainly by using a powerful type system. We illustrate the main features of @Wmega by developing an interesting meta-programming example. First, we show how to encode a set of well-typed simply typed @l-calculus terms as an @Wmega data-type. Then, we show how to implement a substitution operation on these terms that is guaranteed by the @Wmega type system to preserve their well-typedness.