312 research outputs found

    Finding The Lazy Programmer's Bugs

    Get PDF
    Traditionally developers and testers created huge numbers of explicit tests, enumerating interesting cases, perhaps biased by what they believe to be the current boundary conditions of the function being tested. Or at least, they were supposed to. A major step forward was the development of property testing. Property testing requires the user to write a few functional properties that are used to generate tests, and requires an external library or tool to create test data for the tests. As such many thousands of tests can be created for a single property. For the purely functional programming language Haskell there are several such libraries; for example QuickCheck [CH00], SmallCheck and Lazy SmallCheck [RNL08]. Unfortunately, property testing still requires the user to write explicit tests. Fortunately, we note there are already many implicit tests present in programs. Developers may throw assertion errors, or the compiler may silently insert runtime exceptions for incomplete pattern matches. We attempt to automate the testing process using these implicit tests. Our contributions are in four main areas: (1) We have developed algorithms to automatically infer appropriate constructors and functions needed to generate test data without requiring additional programmer work or annotations. (2) To combine the constructors and functions into test expressions we take advantage of Haskell's lazy evaluation semantics by applying the techniques of needed narrowing and lazy instantiation to guide generation. (3) We keep the type of test data at its most general, in order to prevent committing too early to monomorphic types that cause needless wasted tests. (4) We have developed novel ways of creating Haskell case expressions to inspect elements inside returned data structures, in order to discover exceptions that may be hidden by laziness, and to make our test data generation algorithm more expressive. In order to validate our claims, we have implemented these techniques in Irulan, a fully automatic tool for generating systematic black-box unit tests for Haskell library code. We have designed Irulan to generate high coverage test suites and detect common programming errors in the process

    Toatie : functional hardware description with dependent types

    Get PDF
    Describing correct circuits remains a tall order, despite four decades of evolution in Hardware Description Languages (HDLs). Many enticing circuit architectures require recursive structures or complex compile-time computation — two patterns that prove difficult to capture in traditional HDLs. In a signal processing context, the Fast FIR Algorithm (FFA) structure for efficient parallel filtering proves to be naturally recursive, and most Multiple Constant Multiplication (MCM) blocks decompose multiplications into graphs of simple shifts and adds using demanding compile time computation. Generalised versions of both remain mostly in academic folklore. The implementations which do exist are often ad hoc circuit generators, written in software languages. These pose challenges for verification and are resistant to composition. Embedded functional HDLs, that represent circuits as data, allow for these descriptions at the cost of forcing the designer to work at the gate-level. A promising alternative is to use a stand-alone compiler, representing circuits as plain functions, exemplified by the CλaSH HDL. This, however, raises new challenges in capturing a circuit’s staging — which expressions in the single language should be reduced during compile-time elaboration, and which should remain in the circuit’s run-time? To better reflect the physical separation between circuit phases, this work proposes a new functional HDL (representing circuits as functions) with first-class staging constructs. Orthogonal to this, there are also long-standing challenges in the verification of parameterised circuit families. Industry surveys have consistently reported that only a slim minority of FPGA projects reach production without non-trivial bugs. While a healthy growth in the adoption of automatic formal methods is also reported, the majority of testing remains dynamic — presenting difficulties for testing entire circuit families at once. This research offers an alternative verification methodology via the combination of dependent types and automatic synthesis of user-defined data types. Given precise enough types for synthesisable data, this environment can be used to develop circuit families with full functional verification in a correct-by-construction fashion. This approach allows for verification of entire circuit families (not just one concrete member) and side-steps the state-space explosion of model checking methods. Beyond the existing work, this research offers synthesis of combinatorial circuits — not just a software model of their behaviour. This additional step requires careful consideration of staging, erasure & irrelevance, deriving bit representations of user-defined data types, and a new synthesis scheme. This thesis contributes steps towards HDLs with sufficient expressivity for awkward, combinatorial signal processing structures, allowing for a correct-by-construction approach, and a prototype compiler for netlist synthesis.Describing correct circuits remains a tall order, despite four decades of evolution in Hardware Description Languages (HDLs). Many enticing circuit architectures require recursive structures or complex compile-time computation — two patterns that prove difficult to capture in traditional HDLs. In a signal processing context, the Fast FIR Algorithm (FFA) structure for efficient parallel filtering proves to be naturally recursive, and most Multiple Constant Multiplication (MCM) blocks decompose multiplications into graphs of simple shifts and adds using demanding compile time computation. Generalised versions of both remain mostly in academic folklore. The implementations which do exist are often ad hoc circuit generators, written in software languages. These pose challenges for verification and are resistant to composition. Embedded functional HDLs, that represent circuits as data, allow for these descriptions at the cost of forcing the designer to work at the gate-level. A promising alternative is to use a stand-alone compiler, representing circuits as plain functions, exemplified by the CλaSH HDL. This, however, raises new challenges in capturing a circuit’s staging — which expressions in the single language should be reduced during compile-time elaboration, and which should remain in the circuit’s run-time? To better reflect the physical separation between circuit phases, this work proposes a new functional HDL (representing circuits as functions) with first-class staging constructs. Orthogonal to this, there are also long-standing challenges in the verification of parameterised circuit families. Industry surveys have consistently reported that only a slim minority of FPGA projects reach production without non-trivial bugs. While a healthy growth in the adoption of automatic formal methods is also reported, the majority of testing remains dynamic — presenting difficulties for testing entire circuit families at once. This research offers an alternative verification methodology via the combination of dependent types and automatic synthesis of user-defined data types. Given precise enough types for synthesisable data, this environment can be used to develop circuit families with full functional verification in a correct-by-construction fashion. This approach allows for verification of entire circuit families (not just one concrete member) and side-steps the state-space explosion of model checking methods. Beyond the existing work, this research offers synthesis of combinatorial circuits — not just a software model of their behaviour. This additional step requires careful consideration of staging, erasure & irrelevance, deriving bit representations of user-defined data types, and a new synthesis scheme. This thesis contributes steps towards HDLs with sufficient expressivity for awkward, combinatorial signal processing structures, allowing for a correct-by-construction approach, and a prototype compiler for netlist synthesis

    Decoding Digital Culture with Science Fiction: Hyper-Modernism, Hyperreality, and Posthumanism

    Get PDF
    How do digital media technologies affect society and our lives? Through the cultural theory hypotheses of hyper-modernism, hyperreality, and posthumanism, Alan N. Shapiro investigates the social impact of Virtual/Augmented Reality, AI, social media platforms, robots, and the Brain-Computer Interface. His examination of concepts of Jean Baudrillard and Katherine Hayles, as well as films such as Blade Runner 2049, Ghost in the Shell, Ex Machina, and the TV series Black Mirror, suggests that the boundary between science fiction narratives and the »real world« has become indistinct. Science-fictional thinking should be advanced as a principal mode of knowledge for grasping the world and digitalization

    New Model Visual Arts Organisations and Public Engagement

    Get PDF

    Gender, Politics, Market Segmentation, and Taste: Adult Contemporary Radio at the End of the Twentieth Century

    Get PDF
    This dissertation explores issues of gender politics, market segmentation, and taste through an examination of the contributions of several artists who have achieved Adult Contemporary (AC) chart success. The scope of the project is limited to a period when many artists who figured prominently in both the broader mainstream of American popular music and the more specific Adult Contemporary category were most commercially viable: from the mid-1980s through the 1990s. My contention is that, as gender politics and gendered social norms continued to change in the United States at this time, Adult Contemporary – the chart, the format, and the associated music – was an important, if overlooked or even trivialized, arena in which these shifting gender dynamics played out. This dissertation explores the significance of the Adult Contemporary format at the end of the twentieth century through analysis of chart performance, artist image, musical works, marketing, and contextual factors. By documenting these relevant social, political, economic, and musical factors, the notable role of a format and of artists neglected by scholars becomes clear. I explore these issues in the form of lengthy case studies. Examinations of how Adult Contemporary artists such as Michael Bolton, Wilson Phillips, Matchbox Twenty, David Gray, and Mariah Carey were produced and marketed, and how their music was disseminated, illustrate record and radio industry strategies for negotiating the musical, political, and social climate of this period. Significantly, musical and lyrical analyses of songs successful on AC stations, and many of their accompanying promotional videos highlight messages about musical genre, gender, race, and age. This dissertation ultimately demonstrates that Adult Contemporary-oriented music figured significantly in the culture wars, second and third wave feminism, expressions of masculinity, Generation-X struggles, postmodern identity, and market segmentation. This study also illustrates how the record and radio industries have managed audience composition and behavior to effectively and more predictably produce and market music in the United States. This dissertation argues that, amid broader social determinations for taste, the record industry, radio programmers, and Billboard chart compilers and writers have helped to make and reinforce certain assumptions about who listens to which music and why they do so. In addition, critics have weighed in on what different musical genres and artists have offered and for whom, often assigning higher value to music associated with certain genres, socio-political associations, and listeners while claiming over-commercialization, irrelevance, aesthetic insignificance, and bad taste for much other music

    Understanding computer game culture: the cultural shaping of a new medium

    Get PDF
    In the past few decades, video games have developed from a marginal technological experiment into a mainstream medium. During this period they have gone through several transformations, from arcade machines offering a few minutes of solitary fun for a quarter to monthly subscription-based online MMOs in which thousands of players spend hundreds or even thousands of hours and lead a significant part of their social life as a fantasy character. But what is it that has driven video games? development? Is it technology? Indeed, with every new generation of hardware, game designers were given a broader set of tools for evoking exhilarating experiences. But is not culture at least as important? What would games look like if Tolkien never had written Lord of the Rings, or if Nintendo had not brought Japanese manga drawing styles to the new medium? This book looks at the theoretical challenges and foundations on which to base a cultural shaping approach towards the evolution of video games and proposes a set of concepts for analyzing and describing this process

    Beyond Disability: Extraordinary Bodies in the Work of William Gibson

    Get PDF
    This dissertation conceptualizes figurations of disability in the work of contemporary U.S.-American writer William Gibson arguing that there is a distinct development in the representation of the manner and effect of corporeality from the Sprawl to the Bigend trilogy. In the Sprawl trilogy, prosthetic repair and rehabilitation are depicted as a common cultural practice, whereas in the Bigend trilogy the medical cure of the characters’ “deficiencies” for purposes of normative alignment is no longer a desired measure. By adopting a disability studies framework, I argue that this transition is not primarily related to a shift in genre, which does exist, but instead that it is motivated by a changing attitude toward the “broken” body that seeks restoration. A main concern of this book is, therefore, to understand the formal qualities of Gibson’s writing with regard to the forms and functions of the disabled figure, and to further demonstrate how this literary style and underlying ideology changes in parallel with the advancement of cultural conceptions of disability. This thesis distinguishes two major shifts over the course of the novels, one on the level of genre and the other on the conceptual level. I show how Gibson’s depiction of characters draws increasingly on a processual understanding of the human body, and decreasingly on traditional prosthetic technologies. This conceptual trajectory from prostheses to processes corresponds with the genre-specific shift in Gibson’s work that I classify as one from technoromanticism to new realism. The analysis is methodologically met with a theoretical triad that feeds on the socio-historical developments of the concept of disability, drawing specifically on the theory of intersectionality, new materialism, and actor-network theory
    • 

    corecore