Skip to main content

Showing 1–6 of 6 results for author: Homer, M

Searching in archive cs. Search in all archives.
.
  1. arXiv:2405.06233  [pdf, other

    cs.PL

    The Fearless Journey [Draft]

    Authors: Nick Webster, Marco Servetto, Michael Homer

    Abstract: Existing minimal Object-Oriented models (OO), like Featherweight Java (FJ), are valuable for modelling programs and designing new programming languages and tools. However, their utility in develo** real-world programs is limited. We introduce the 'Fearless Heart', a novel object calculus preserving FJ's minimal and extensible nature while being more suited for constructing complex, real-world ap… ▽ More

    Submitted 12 May, 2024; v1 submitted 10 May, 2024; originally announced May 2024.

  2. arXiv:2405.05541  [pdf, other

    cs.SE

    CrashJS: A NodeJS Benchmark for Automated Crash Reproduction

    Authors: Philip Oliver, Jens Dietrich, Craig Anslow, Michael Homer

    Abstract: Software bugs often lead to software crashes, which cost US companies upwards of $2.08 trillion annually. Automated Crash Reproduction (ACR) aims to generate unit tests that successfully reproduce a crash. The goal of ACR is to aid developers with debugging, providing them with another tool to locate where a bug is in a program. The main approach ACR currently takes is to replicate a stack trace f… ▽ More

    Submitted 9 May, 2024; originally announced May 2024.

    Comments: Pre-print; Accepted to MSR 2024

  3. arXiv:2109.07541  [pdf, other

    cs.PL cs.DC

    Dala: A Simple Capability-Based Dynamic Language Design For Data Race-Freedom

    Authors: Kiko Fernandez-Reyes, Isaac Oscar Gariano, James Noble, Erin Greenwood-Thessman, Michael Homer, Tobias Wrigstad

    Abstract: Dynamic languages like Erlang, Clojure, JavaScript, and E adopted data-race freedom by design. To enforce data-race freedom, these languages either deep copy objects during actor (thread) communication or proxy back to their owning thread. We present Dala, a simple programming model that ensures data-race freedom while supporting efficient inter-thread communication. Dala is a dynamic, concurrent,… ▽ More

    Submitted 15 September, 2021; originally announced September 2021.

  4. arXiv:2107.11933  [pdf, ps, other

    cs.SE

    A Partial Reproduction of A Guided Genetic Algorithm for Automated Crash Reproduction

    Authors: Philip Oliver, Michael Homer, Jens Dietrich, Craig Anslow

    Abstract: This paper is a partial reproduction of work by Soltani et al. which presented EvoCrash, a tool for replicating software failures in Java by reproducing stack traces. EvoCrash uses a guided genetic algorithm to generate JUnit test cases capable of reproducing failures more reliably than existing coverage-based solutions. In this paper, we present the findings of our reproduction of the initial stu… ▽ More

    Submitted 1 August, 2021; v1 submitted 25 July, 2021; originally announced July 2021.

    Comments: Accepted for publication at the 37th International Conference on Software Maintenance and Evolution (ICSME 2021)

  5. Which of My Transient Type Checks Are Not (Almost) Free?

    Authors: Isaac Oscar Gariano, Richard Roberts, Stefan Marr, Michael Homer, James Noble

    Abstract: One form of type checking used in gradually typed language is transient type checking: whenever an object 'flows' through code with a type annotation, the object is dynamically checked to ensure it has the methods required by the annotation. Just-in-time compilation and optimisation in virtual machines can eliminate much of the overhead of run-time transient type checks. Unfortunately this optimis… ▽ More

    Submitted 12 September, 2019; originally announced September 2019.

  6. arXiv:1807.00661  [pdf, other

    cs.PL

    Transient Typechecks are (Almost) Free

    Authors: Richard Roberts, Stefan Marr, Michael Homer, James Noble

    Abstract: Transient gradual ty** imposes run-time type tests that typically cause a linear slowdown in programs' performance. This performance impact discourages the use of type annotations because adding types to a program makes the program slower. A virtual machine can employ standard just-in-time optimizations to reduce the overhead of transient checks to near zero. These optimizations can give gradual… ▽ More

    Submitted 18 February, 2019; v1 submitted 2 July, 2018; originally announced July 2018.

    Comments: Draft