339 research outputs found

    The Foil: Capture-Avoiding Substitution With No Sharp Edges

    Full text link
    Correctly manipulating program terms in a compiler is surprisingly difficult because of the need to avoid name capture. The rapier from "Secrets of the Glasgow Haskell Compiler inliner" is a cutting-edge technique for fast, stateless capture-avoiding substitution for expressions represented with explicit names. It is, however, a sharp tool: its invariants are tricky and need to be maintained throughout the whole compiler that uses it. We describe the foil, an elaboration of the rapier that uses Haskell's type system to enforce the rapier's invariants statically, preventing a class of hard-to-find bugs, but without adding any run-time overheads.Comment: Presented at IFL 202

    Revisiting Language Support for Generic Programming: When Genericity Is a Core Design Goal

    Get PDF
    Context Generic programming, as defined by Stepanov, is a methodology for writing efficient and reusable algorithms by considering only the required properties of their underlying data types and operations. Generic programming has proven to be an effective means of constructing libraries of reusable software components in languages that support it. Generics-related language design choices play a major role in how conducive generic programming is in practice. Inquiry Several mainstream programming languages (e.g. Java and C++) were first created without generics; features to support generic programming were added later, gradually. Much of the existing literature on supporting generic programming focuses thus on retrofitting generic programming into existing languages and identifying related implementation challenges. Is the programming experience significantly better, or different when programming with a language designed for generic programming without limitations from prior language design choices? Approach We examine Magnolia, a language designed to embody generic programming. Magnolia is representative of an approach to language design rooted in algebraic specifications. We repeat a well-known experiment, where we put Magnolia’s generic programming facilities under scrutiny by implementing a subset of the Boost Graph Library, and reflect on our development experience. Knowledge We discover that the idioms identified as key features for supporting Stepanov-style generic programming in the previous studies and work on the topic do not tell a full story. We clarify which of them are more of a means to an end, rather than fundamental features for supporting generic programming. Based on the development experience with Magnolia, we identify variadics as an additional key feature for generic programming and point out limitations and challenges of genericity by property. Grounding Our work uses a well-known framework for evaluating the generic programming facilities of a language from the literature to evaluate the algebraic approach through Magnolia, and we draw comparisons with well-known programming languages. Importance This work gives a fresh perspective on generic programming, and clarifies what are fundamental language properties and their trade-offs when considering supporting Stepanov-style generic programming. The understanding of how to set the ground for generic programming will inform future language design.publishedVersio

    The ghost in early modern Protestant culture: shifting perceptions of the afterlife, 1450-1700

    Get PDF
    My thesis seeks to address the continuity, change and the syncreticism of ideas regarding post-mortem existence in the wake of the Reformation. Prior to reform, the late Medieval world view of the afterlife was very straightforward. One either went to Heaven via Purgatory, or straight to Hell. In the exempla literature of the period, ghosts were seen to provide evidence of the purgatorial system. However, this doctrine was dismantled by reformers who rejected Purgatory wholesale. Reformers then put forth a multiplicity of eschatologies which included various strands of mortalism, none of which allowed for the possibility that the dead could return to the living. In theory therefore, the ghost should have disappeared from the mental landscape, yet it not only survived, but it thrived in Protestant culture. This raises three key questions which are absolutely central to this thesis. Firstly: by what mechanisms did commitment to ghosts continue in lay and elite discourses in early modern England, when religious authority denied the possibility of their existence? Secondly: what opportunities were there to incorporate ghosts into Anglican or wider Protestant belief? Finally: Why would many Protestant elites want to elide the doctrinal problem of their existence and assert that ghosts existed? The ghost must have served a purpose in a way that nothing else could. It is therefore the purpose of the thesis to examine the shifting role of the ghost in early modern Protestant England

    Revisiting Language Support for Generic Programming: When Genericity Is a Core Design Goal

    Get PDF
    ContextGeneric programming, as defined by Stepanov, is a methodology for writing efficient and reusable algorithms by considering only the required properties of their underlying data types and operations. Generic programming has proven to be an effective means of constructing libraries of reusable software components in languages that support it. Generics-related language design choices play a major role in how conducive generic programming is in practice.InquirySeveral mainstream programming languages (e.g. Java and C++) were first created without generics; features to support generic programming were added later, gradually. Much of the existing literature on supporting generic programming focuses thus on retrofitting generic programming into existing languages and identifying related implementation challenges. Is the programming experience significantly better, or different when programming with a language designed for generic programming without limitations from prior language design choices?ApproachWe examine Magnolia, a language designed to embody generic programming. Magnolia is representative of an approach to language design rooted in algebraic specifications. We repeat a well-known experiment, where we put Magnolia’s generic programming facilities under scrutiny by implementing a subset of the Boost Graph Library, and reflect on our development experience.KnowledgeWe discover that the idioms identified as key features for supporting Stepanov-style generic programming in the previous studies and work on the topic do not tell a full story. We clarify which of them are more of a means to an end, rather than fundamental features for supporting generic programming. Based on the development experience with Magnolia, we identify variadics as an additional key feature for generic programming and point out limitations and challenges of genericity by property.GroundingOur work uses a well-known framework for evaluating the generic programming facilities of a language from the literature to evaluate the algebraic approach through Magnolia, and we draw comparisons with well-known programming languages.ImportanceThis work gives a fresh perspective on generic programming, and clarifies what are fundamental language properties and their trade-offs when considering supporting Stepanov-style generic programming. The understanding of how to set the ground for generic programming will inform future language design.</p

    Broadcasting modernity: eloquent listening in the early twentieth century

    Get PDF
    This thesis, ‘Broadcasting Modernity’ is an account of sound technology, namely wireless, as a feature of early twentieth century literature. If modernism is a historical-specific movement, and language a repository of time, then the advent of radio broadcasting cannot be ignored - a medium which inscribed itself into the pages of books. The present study is original, in that it establishes radio as a portal through which to regard the wider cultural mentality, cross-cutting, or ‘crashing’ the written word, and thus producing the effect of two wires instantly reacting to one another. Therefore, just as radio may be accessed through literature, certain texts between 1900-1945 may be reinterpreted acoustically. To qualify this argument, a select group of writers are discussed individually, and at length – figures who allowed radio to affect their creative output, at various levels, in a period of rapid technological change

    Mind and Matter

    Get PDF
    Do brains create material reality in thinking processes or is it the other way around, with things shaping the mind? Where is the location of meaning-making? How do neural networks become established by means of multimodal pattern replications, and how are they involved in conceptualization? How are resonance textures within cellular entities extended in the body and the mind by means of mirroring processes? In which ways do they correlate to consciousness and self-consciousness? Is it possible to explain out-of-awareness unconscious processes? What holds together the relationship between experiential reality, bodily processes like memory, reason, or imagination, and sign-systems and simulation structures like metaphor and metonymy visible in human language? This volume attempts to answer some of these questions

    The Ticker, October 29, 1985

    Full text link
    The Ticker is the student newspaper of Baruch College. It has been published continuously since 1932, when the Baruch College campus was the School of Business and Civic Administration of the City College of New York

    Word upon World: Half a century of John Banville's Universes

    Get PDF
    There is a clear engagement with theories of time across Banville’s oeuvre, from his earliest published work through to the twenty-first-century novels. I explore how, in their engagement with age and ageing, Banville’s characters adopt and interrogate Albert Einstein’s and Henri Bergson’s competing ideas of the present and the passage of time, sliding from favouring the former to prioritising the latter. Martin Heidegger’s conception of Dasein, a Being-toward-death, allows me to explore how Banville’s characters evoke either Einstein’s spacetime and series of nows, or Bergson’s psychologised Duration (Durée). This is borne out in Gabriel Godkin’s subverted and anti-atavistic narrative in 'Birchwood' (1973), the battle over authenticity between Copernicus and Rheticus in 'Doctor Copernicus' (1976), and how Hermes controls the mortals’ time and tries his best to age in 'The Infinities' (2009). I conclude that Banville’s characters’ evolving preference for Bergsonian over Einsteinian tropes indicates an acceptance and happy engagement with the ageing process
    • …
    corecore