Basic polymorphic typechecking
Science of Computer Programming
The revised report on the syntactic theories of sequential control and state
Theoretical Computer Science
Explaining type errors in polymorphic languages
ACM Letters on Programming Languages and Systems (LOPLAS)
Science of Computer Programming
Types as abstract interpretations
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proofs about a folklore let-polymorphic type inference algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Machine-Oriented Logic Based on the Resolution Principle
Journal of the ACM (JACM)
An Efficient Unification Algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
Finding the source of type errors
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
How to repair type errors automatically
Trends in functional programming
Explaining Type Errors by Finding the Source of a Type Conflict
SFP '99 Selected papers from the 1st Scottish Functional Programming Workshop (SFP99)
Scripting the type inference process
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Discriminative sum types locate the source of type errors
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Type error slicing in implicitly typed higher-order languages
Science of Computer Programming - Special issue on 12th European symposium on programming (ESOP 2003)
Seminal: searching for ML type-error messages
Proceedings of the 2006 workshop on ML
A logical algorithm for ML type inference
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
Efficient type inference using ranked type variables
ML '07 Proceedings of the 2007 workshop on Workshop on ML
From type checking by recursive descent to type checking with an abstract machine
Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications
A correspondence between type checking via reduction and type checking via evaluation
Information Processing Letters
Towards typing for small-step direct reflection
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
Higher-order symbolic execution via contracts
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
When students first learn programming, they often rely on a simple operational model of a program's behavior to explain how particular features work. Because such models build on their earlier training in algebra, students find them intuitive, even obvious. Students learning type systems, however, have to confront an entirely different notation with a different semantics that many find difficult to understand. In this work, we begin to build the theoretical underpinnings for treating type checking in a manner like the operational semantics of execution. Intuitively, each term is incrementally rewritten to its type. For example, each basic constant rewrites directly to its type and each lambda expression rewrites to an arrow type whose domain is the type of the lambda's formal parameter and whose range is the body of the lambda expression which, in turn, rewrites to the range type.