858 research outputs found

    Brand Objects for Nominal Typing (Artifact)

    Get PDF
    In Brand Objects for Nominal Typing, we describe an implementation of a branding system for both runtime and static types. This artifact provides the extended form of Hopper, an interpreter for the Grace programming language, and extra modules which define both the dynamic objects and the modular static type checker. The extra modules extend the existing structural type checker in the provided version of Hopper, and are capable of statically checking code which interacts with statically determinable declarations of brand objects, including singleton brand constructors, brand sums, and dynamic variables which are known to contain some brand value at runtime. The dynamic brand objects extend this behaviour to the runtime, enforcing non-static contracts and allowing runtime type testing

    Brand Objects for Nominal Typing

    Get PDF
    Combinations of structural and nominal object typing in systems such as Scala, Whiteoak, and Unity have focused on extending existing nominal, class-based systems with structural subtyping. The typical rules of nominal typing do not lend themselves to such an extension, resulting in major modifications. Adding object branding to an existing structural system integrates nominal and structural typing without excessively complicating the type system. We have implemented brand objects to explicitly type objects, using existing features of the structurally typed language Grace, along with a static type checker which treats the brands as nominal types. We demonstrate that the brands are useful in an existing implementation of Grace, and provide a formal model of the extension to the language

    A Theory of Tagged Objects

    Get PDF
    Foundational models of object-oriented constructs typically model objects as records with a structural type. However, many object-oriented languages are class-based; statically-typed formal models of these languages tend to sacrifice the foundational nature of the record-based models, and in addition cannot express dynamic class loading or creation. In this paper, we explore how to model statically-typed object-oriented languages that support dynamic class creation using foundational constructs of type theory. We start with an extensible tag construct motivated by type theory, and adapt it to support static reasoning about class hierarchy and the tags supported by each object. The result is a model that better explains the relationship between object-oriented and functional programming paradigms, suggests a useful enhancement to functional programming languages, and paves the way for more expressive statically typed object-oriented languages. In that vein, we describe the design and implementation of the Wyvern language, which leverages our theory

    Type soundness for dependent object types (DOT)

    Get PDF
    Scala's type system unifies aspects of ML modules, object-oriented, and functional programming. The Dependent Object Types (DOT) family of calculi has been proposed as a new theoretic foundation for Scala and similar expressive languages. Unfortunately, type soundness has only been established for restricted subsets of DOT. In fact, it has been shown that important Scala features such as type refinement or a subtyping relation with lattice structure break at least one key metatheoretic property such as environment narrowing or invertible subtyping transitivity, which are usually required for a type soundness proof. The main contribution of this paper is to demonstrate how, perhaps surprisingly, even though these properties are lost in their full generality, a rich DOT calculus that includes recursive type refinement and a subtyping lattice with intersection types can still be proved sound. The key insight is that subtyping transitivity only needs to be invertible in code paths executed at run time, with contexts consisting entirely of valid runtime objects, whereas inconsistent subtyping contexts can be permitted for code that is never executed

    Fluid technologies: The Bush Pump, the LifeStraw ® and microworlds of humanitarian design

    Get PDF
    Over the past decade, many ingenious, small-scale gadgets have appeared in response to problems of disaster and extreme poverty. Focusing on the LifeStraw ® , a water filtration device invented by the company Vestergaard Frandsen, I situate this wave of humanitarian design relative to Marianne de Laet and Annemarie Mol’s classic article on the Zimbabwe Bush Pump. The LifeStraw shares the Bush Pump’s principle of technical minimalism, as well as its ethical desire to improve the lives of communities. Unlike the pump, however, the straw defines itself through rather than against market logic, accepting the premise that one can ‘do well while doing good’. Moreover, it does not share the assumed framework of de Laet and Mol’s Zimbabwean socio-technical landscape: a postcolonial state happily en route to national self-definition. Nonetheless, it clearly embodies moral affect, if in the idiom of humanitarian concern rather than development. My aim is to open up three interrelated lines of inquiry for discussion. First, I consider aspects of a postcolonial condition at the micro-level of immediate needs, including assumptions about nation-state politics and markets. Second, I emphasize science and technology in the form of infrastructure, the material frontline of norms. Third, I return reflexively to love, and the complicated allure of engagement in academic work

    A Mobile Robot Project

    Get PDF
    We are building a mobile robot which will roam around the AI lab observing and later perhaps doing. Our approach to building the robot and its controlling software differs from that used in many other projects in a number of ways. (1) We model the world as three dimensional rather than two. (2) We build no special environment for our robot and insist that it must operate in the same real world that we inhabit. (3) In order to adequately deal with uncertainty of perception and control we build relational maps rather than maps embedded in a coordinate system, and we maintain explicit models of all uncertainties. (4) We explicitly monitor the computational performance of the components of the control system, in order to refine the design of a real time control system for mobile robots based on a special purpose distributed computation engine. (5) We use vision as our primary sense and relegate acoustic sensors to local obstacle detection. (6) We use a new architecture for an intelligent system designed to provide integration of many early vision processes, and robust real-time performance even in cases of sensory overload, failure of certain early vision processes to deliver much information in particular situations, and computation module failure.MIT Artificial Intelligence Laborator

    Exploring perceptions of braille on common everyday objects

    Get PDF
    Tactile writing sometimes has an advantage over purely visually presented text. As a form of tactile text, braille might be usable for tactile writing. If braille as tactile writing is usable on everyday objects, the amount of braille in the environment would increase and people might be encouraged to learn it, simultaneously addressing the decline in braille literacy. However, sighted individuals might perceive braille nega- tively. A preliminary study was thus conducted to gauge possible negative perceptions. A number of brailled and unbrailled ceramic bowls were fabricated and distributed, with questionnaires, at a public event. The process of fabrication and the question- naire responses suggest adding braille to studio ceramics is not straightforward, but a resistance to the addition of braille to objects is not expected. The study was limited in scope and the exploration of additional techniques, development of specialized tools, and further studies involving different objects and materials are recommended

    Elements of Clausal Embedding

    Get PDF
    This thesis asks: what is the division of labour between the syntax and the semantics? The empirical focus is on the phenomenon of clausal embedding, whereby the grammar provides the resources to embed a clause within another clause, and the semantics provides the resources to represent an individual’s mental representations. The primary goal is to argue that that-clauses denote predicates of contentful entities – abstract objects, such as propositions, facts, and rumours. The major theoretical claim is that that-clauses function quite generally as modifiers in the compositional semantics, both when they compose with nominals and verbs. In order to cash this idea out, a strictly neo-Davidsonian approach to the syntax-semantics interface is outlined. In the syntax, arguments are severed from the verb; rather, they are incorporated as specifiers of functional heads. This is paralleled by a neo-Davidsonian semantics, where verbs denote predicates of eventualities, and thematic arguments are incorporated via metalanguage functions. Consequently all verbs, including attitude verbs, are argued to simply denote predicates of eventualities. Embedded clauses compose with attitude verbs as intersective modifiers – they specify the content of the verb’s eventuality argument
    • …
    corecore