CLU reference manual
Introduction to combinators and &lgr;-calculus
Introduction to combinators and &lgr;-calculus
An ideal model for recursive polymorphic types
Information and Control
Efficient binary I/O of IDL objects
ACM SIGPLAN Notices
Types and persistence in database programming languages
ACM Computing Surveys (CSUR)
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parsers and printers as stream destructors and constructors embedded in functional languages
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Explicit polymorphism and CPS conversion
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Strongtalk: typechecking Smalltalk in a production environment
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Compiling polymorphism using intensional type analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Scrap your boilerplate: a practical design pattern for generic programming
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
Unchecked Exceptions Can Be Strictly More Powerful Than Call/CC
Higher-Order and Symbolic Computation
Type-safe relaxing of schema consistency rules for flexible modelling in OODBMS
The VLDB Journal — The International Journal on Very Large Data Bases
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Strongly typed heterogeneous collections
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Status report: hot pickles, and how to serve them
ML '07 Proceedings of the 2007 workshop on Workshop on ML
ESORICS '08 Proceedings of the 13th European Symposium on Research in Computer Security: Computer Security
ACM Transactions on Programming Languages and Systems (TOPLAS)
Threesomes, with and without blame
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Types from control flow analysis
Program analysis and compilation, theory and practice
Proceedings of the 19th international symposium on Software testing and analysis
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Nested refinements: a logic for duck typing
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.01 |
Statically-typed programming languages allow earlier error checking, better enforcement of disciplined programming styles, and generation of more efficient object code than languages where all type-consistency checks are performed at runtime. However, even in statically-type languages, there is often the need to deal with data whose type cannot be known at compile time. To handle such situations safely, we propose to add a type Dynamic whose values are pairs of a value v and a type tag T where v has the type denoted by T. Instances of Dynamic are built with an explicit tagging construct and inspected with a type-safe typecase construct.This paper is an exploration of the syntax, operational semantics, and denotational semantics of a simple language with the type Dynamic. We give examples of how dynamically-typed values might be used in programming. Then we discuss an operational semantics for our language and obtain a soundness theorem. We present two formulations of the denotational semantics of this language and relate them to the operational semantics. Finally, we consider the implications of polymorphism and some implementation issues.