The definition of Standard ML
Deciding equivalence of finite tree automata
SIAM Journal on Computing
Compiling pattern matching by term decomposition
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
A practical soft type system for Scheme
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Type inference for queries on semistructured data
PODS '99 Proceedings of the eighteenth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Anytime, anywhere: modal logics for mobile ambients
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Typechecking for XML transformers
PODS '00 Proceedings of the nineteenth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
DTD inference for views of XML data
PODS '00 Proceedings of the nineteenth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Expressive and efficient pattern languages for tree-structured data (extended abstract)
PODS '00 Proceedings of the nineteenth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Regular expression types for XML
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Recursive subtyping revealed: (functional pearl)
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
Transformation of Documents and Schemas by Patterns and Contextual Conditions
PODP '96 Proceedings of the Third International Workshop on Principles of Document Processing
Using YAT to Build a Web Server
WebDB '98 Selected papers from the International Workshop on The World Wide Web and Databases
XDuce: A Typed XML Processing Language (Preliminary Report)
Selected papers from the Third International Workshop WebDB 2000 on The World Wide Web and Databases
Locating Matches of Tree Patterns in Forests
Proceedings of the 18th Conference on Foundations of Software Technology and Theoretical Computer Science
HOPE: An experimental applicative language
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
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
Towards static type checking for XSLT
DocEng '01 Proceedings of the 2001 ACM Symposium on Document engineering
A survey in indexing and searching XML documents
Journal of the American Society for Information Science and Technology - XML
Automata theory for XML researchers
ACM SIGMOD Record
XQuery formal semantics state and challenges
ACM SIGMOD Record
ACM SIGMOD Record
Deciding validity in a spatial logic for trees
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
SXSLT: Manipulation Language for XML
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
A Spatial Logic for Querying Graphs
ICALP '02 Proceedings of the 29th International Colloquium on Automata, Languages and Programming
CSL '02 Proceedings of the 16th International Workshop and 11th Annual Conference of the EACSL on Computer Science Logic
Typechecking for Semistructured Data
DBPL '01 Revised Papers from the 8th International Workshop on Database Programming Languages
XDuce: A statically typed XML processing language
ACM Transactions on Internet Technology (TOIT)
E-services: a look behind the curtain
Proceedings of the twenty-second ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
XML with data values: typechecking revisited
Journal of Computer and System Sciences - Special issu on PODS 2001
CDuce: an XML-centric general-purpose language
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
HydroJ: object-oriented pattern matching for evolvable distributed systems
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A typed representation for HTML and XML documents in Haskell
Journal of Functional Programming
Databases, but not as we know them
ADC '04 Proceedings of the 15th Australasian database conference - Volume 27
Grammar-based analysis of string expressions
TLDI '05 Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation
Regular expression types for XML
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compiling regular patterns to sequential machines
Proceedings of the 2005 ACM symposium on Applied computing
A gentle introduction to semantic subtyping
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Deciding validity in a spatial logic for trees
Journal of Functional Programming
Rigour is good for you and feasible: reflections on formal treatments of C and UDP sockets
EW 10 Proceedings of the 10th workshop on ACM SIGOPS European workshop
biXid: a bidirectional transformation language for XML
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Boolean operations and inclusion test for attribute-element constraints
Theoretical Computer Science
Extensible pattern matching via a lightweight language extension
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on 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
XHaskell --- Adding Regular Expression Types to Haskell
Implementation and Application of Functional Languages
Construction of Tree Automata from Regular Expressions
DLT '08 Proceedings of the 12th international conference on Developments in Language Theory
Fast and compact regular expression matching
Theoretical Computer Science
Semantic Verification of Web System Contents
ER '08 Proceedings of the ER 2008 Workshops (CMLSA, ECDM, FP-UML, M2AS, RIGiM, SeCoGIS, WISM) on Advances in Conceptual Modeling: Challenges and Opportunities
Parametric polymorphism for XML
ACM Transactions on Programming Languages and Systems (TOPLAS)
Querying XML documents with multi-dimensional markup
NLPXML '06 Proceedings of the 5th Workshop on NLP and XML: Multi-Dimensional Markup in Natural Language Processing
A Type-Safe Embedding of XDuce into ML
Electronic Notes in Theoretical Computer Science (ENTCS)
DHTML accessibility checking based on static JavaScript analysis
UAHCI'07 Proceedings of the 4th international conference on Universal access in human-computer interaction: applications and services
XML schema, tree logic and sheaves automata
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
Boolean operations for attribute-element constraints
CIAA'03 Proceedings of the 8th international conference on Implementation and application of automata
A typed calculus for querying distributed XML documents
TGC'06 Proceedings of the 2nd international conference on Trustworthy global computing
Typed and unambiguous pattern matching on strings using regular expressions
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Semantic subtyping: challenges, perspectives, and open problems
ICTCS'05 Proceedings of the 9th Italian conference on Theoretical Computer Science
Error mining for regular expression patterns
ICTCS'05 Proceedings of the 9th Italian conference on Theoretical Computer Science
Patterns and types for querying XML documents
DBPL'05 Proceedings of the 10th international conference on Database Programming Languages
A gentle introduction to semantic subtyping
ICALP'05 Proceedings of the 32nd international conference on Automata, Languages and Programming
Compilation of generic regular path expressions using c++ class templates
CC'05 Proceedings of the 14th international conference on Compiler Construction
Patterns and types for querying XML documents
XSym'05 Proceedings of the Third international conference on Database and XML Technologies
Metadata invariants: checking and inferring metadata coding conventions
Proceedings of the 34th International Conference on Software Engineering
Regular expression sub-matching using partial derivatives
Proceedings of the 14th symposium on Principles and practice of declarative programming
Hi-index | 0.00 |
We propose regular expression pattern matching as a core feature for programming languages for manipulating XML (and similar tree-structured data formats). We extend conventional pattern-matching facilities with regular expression operators such as repetition (*), alternation (I), etc., that can match arbitrarily long sequences of subtrees, allowing a compact pattern to extract data from the middle of a complex sequence. We show how to check standard notions of exhaustiveness and redundancy for these patterns.Regular expression patterns are intended to be used in languages whose type systems are also based on the regular expression types. To avoid excessive type annotations, we develop a type inference scheme that propagates type constraints to pattern variables from the surrounding context. The type inference algorithm translates types and patterns into regular tree automata and then works in terms of standard closure operations (union, intersection, and difference) on tree automata. The main technical challenge is dealing with the interaction of repetition and alternation patterns with the first-match policy, which gives rise to subtleties concerning both the termination and the precision of the analysis. We address these issues by introducing a data structure representing closure operations lazily.