Skip to main content

Showing 1–8 of 8 results for author: Gariano, I O

.
  1. arXiv:2205.00787  [pdf, other

    cs.SE cs.LO

    More Programming Than Programming: Teaching Formal Methods in a Software Engineering Programme

    Authors: James Noble, David Streader, Isaac Oscar Gariano, Miniruwani Samarakoon

    Abstract: Formal methods for software correctness are critical to the future of software engineering - and so must be an essential part of software engineering education. Unfortunately, formal methods are often resisted by students due to perceived difficulty, mathematicity, and practical irrelevance. We redeveloped our software correctness course by taking a programming intensive approach, using the solver… ▽ More

    Submitted 2 May, 2022; originally announced May 2022.

  2. 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.

  3. arXiv:1910.00709  [pdf, other

    cs.PL

    Mμl: The Power of Dynamic Multi-Methods

    Authors: Isaac Oscar Gariano, Marco Servetto

    Abstract: Multi-methods are a straightforward extension of traditional (single) dynamic dispatch, which is the core of most object oriented languages. With multi-methods, a method call will select an appropriate implementation based on the values of multiple arguments, and not just the first/receiver. Language support for both single and multiple dispatch is typically designed to be used in conjunction with… ▽ More

    Submitted 1 October, 2019; originally announced October 2019.

    Comments: Presented at Workshop on Meta-Programming Techniques and Reflection (META'19)

  4. 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.

  5. arXiv:1909.01465  [pdf, other

    cs.PL

    Towards Gradual Checking of Reference Capabilities

    Authors: Kiko Fernandez-Reyes, Isaac Oscar Gariano, James Noble, Tobias Wrigstad

    Abstract: Concurrent and parallel programming is difficult due to the presence of memory side-effects, which may introduce data races. Type qualifiers, such as reference capabilities, can remove data races by restricting sharing of mutable data. Unfortunately, reference capability languages are an all-in or nothing game, i.e., all the types must be annotated with reference capabilities. In this work in prog… ▽ More

    Submitted 15 October, 2019; v1 submitted 3 September, 2019; originally announced September 2019.

    Comments: draft

  6. CallE: An Effect System for Method Calls

    Authors: Isaac Oscar Gariano, James Noble, Marco Servetto

    Abstract: Effect systems are used to statically reason about the effects an expression may have when evaluated. In the literature, such effects include various behaviours as diverse as memory accesses and exception throwing. Here we present CallE, an object-oriented language that takes a flexible approach where effects are just method calls: this works well because ordinary methods often model things like I… ▽ More

    Submitted 5 September, 2019; v1 submitted 10 July, 2019; originally announced July 2019.

  7. arXiv:1902.10231  [pdf, other

    cs.PL

    Sound Invariant Checking Using Type Modifiers and Object Capabilities

    Authors: Isaac Oscar Gariano, Marco Servetto, Alex Potanin

    Abstract: In this paper we use pre existing language support for type modifiers and object capabilities to enable a system for sound runtime verification of invariants. Our system guarantees that class invariants hold for all objects involved in execution. Invariants are specified simply as methods whose execution is statically guaranteed to be deterministic and not access any externally mutable state. We a… ▽ More

    Submitted 26 February, 2019; originally announced February 2019.

  8. Iteratively Composing Statically Verified Traits

    Authors: Isaac Oscar Gariano, Marco Servetto, Alex Potanin, Hrshikesh Arora

    Abstract: Static verification relying on an automated theorem prover can be very slow and brittle: since static verification is undecidable, correct code may not pass a particular static verifier. In this work we use metaprogramming to generate code that is correct by construction. A theorem prover is used only to verify initial "traits": units of code that can be used to compose bigger programs. In our w… ▽ More

    Submitted 20 August, 2019; v1 submitted 25 February, 2019; originally announced February 2019.

    Comments: In Proceedings VPT 2019, arXiv:1908.06723

    Journal ref: EPTCS 299, 2019, pp. 49-55