33,440 research outputs found

    Program representation size in an intermediate language with intersection and union types

    Full text link
    The CIL compiler for core Standard ML compiles whole programs using a novel typed intermediate language (TIL) with intersection and union types and flow labels on both terms and types. The CIL term representation duplicates portions of the program where intersection types are introduced and union types are eliminated. This duplication makes it easier to represent type information and to introduce customized data representations. However, duplication incurs compile-time space costs that are potentially much greater than are incurred in TILs employing type-level abstraction or quantification. In this paper, we present empirical data on the compile-time space costs of using CIL as an intermediate language. The data shows that these costs can be made tractable by using sufficiently fine-grained flow analyses together with standard hash-consing techniques. The data also suggests that non-duplicating formulations of intersection (and union) types would not achieve significantly better space complexity.National Science Foundation (CCR-9417382, CISE/CCR ESS 9806747); Sun grant (EDUD-7826-990410-US); Faculty Fellowship of the Carroll School of Management, Boston College; U.K. Engineering and Physical Sciences Research Council (GR/L 36963, GR/L 15685

    Flattening an object algebra to provide performance

    Get PDF
    Algebraic transformation and optimization techniques have been the method of choice in relational query execution, but applying them in object-oriented (OO) DBMSs is difficult due to the complexity of OO query languages. This paper demonstrates that the problem can be simplified by mapping an OO data model to the binary relational model implemented by Monet, a state-of-the-art database kernel. We present a generic mapping scheme to flatten data models and study the case of straightforward OO model. We show how flattening enabled us to implement a query algebra, using only a very limited set of simple operations. The required primitives and query execution strategies are discussed, and their performance is evaluated on the 1-GByte TPC-D (Transaction-processing Performance Council's Benchmark D), showing that our divide-and-conquer approach yields excellent result

    The Neuro-Symbolic Concept Learner: Interpreting Scenes, Words, and Sentences From Natural Supervision

    Full text link
    We propose the Neuro-Symbolic Concept Learner (NS-CL), a model that learns visual concepts, words, and semantic parsing of sentences without explicit supervision on any of them; instead, our model learns by simply looking at images and reading paired questions and answers. Our model builds an object-based scene representation and translates sentences into executable, symbolic programs. To bridge the learning of two modules, we use a neuro-symbolic reasoning module that executes these programs on the latent scene representation. Analogical to human concept learning, the perception module learns visual concepts based on the language description of the object being referred to. Meanwhile, the learned visual concepts facilitate learning new words and parsing new sentences. We use curriculum learning to guide the searching over the large compositional space of images and language. Extensive experiments demonstrate the accuracy and efficiency of our model on learning visual concepts, word representations, and semantic parsing of sentences. Further, our method allows easy generalization to new object attributes, compositions, language concepts, scenes and questions, and even new program domains. It also empowers applications including visual question answering and bidirectional image-text retrieval.Comment: ICLR 2019 (Oral). Project page: http://nscl.csail.mit.edu

    Distance and intersection number in the curve graph of a surface

    Full text link
    In this work, we study the cellular decomposition of SS induced by a filling pair of curves vv and ww, Decv,w(S)=S(vw)Dec_{v,w}(S) = S - (v \cup w), and its connection to the distance function d(v,w)d(v,w) in the curve graph of a closed orientable surface SS of genus gg. Efficient geodesics were introduced by the first author in joint work with Margalit and Menasco in 2016, giving an algorithm that begins with a pair of non-separating filling curves that determine vertices (v,w)(v,w) in the curve graph of a closed orientable surface SS and computing from them a finite set of {\it efficient} geodesics. We extend the tools of efficient geodesics to study the relationship between distance d(v,w)d(v,w), intersection number i(v,w)i(v,w), and Decv,w(S)Dec_{v,w}(S). The main result is the development and analysis of particular configurations of rectangles in Decv,w(S)Dec_{v,w}(S) called \textit{spirals}. We are able to show that, in some special cases, the efficient geodesic algorithm can be used to build an algorithm that reduces i(v,w)i(v,w) while preserving d(v,w)d(v,w). At the end of the paper, we note a connection of our work to the notion of extending geodesics.Comment: 20 pages, 17 figures. Changes: A key lemma (Lemma 5.6) was revised to be more precise, an irrelevant proposition (Proposition 2.1) and example were removed, unnecessary background material was taken out, some of the definitions and cited results were clarified (including added figures,) and Proposition 5.7 and Theorem 5.8 have been merged into a single theorem, Theorem 4.

    SMT Solving for Functional Programming over Infinite Structures

    Get PDF
    We develop a simple functional programming language aimed at manipulating infinite, but first-order definable structures, such as the countably infinite clique graph or the set of all intervals with rational endpoints. Internally, such sets are represented by logical formulas that define them, and an external satisfiability modulo theories (SMT) solver is regularly run by the interpreter to check their basic properties. The language is implemented as a Haskell module.Comment: In Proceedings MSFP 2016, arXiv:1604.0038

    Concepts and their Use for Modelling Objects and References in Programming Languages

    Full text link
    In the paper a new programming construct, called concept, is introduced. Concept is pair of two classes: a reference class and an object class. Instances of the reference classes are passed-by-value and are intended to represent objects. Instances of the object class are passed-by-reference. An approach to programming where concepts are used instead of classes is called concept-oriented programming (CoP). In CoP objects are represented and accessed indirectly by means of references. The structure of concepts describes a hierarchical space with a virtual address system. The paper describes this new approach to programming including such mechanisms as reference resolution, complex references, method interception, dual methods, life-cycle management inheritance and polymorphism.Comment: 43 pages. Related papers: http://conceptoriented.com
    corecore