Multi-stage programming with explicit annotations
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Eliminating array bound checking through dependent types
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Cayenne—a language with dependent types
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Dependent types in practical programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type system for certified binaries
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Tagless staged interpreters for typed languages
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Guarded recursive datatype constructors
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Constructions: A Higher Order Proof System for Mechanizing Mathematics
EUROCAL '85 Invited Lectures from the European Conference on Computer Algebra-Volume I - Volume I
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Implementing typeful program transformations
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Modular Domain Specific Languages and Tools
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
ACM SIGPLAN Notices
Combining programming with theorem proving
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Generalized algebraic data types and object-oriented programming
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Simple unification-based type inference for GADTs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
A constraint-based approach to guarded algebraic data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program-ing finger trees in Coq
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
PLPV '07 Proceedings of the 2007 workshop on Programming languages meets program verification
Ynot: dependent types for imperative programs
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Proceedings of the 2008 ACM SIGPLAN workshop on ML
Constrained types for object-oriented languages
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Proceedings of the 3rd workshop on Programming languages meets program verification
Proceedings of the 3rd workshop on Programming languages meets program verification
Effective interactive proofs for higher-order imperative programs
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages
Journal of Functional Programming
Dependent types and program equivalence
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Singleton types here, singleton types there, singleton types everywhere
Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verification
Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verification
Finally tagless, partially evaluated: tagless staged interpreters for simpler typed languages
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
VeriML: typed computation of logical terms inside a language with effects
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Incremental type-checking for type-reflective metaprograms
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
EriLex: an embedded domain specific language generator
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Program logics for homogeneous meta-programming
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
Type-specialized staged programming with process separation
Higher-Order and Symbolic Computation
Typed syntactic meta-programming
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Extending Type Inference to Variational Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Early detection of type errors in C++ templates
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
Almost twenty years after the pioneering efforts of Cardelli, the programming languages community is vigorously pursuing ways to incorporate Fω-style indexed types into programming languages. This paper advocates Concoqtion, a practical approach to adding such highly expressive types to full-fledged programming languages. The approach is applied to MetaOCaml using the Coq proof checker to conservatively extend Hindley-Milner type inference. The implementation of MetaOCaml Concoqtion requires minimal modifications to the syntax, the type checker, and the compiler; and yields a language comparable in notation to the leading proposals. The resulting language provides unlimited expressiveness in the type system while maintaining decidability. Furthermore, programmers can take advantage of a wide range of libraries not only for the programming language but also for the indexed types. Programming in MetaOCaml Concoqtion is illustrated with small examples and a case study implementing a statically-typed domain-specific language.