Skip to main content

Showing 1–9 of 9 results for author: Horpácsi, D

.
  1. arXiv:2311.10482  [pdf, ps, other

    cs.PL

    A Formalisation of Core Erlang, a Concurrent Actor Language

    Authors: Péter Bereczky, Dániel Horpácsi, Simon Thompson

    Abstract: In order to reason about the behaviour of programs described in a programming language, a mathematically rigorous definition of that language is needed. In this paper, we present a machine-checked formalisation of concurrent Core Erlang (a subset of Erlang) based on our previous formalisations of its sequential sublanguage. We define a modular, frame stack semantics, show how program evaluation is… ▽ More

    Submitted 17 November, 2023; originally announced November 2023.

    Comments: Accepted for publication to Acta Cybernetica on 10th of May, 2023

  2. arXiv:2308.12403  [pdf, ps, other

    cs.PL

    A Frame Stack Semantics for Sequential Core Erlang

    Authors: Péter Bereczky, Dániel Horpácsi, Simon Thompson

    Abstract: We present a small-step, frame stack style, semantics for sequential Core Erlang, a dynamically typed, impure functional programming language. The semantics and the properties that we prove are machine-checked with the Coq proof assistant. We improve on previous work by including exceptions and exception handling, as well as built-in data types and functions. Based on the semantics, we define mult… ▽ More

    Submitted 23 August, 2023; originally announced August 2023.

    Comments: Draft paper of IFL 2023, The 35th Symposium on Implementation and Application of Functional Languages, August 29--31, 2023, Braga, Portugal

  3. arXiv:2211.11550  [pdf, other

    cs.PL cs.SE

    Refactoring = Substitution + Rewriting

    Authors: Simon Thompson, Dániel Horpácsi

    Abstract: We present an approach to describing refactorings that abstracts away from particular refactorings to classes of similar transformations, and presents an implementation of these that works by substitution and subsequent rewriting. Substitution is language-independent under this approach, while the rewrites embody language-specific aspects. Intriguingly, it also goes back to work on API migration b… ▽ More

    Submitted 3 February, 2023; v1 submitted 21 November, 2022; originally announced November 2022.

    Comments: 9pp

  4. arXiv:2208.14260  [pdf, ps, other

    cs.PL

    Program Equivalence in an Untyped, Call-by-value Lambda Calculus with Uncurried Recursive Functions

    Authors: Dániel Horpácsi, Péter Bereczky, Simon Thompson

    Abstract: We aim to reason about the correctness of behaviour-preserving transformations of Erlang programs. Behaviour preservation is characterised by semantic equivalence. Based upon our existing formal semantics for Core Erlang, we investigate potential definitions of suitable equivalence relations. In particular we adapt a number of existing approaches of expression equivalence to a simple functional pr… ▽ More

    Submitted 30 August, 2022; originally announced August 2022.

    Comments: Submitted to the Journal of Logical and Algebraic Methods in Programming

  5. Mechanizing Matching Logic In Coq

    Authors: Péter Bereczky, Xiaohong Chen, Dániel Horpácsi, Lucas Peña, Jan Tušil

    Abstract: Matching logic is a formalism for specifying, and reasoning about, mathematical structures, using patterns and pattern matching. Growing in popularity, it has been used to define many logical systems such as separation logic with recursive definitions and linear temporal logic. In addition, it serves as the logical foundation of the K semantic framework, which was used to build practical verifiers… ▽ More

    Submitted 21 September, 2022; v1 submitted 14 January, 2022; originally announced January 2022.

    Comments: In Proceedings FROM 2022, arXiv:2209.09208

    Journal ref: EPTCS 369, 2022, pp. 17-36

  6. arXiv:2011.10373  [pdf, other

    cs.PL

    A Comparison of Big-step Semantics Definition Styles

    Authors: Péter Bereczky, Dániel Horpácsi, Simon Thompson

    Abstract: Formal semantics provides rigorous, mathematically precise definitions of programming languages, with which we can argue about program behaviour and program equivalence by formal means; in particular, we can describe and verify our arguments with a proof assistant. There are various approaches to giving formal semantics to programming languages, at different abstraction levels and applying differe… ▽ More

    Submitted 20 November, 2020; originally announced November 2020.

  7. A Proof Assistant Based Formalisation of Core Erlang

    Authors: Péter Bereczky, Dániel Horpácsi, Simon Thompson

    Abstract: Our research is part of a wider project that aims to investigate and reason about the correctness of scheme-based source code transformations of Erlang programs. In order to formally reason about the definition of a programming language and the software built using it, we need a mathematically rigorous description of that language. In this paper, we present our proof-assistant-based formalisatio… ▽ More

    Submitted 18 August, 2020; v1 submitted 24 May, 2020; originally announced May 2020.

    Comments: 21st International Symposium on Trends in Functional Programming

    Journal ref: In: Byrski A., Hughes J. (eds) Trends in Functional Programming. TFP 2020. Lecture Notes in Computer Science, vol 12222. Springer, Cham

  8. Trustworthy Refactoring via Decomposition and Schemes: A Complex Case Study

    Authors: Dániel Horpácsi, Judit Kőszegi, Zoltán Horváth

    Abstract: Widely used complex code refactoring tools lack a solid reasoning about the correctness of the transformations they implement, whilst interest in proven correct refactoring is ever increasing as only formal verification can provide true confidence in applying tool-automated refactoring to industrial-scale code. By using our strategic rewriting based refactoring specification language, we present t… ▽ More

    Submitted 23 August, 2017; originally announced August 2017.

    Comments: In Proceedings VPT 2017, arXiv:1708.06887

    Journal ref: EPTCS 253, 2017, pp. 92-108

  9. Towards Trustworthy Refactoring in Erlang

    Authors: Dániel Horpácsi, Judit Kőszegi, Simon Thompson

    Abstract: Tool-assisted refactoring transformations must be trustworthy if programmers are to be confident in applying them on arbitrarily extensive and complex code in order to improve style or efficiency. We propose a simple, high-level but rigorous, notation for defining refactoring transformations in Erlang, and show that this notation provides an extensible, verifiable and executable specification lang… ▽ More

    Submitted 8 July, 2016; originally announced July 2016.

    Comments: In Proceedings VPT 2016, arXiv:1607.01835

    Journal ref: EPTCS 216, 2016, pp. 83-103