Skip to main content

Showing 1–20 of 20 results for author: Ducasse, S

Searching in archive cs. Search in all archives.
.
  1. Meta-compilation of Baseline JIT Compilers with Druid

    Authors: Nahuel Palumbo, Guillermo Polito, Stéphane Ducasse, Pablo Tesone

    Abstract: Virtual Machines (VMs) combine interpreters and just-in-time (JIT) compiled code to achieve good performance. However, implementing different execution engines increases the cost of developing and maintaining such solutions. JIT compilers based on meta-compilation cope with these issues by automatically generating optimizing JIT compilers. This leaves open the question of how meta-compilation appl… ▽ More

    Submitted 27 February, 2025; originally announced February 2025.

    Journal ref: The Art, Science, and Engineering of Programming, 2025, Vol. 10, Issue 1, Article 9

  2. arXiv:2309.03511  [pdf, other

    cs.SE

    Interactive, Iterative, Tooled, Rule-Based Migration of Microsoft Access to Web Technologies

    Authors: Santiago Bragagnolo, Nicolas Anquetil, Stéphane Ducasse, Abdelhak-Djamel Seriai, Mustapha Derras

    Abstract: In the context of a collaboration with Berger-Levrault, an IT company producing information systems, we are working on migrating Microsoft Access monolithic applications to the web front-end and microservices back-end. Like in most software migrations, developers must learn the target technology, and they will be in charge of the evolution of the migrated system in the future. To respond to this p… ▽ More

    Submitted 7 September, 2023; originally announced September 2023.

  3. arXiv:2309.02019  [pdf, other

    cs.SE

    Parsing Fortran-77 with proprietary extensions

    Authors: Younoussa Sow, Larisa Safina, Léandre Brault, Papa Ibou Diouf, Stéphane Ducasse, Nicolas Anquetil

    Abstract: Far from the latest innovations in software development, many organizations still rely on old code written in "obsolete" programming languages. Because this source code is old and proven it often contributes significantly to the continuing success of these organizations. Yet to keep the applications relevant and running in an evolving environment, they sometimes need to be updated or migrated to n… ▽ More

    Submitted 5 September, 2023; originally announced September 2023.

    Comments: Accepted at ICSME'23 Industrial track

    ACM Class: D.2.7

  4. A VM-Agnostic and Backwards Compatible Protected Modifier for Dynamically-Typed Languages

    Authors: Iona Thomas, Vincent Aranega, Stéphane Ducasse, Guillermo Polito, Pablo Tesone

    Abstract: In object-oriented languages, method visibility modifiers hold a key role in separating internal methods from the public API. Protected visibility modifiers offer a way to hide methods from external objects while authorizing internal use and overriding in subclasses. While present in main statically-typed languages, visibility modifiers are not as common or mature in dynamically-typed languages. I… ▽ More

    Submitted 21 June, 2023; originally announced June 2023.

    Journal ref: The Art, Science, and Engineering of Programming, 2024, Vol. 8, Issue 1, Article 2

  5. arXiv:2303.14944  [pdf, other

    cs.SE

    Implementation-First Approach of Developing Formal Semantics of a Simulation Language in VDM-SL

    Authors: Tomohiro Oda, Gaël Dur, Stéphane Ducasse, Hugo Daniel Macedo

    Abstract: Formal specification is a basis for rigorous software implementation. VDM-SL is a formal specification language with an extensive executable subset. Successful cases of VDM-family including VDM-SL have shown that producing a well-tested executable specification can reduce the cost of the implementation phase. This paper introduces and discusses the reversed order of specification and implementatio… ▽ More

    Submitted 27 March, 2023; originally announced March 2023.

  6. arXiv:2109.05531  [pdf, other

    cs.SE

    Report From The Trenches: A Case Study In Modernizing Software Development Practices

    Authors: Houékpétodji Mahugnon Honoré, Nicolas Anquetil, Stéphane Ducasse, Fatiha Djareddir, Jérôme Sudich

    Abstract: One factor of success in software development companies is their ability to deliver good quality products, fast. For this, they need to improve their software development practices. We work with a medium-sized company modernizing its development practices. The company introduced several practices recommended in agile development. If the benefits of these practices are well documented, the impact o… ▽ More

    Submitted 12 September, 2021; originally announced September 2021.

    Comments: 10 pages, 3 figures, 2 tables

    ACM Class: D.2

  7. arXiv:2101.02522  [pdf, other

    cs.CL cs.PL cs.SE

    Towards a Smart Data Processing and Storage Model

    Authors: Ronie Salgado, Marcus Denker, Stéphane Ducasse, Anne Etien, Vincent Aranega

    Abstract: In several domains it is crucial to store and manipulate data whose origin needs to be completely traceable to guarantee the consistency, trustworthiness and reliability on the data itself typically for ethical and legal reasons. It is also important to guarantee that such properties are also carried further when such data is composed and processed into new data. In this article we present the mai… ▽ More

    Submitted 7 January, 2021; originally announced January 2021.

    Journal ref: IWST20: International Workshop on Smalltalk Technologies, Sep 2020, Novi Sad, Serbia

  8. arXiv:2011.10975  [pdf, other

    cs.SE

    Modular Moose: A new generation software reverse engineering environment

    Authors: Nicolas Anquetil, Anne Etien, Mahugnon H. Houekpetodji, Benoit Verhaeghe, Stéphane Ducasse, Clotilde Toullec, Fatiha Djareddir, Jerôme Sudich, Mustapha Derras

    Abstract: Advanced reverse engineering tools are required to cope with the complexity of software systems and the specific requirements of numerous different tasks (re-architecturing, migration, evolution). Consequently, reverse engineering tools should adapt to a wide range of situations. Yet, because they require a large infrastructure investment, being able to reuse these tools is key. Moose is a reverse… ▽ More

    Submitted 22 November, 2020; originally announced November 2020.

    ACM Class: D.2.7; D.2.13

  9. arXiv:2011.04655  [pdf, other

    cs.PL cs.SE

    First Infrastructure and Experimentation in Echo-debugging

    Authors: Thomas Dupriez, Steven Costiou, Stéphane Ducasse

    Abstract: As applications get developed, bugs inevitably get introduced. Often, it is unclear why a given code change introduced a given bug. To find this causal relation and more effectively debug, developers can leverage the existence of a previous version of the code, without the bug. But traditional debug-ging tools are not designed for this type of work, making this operation tedious. In this article,… ▽ More

    Submitted 9 November, 2020; originally announced November 2020.

    Journal ref: IWST20: International Workshop on Smalltalk Technologies, Sep 2020, Online, France

  10. arXiv:1912.07322  [pdf, ps, other

    cs.SE

    RTj: a Java framework for detecting and refactoring rotten green test cases

    Authors: Matias Martinez, Anne Etien, Stéphane Ducasse, Christopher Fuhrman

    Abstract: Rotten green tests are passing tests which have, at least, one assertion not executed. They give developers a false confidence. In this paper, we present, RTj, a framework that analyzes test cases from Java projects with the goal of detecting and refactoring rotten test cases. RTj automatically discovered 427 rotten tests from 26 open-source Java projects hosted on GitHub. Using RTj, developers ha… ▽ More

    Submitted 16 December, 2019; originally announced December 2019.

  11. arXiv:1909.03658  [pdf, other

    cs.PL cs.SE

    Sindarin: A Versatile Scripting API for the Pharo Debugger

    Authors: Thomas Dupriez, Guillermo Polito, Steven Costiou, Vincent Aranega, Stéphane Ducasse

    Abstract: Debugging is one of the most important and time consuming activities in software maintenance, yet mainstream debuggers are not well-adapted to several debugging scenarios. This has led to the research of new techniques covering specific families of complex bugs. Notably, recent research proposes to empower developers with scripting DSLs, plugin-based and moldable debuggers. However, these solution… ▽ More

    Submitted 9 September, 2019; originally announced September 2019.

  12. A critical analysis of string APIs: The case of Pharo

    Authors: Damien Pollet, Stéphane Ducasse

    Abstract: Most programming languages, besides C, provide a native abstraction for character strings, but string APIs vary widely in size, expressiveness, and subjective convenience across languages. In Pharo, while at first glance the API of the String class seems rich, it often feels cumbersome in practice; to improve its usability, we faced the challenge of assessing its design. However, we found hardly a… ▽ More

    Submitted 29 November, 2017; originally announced November 2017.

    Comments: Science of Computer Programming, Elsevier, 2017

  13. Scoped Extension Methods in Dynamically-Typed Languages

    Authors: Guillermo Polito, Camille Teruel, Stéphane Ducasse, Luc Fabresse

    Abstract: Context. An extension method is a method declared in a package other than the package of its host class. Thanks to extension methods, developers can adapt to their needs classes they do not own: adding methods to core classes is a typical use case. This is particularly useful for adapting software and therefore to increase reusability. Inquiry. In most dynamically-typed languages, extension meth… ▽ More

    Submitted 4 August, 2017; originally announced August 2017.

    Journal ref: The Art, Science, and Engineering of Programming, 2018, Vol. 2, Issue 1, Article 1

  14. DeltaImpactFinder: Assessing Semantic Merge Conflicts with Dependency Analysis

    Authors: Martín Dias, Guillermo Polito, Damien Cassou, Stéphane Ducasse

    Abstract: In software development, version control systems (VCS) provide branching and merging support tools. Such tools are popular among developers to concurrently change a code-base in separate lines and reconcile their changes automatically afterwards. However, two changes that are correct independently can introduce bugs when merged together. We call semantic merge conflicts this kind of bugs. Change i… ▽ More

    Submitted 14 September, 2015; originally announced September 2015.

    Comments: International Workshop on Smalltalk Technologies 2015, Jul 2015, Brescia, Italy

  15. arXiv:1502.06757  [pdf, other

    cs.SE

    Untangling Fine-Grained Code Changes

    Authors: Martín Dias, Alberto Bacchelli, Georgios Gousios, Damien Cassou, Stéphane Ducasse

    Abstract: After working for some time, developers commit their code changes to a version control system. When doing so, they often bundle unrelated changes (e.g., bug fix and refactoring) in a single commit, thus creating a so-called tangled commit. Sharing tangled commits is problematic because it makes review, reversion, and integration of these commits harder and historical analyses of the project less r… ▽ More

    Submitted 24 February, 2015; originally announced February 2015.

  16. arXiv:1310.7774  [pdf, other

    cs.PL

    Ghost: A Uniform and General-Purpose Proxy Implementation

    Authors: Mariano Martinez Peck, Noury Bouraqadi, Stéphane Ducasse, Luc Fabresse, Marcus Denker

    Abstract: A proxy object is a surrogate or placeholder that controls access to another target object. Proxy objects are a widely used solution for different scenarios such as remote method invocation, future objects, behavioral reflection, object databases, inter-languages communications and bindings, access control, lazy or parallel evaluation, security, among others. Most proxy implementations support pro… ▽ More

    Submitted 29 October, 2013; originally announced October 2013.

    Comments: in submission

  17. arXiv:1310.2741  [pdf, other

    cs.PL

    Waterfall: Primitives Generation on the Fly

    Authors: Guido Chari, Diego Garbervetsky, Camillo Bruni, Marcus Denker, Stéphane Ducasse

    Abstract: Modern languages are typically supported by managed runtimes (Virtual Machines). Since VMs have to deal with many concepts such as memory management, abstract execution model and scheduling, they tend to be very complex. Additionally, VMs have to meet strong performance requirements. This demand of performance is one of the main reasons why many VMs are built statically. Thus, design decisions are… ▽ More

    Submitted 10 October, 2013; originally announced October 2013.

  18. arXiv:1309.4334  [pdf, other

    cs.PL

    Representing Code History with Development Environment Events

    Authors: Martin Dias, Damien Cassou, Stéphane Ducasse

    Abstract: Modern development environments handle information about the intent of the programmer: for example, they use abstract syntax trees for providing high-level code manipulation such as refactorings; nevertheless, they do not keep track of this information in a way that would simplify code sharing and change understanding. In most Smalltalk systems, source code modifications are immediately registered… ▽ More

    Submitted 17 September, 2013; originally announced September 2013.

    Journal ref: IWST-2013 - 5th International Workshop on Smalltalk Technologies (2013)

  19. arXiv:1309.3914  [pdf, ps, other

    cs.PL cs.CR

    SafeJS: Hermetic Sandboxing for JavaScript

    Authors: Damien Cassou, Stéphane Ducasse, Nicolas Petton

    Abstract: Isolating programs is an important mechanism to support more secure applications. Isolating program in dynamic languages such as JavaScript is even more challenging since reflective operations can circumvent simple mechanisms that could protect program parts. In this article we present SafeJS, an approach and implementation that offers isolation based on separate sandboxes and control of informati… ▽ More

    Submitted 16 September, 2013; originally announced September 2013.

  20. arXiv:1212.2341  [pdf, other

    cs.PL

    Semantics and Security Issues in JavaScript

    Authors: Stéphane Ducasse, Nicolas Petton, Guillermo Polito, Damien Cassou

    Abstract: There is a plethora of research articles describing the deep semantics of JavaScript. Nevertheless, such articles are often difficult to grasp for readers not familiar with formal semantics. In this report, we propose a digest of the semantics of JavaScript centered around security concerns. This document proposes an overview of the JavaScript language and the misleading semantic points in its des… ▽ More

    Submitted 11 December, 2012; originally announced December 2012.

    Comments: Deliverable Resilience FUI 12: 7.3.2.1 Failles de sécurité en JavaScript / JavaScript security issues