Kim Nguyen 0001

dblp:72/5342-1 · DBLP profile ↗
← Back
15ranked-venue papers
0as first author
3since 2021 · last 2024
0000-0002-1729-870XORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 10 · 3 since 2021Databases, data management, data science and information retrieval · 4Theory of computation · 1
YearPublicationVenuePosition
2024 Polymorphic Type Inference for Dynamic Languages
abstract
We present a type system that combines, in a controlled way, first-order polymorphism with intersection types, union types, and subtyping, and prove its safety. We then define a type reconstruction algorithm that is sound and terminating. This yields a system in which unannotated functions are given polymorphic types (thanks to Hindley-Milner) that can express the overloaded behavior of the functions they type (thanks to the intersection introduction rule) and that are deduced by applying advanced techniques of type narrowing (thanks to the union elimination rule). This makes the system a prime candidate to type dynamic languages.
Giuseppe Castagna, Mickaël Laurent, Kim Nguyen 0001
Proc. ACM Program. Lang.3
2022 On type-cases, union elimination, and occurrence typing
abstract
We extend classic union and intersection type systems with a type-case construction and show that the combination of the union elimination rule of the former and the typing rules for type-cases of our extension encompasses occurrence typing . To apply this system in practice, we define a canonical form for the expressions of our extension, called MSC-form. We show that an expression of the extension is typable if and only if its MSC-form is, and reduce the problem of typing the latter to the one of reconstructing annotations for that term. We provide a sound algorithm that performs this reconstruction and a proof-of-concept implementation.
Giuseppe Castagna, Mickaël Laurent, Kim Nguyen 0001, Matthew Lutze
Proc. ACM Program. Lang.3
2022 Revisiting occurrence typing
abstract
We revisit occurrence typing, a technique to refine the type of variables occurring in type-cases and, thus, capturesome programming patterns used in untyped languages. Although occurrence typing was tied from its inceptionto set-theoretic types-union types, in particular-it never fully exploited the capabilities of these types. Here weshow how, by using set-theoretic types, it is possible to develop a general typing framework that encompasses andgeneralizes several aspects of current occurrence typing proposals and that can be applied to tackle other problemssuch as the reconstruction of intersection types for unannotated or partially annotated functions and the optimizationof the compilation of gradually typed languages.
Giuseppe Castagna, Victor Lanvin, Mickaël Laurent, Kim Nguyen 0001
Sci. Comput. Program.4
2016 Set-theoretic types for polymorphic variants
abstract
Polymorphic variants are a useful feature of the OCaml language whose current definition and implementation rely on kinding constraints to simulate a subtyping relation via unification. This yields an awkward formalization and results in a type system whose behaviour is in some cases unintuitive and/or unduly restrictive.
Giuseppe Castagna, Tommaso Petrucciani, Kim Nguyen 0001
ICFP3
2015 A Core Calculus for XQuery 3.0 - Combining Navigational and Pattern Matching Approaches
Giuseppe Castagna, Hyeonseung Im, Kim Nguyen 0001, Véronique Benzaken
ESOP3
2015 Polymorphic Functions with Set-Theoretic Types: Part 2: Local Type Inference and Type Reconstruction
abstract
This article is the second part of a two articles series about the definition of higher order polymorphic functions in a type system with recursive types and set-theoretic type connectives (unions, intersections, and negations).
Giuseppe Castagna, Kim Nguyen 0001, Zhiwu Xu 0001, Pietro Abate
POPL2
2015 Fast in-memory XPath search using compressed indexes
abstract
Summary Extensible Markup Language (XML) documents consist of text data plus structured data (markup). XPath allows to query both text and structure. Evaluating such hybrid queries is challenging. We present a system for in‐memory evaluation ofXPath search queries, that is, queries with text and structure predicates, yet without advanced features such as backward axes, arithmetics, and joins. We show that for this query fragment, which containsForward Core XPath, our system, dubbed Succinct XML Self‐Index (‘SXSI’), outperforms existing systems by 1–3 orders of magnitude. SXSI is based on state‐of‐the‐art indexes for text and structure data. It combines two novelties. On one hand, it represents the XML data in a compact indexed form, which allows it to handle larger collections in main memory while supporting powerful search and navigation operations over the text and the structure. On the other hand, it features an execution engine that uses tree automata and cleverly chooses evaluation orders that leverage the speeds of the respective indexes. SXSI is modular and allows seamless replacement of its indexes. This is demonstrated through experiments with (1) a text index specialized for search of bio sequences, and (2) a word‐based text index specialized for natural language search. Copyright © 2013 John Wiley & Sons, Ltd.
Diego Arroyuelo, Francisco Claude, Sebastian Maneth, Veli Mäkinen, Gonzalo Navarro 0001, Kim Nguyen 0001, Jouni Sirén, Niko Välimäki
Softw. Pract. Exp.6
2014 Polymorphic functions with set-theoretic types: part 1: syntax, semantics, and evaluation
abstract
This article is the first part of a two articles series about a calculus with higher-order polymorphic functions, recursive types with arrow and product type constructors and set-theoretic type connectives (union, intersection, and negation).
Giuseppe Castagna, Kim Nguyen 0001, Zhiwu Xu 0001, Hyeonseung Im, Sergueï Lenglet, Luca Padovani
POPL2
2013 Static and dynamic semantics of NoSQL languages
abstract
We present a calculus for processing semistructured data that spans differences of application area among several novel query languages, broadly categorized as "NoSQL". This calculus lets users define their own operators, capturing a wider range of data processing capabilities, whilst providing a typing precision so far typical only of primitive hard-coded operators. The type inference algorithm is based on semantic type checking, resulting in type information that is both precise, and flexible enough to handle structured and semistructured data. We illustrate the use of this calculus by encoding a large fragment of Jaql, including operations and iterators over JSON, embedded SQL expressions, and co-grouping, and show how the encoding directly yields a typing discipline for Jaql as it is, namely without the addition of any type definition or type annotation in the code.
Véronique Benzaken, Giuseppe Castagna, Kim Nguyen 0001, Jérôme Siméon
POPL3
2013 Optimizing XML querying using type-based document projection
abstract
XML data projection (or pruning) is a natural optimization for main memory query engines: given a query Q over a document D , the subtrees of D that are not necessary to evaluate Q are pruned, thus producing a smaller document D' ; the query Q is then executed on D' , hence avoiding to allocate and process nodes that will never be reached by Q . In this article, we propose a new approach, based on types, that greatly improves current solutions. Besides providing comparable or greater precision and far lesser pruning overhead, our solution—unlike current approaches—takes into account backward axes, predicates, and can be applied to multiple queries rather than just to single ones. A side contribution is a new type system for XPath able to handle backward axes. The soundness of our approach is formally proved. Furthermore, we prove that the approach is also complete (i.e., yields the best possible type-driven pruning) for a relevant class of queries and Schemas. We further validate our approach using the XMark and XPathMark benchmarks and show that pruning not only improves the main memory query engine's performances (as expected) but also those of state of the art native XML databases.
Véronique Benzaken, Giuseppe Castagna, Dario Colazzo, Kim Nguyen 0001
ACM Trans. Database Syst.4
2010 Fast in-memory XPath search using compressed indexes
abstract
A large fraction of an XML document typically consists of text data. The XPath query language allows text search via the equal, contains, and starts-with predicates. Such predicates can be efficiently implemented using a compressed self-index of the document's text nodes. Most queries, however, contain some parts querying the text of the document, plus some parts querying the tree structure. It is therefore a challenge to choose an appropriate evaluation order for a given query, which optimally leverages the execution speeds of the text and tree indexes. Here the SXSI system is introduced. It stores the tree structure of an XML document using a bit array of opening and closing brackets plus a sequence of labels, and stores the text nodes of the document using a global compressed self-index. On top of these indexes sits an XPath query engine that is based on tree automata. The engine uses fast counting queries of the text index in order to dynamically determine whether to evaluate top-down or bottom-up with respect to the tree structure. The resulting system has several advantages over existing systems: (1) on pure tree queries (without text search) such as the XPathMark queries, the SXSI system performs on par or better than the fastest known systems MonetDB and Qizx, (2) on queries that use text search, SXSI outperforms the existing systems by 1-3 orders of magnitude (depending on the size of the result set), and (3) with respect to memory consumption, SXSI outperforms all other systems for counting-only queries.
Diego Arroyuelo, Francisco Claude, Sebastian Maneth, Veli Mäkinen, Gonzalo Navarro 0001, Kim Nguyen 0001, Jouni Sirén, Niko Välimäki
ICDE6
2010 XPath Whole Query Optimization
abstract
Previous work reports about SXSI, a fast XPath engine which executes tree automata over compressed XML indexes. Here, reasons are investigated why SXSI is so fast. It is shown that tree automata can be used as a general framework for fine grained XML query optimization. We define the "relevant nodes" of a query as those nodes that a minimal automaton must touch in order to answer the query. This notion allows to skip many subtrees during execution, and, with the help of particular tree indexes, even allows to skip internal nodes of the tree. We efficiently approximate runs over relevant nodes by means of on-the-fly removal of alternation and non-determinism of (alternating) tree automata. We also introduce many implementation techniques which allows us to efficiently evaluate tree automata, even in the absence of special indexes. Through extensive experiments, we demonstrate the impact of the different optimization techniques.
Sebastian Maneth, Kim Nguyen 0001
Proc. VLDB Endow.2
2008 Typed iterators for XML
abstract
International audience
Giuseppe Castagna, Kim Nguyen 0001
ICFP2
2006 Type-Based XML Projection
Véronique Benzaken, Giuseppe Castagna, Dario Colazzo, Kim Nguyen 0001
VLDB4
2005 Computation of Chromatic Polynomials Using Triangulations and Clique Trees
Pascal Berthomé, Sylvain Lebresne, Kim Nguyen 0001
WG3