F-bounded polymorphism for object-oriented programming
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
An extension of system F with subtyping
Information and Computation - Special conference issue: international conference on theoretical aspects of computer software
Corrigendum: decidable bounded quantification
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Decidability of systems of set constraints with negative constraints
Information and Computation
Making the future safe for the past: adding genericity to the Java programming language
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Haskell and XML: generic combinators or type-based translation?
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Typechecking for XML transformers
PODS '00 Proceedings of the nineteenth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Regular expression pattern matching for XML
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Extended path expressions of XML
PODS '01 Proceedings of the twentieth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
XML with data values: typechecking revisited
PODS '01 Proceedings of the twentieth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
The C++ Programming Language
The Definition of Standard ML
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
XDuce: A statically typed XML processing language
ACM Transactions on Internet Technology (TOIT)
CDuce: an XML-centric general-purpose language
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Parametric polymorphism for XML
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Regular expression types for XML
ACM Transactions on Programming Languages and Systems (TOPLAS)
XJ: facilitating XML processing in Java
WWW '05 Proceedings of the 14th international conference on World Wide Web
XML type checking with macro tree transducers
Proceedings of the twenty-fourth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Polymorphic regular tree types and patterns
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type inference for unique pattern matching
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Regular expression filters for XML
Journal of Functional Programming
Semantic subtyping: Dealing set-theoretically with function, union, intersection, and negation types
Journal of the ACM (JACM)
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
A Type-Safe Embedding of XDuce into ML
Electronic Notes in Theoretical Computer Science (ENTCS)
Boolean operations for attribute-element constraints
CIAA'03 Proceedings of the 8th international conference on Implementation and application of automata
XML schema containment checking based on semi-implicit techniques
CIAA'03 Proceedings of the 8th international conference on Implementation and application of automata
Exact XML type checking in polynomial time
ICDT'07 Proceedings of the 11th international conference on Database Theory
Non-backtracking top-down algorithm for checking tree automata containment
CIAA'05 Proceedings of the 10th international conference on Implementation and Application of Automata
Verification of tree-processing programs via higher-order model checking
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Set-theoretic foundation of parametric polymorphism and subtyping
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Parametric polymorphism and semantic subtyping: the logical connection
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Polymorphic functions with set-theoretic types: part 1: syntax, semantics, and evaluation
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
Despite the extensiveness of recent investigations on static typing for XML, parametric polymorphism has rarely been treated. This well-established typing discipline can also be useful in XML processing in particular for programs involving “parametric schemas,” that is, schemas parameterized over other schemas (e.g., SOAP). The difficulty in treating polymorphism for XML lies in how to extend the “semantic” approach used in the mainstream (monomorphic) XML type systems. A naive extension would be “semantic” quantification over all substitutions for type variables. However, this approach reduces to an NEXPTIME-complete problem for which no practical algorithm is known and induces a subtyping relation that may not always match the programmer's intuition. In this article, we propose a different method that smoothly extends the semantic approach yet is algorithmically easier. The key idea here is to devise a novel and simple marking technique, where we interpret a polymorphic type as a set of values with annotations of which subparts are parameterized. We exploit this interpretation in every ingredient of our polymorphic type system such as subtyping, inference of type arguments, etc. As a result, we achieve a sensible system that directly represents a usual expected behavior of polymorphic type systems—“values of abstract types are never reconstructed”—in a reminiscence of Reynold's parametricity theory. Also, we obtain a set of practical algorithms for typechecking by local modifications to existing ones for a monomorphic system.