33,440 research outputs found
Program representation size in an intermediate language with intersection and union types
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
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
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
In this work, we study the cellular decomposition of induced by a filling
pair of curves and , , and its connection
to the distance function in the curve graph of a closed orientable
surface of genus . 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 in the curve graph of a closed orientable surface and
computing from them a finite set of {\it efficient} geodesics. We extend the
tools of efficient geodesics to study the relationship between distance
, intersection number , and . The main result is
the development and analysis of particular configurations of rectangles in
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 while preserving . 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
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
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
- …