Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- ArticleOctober 2024
SyDPaCC: A Framework for the Development of Verified Scalable Parallel Functional Programs
Leveraging Applications of Formal Methods, Verification and Validation. Specification and VerificationPages 274–295https://doi.org/10.1007/978-3-031-75380-0_16AbstractThe SyDPaCC framework supports the development of scalable parallel functional programs with Coq and helps the developers to write correct-by-construction programs with respect to specifications written as simple (and possibly very inefficient) ...
Functional Reactive Programming, Rearranged
Haskell 2024: Proceedings of the 17th ACM SIGPLAN International Haskell SymposiumPages 55–67https://doi.org/10.1145/3677999.3678278At present, the most efficient implementations of Arrowized Functional Reactive Programming (AFRP), such as Scalable FRP (SFRP), do not support the loop combinator. This prevents us from expressing fundamental programs in such implementations, which ...
- short-paperSeptember 2024
BUGFIX: towards a common language and framework for the Automatic Program Repair community
APR '24: Proceedings of the 5th ACM/IEEE International Workshop on Automated Program RepairPages 9–13https://doi.org/10.1145/3643788.3648007Techniques of Automatic Program Repair (APR) have the potential of thoroughly facilitating the task of producing quality software. After a promising start, however, progress in making APR practical has been hindered by the lack of a common framework to ...
- research-articleApril 2024
Mapping APIs in Dynamic-typed Programs by Leveraging Transfer Learning
ACM Transactions on Software Engineering and Methodology (TOSEM), Volume 33, Issue 4Article No.: 102, Pages 1–29https://doi.org/10.1145/3641848Application Programming Interface (API) migration is a common task for adapting software across different programming languages and platforms, where manually constructing the mapping relations between APIs is indeed time-consuming and error-prone. To ...
Shoggoth: A Formal Foundation for Strategic Rewriting
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue POPLArticle No.: 3, Pages 61–89https://doi.org/10.1145/3633211Rewriting is a versatile and powerful technique used in many domains. Strategic rewriting allows programmers to control the application of rewrite rules by composing individual rewrite rules into complex rewrite strategies. These strategies are ...
-
- research-articleFebruary 2024
Transformation of C Programming Language Memory Model into Object-Oriented Representation of EO Language
Automatic Control and Computer Sciences (ACCS), Volume 57, Issue 7Pages 803–816https://doi.org/10.3103/S0146411623070088Abstract—The paper analyzes the possibilities of transforming C programming language constructs into objects of EO programming language. The key challenge of the method is the transpilation from a system programming language into a language of a higher ...
- research-articleNovember 2023
Statfier: Automated Testing of Static Analyzers via Semantic-Preserving Program Transformations
ESEC/FSE 2023: Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software EngineeringPages 237–249https://doi.org/10.1145/3611643.3616272Static analyzers reason about the behaviors of programs without executing them and report issues when they violate pre-defined desirable properties. One of the key limitations of static analyzers is their tendency to produce inaccurate and incomplete ...
- ArticleDecember 2023
Verified High Performance Computing: The SyDPaCC Approach
Verification and Evaluation of Computer and Communication SystemsPages 15–29https://doi.org/10.1007/978-3-031-49737-7_2AbstractThe SyDPaCC framework for the Coq proof assistant is based on a transformational approach to develop verified efficient scalable parallel functional programs from specifications. These specifications are written as inefficient (potentially with a ...
This Is Driving Me Loopy: Efficient Loops in Arrowized Functional Reactive Programs
Haskell 2023: Proceedings of the 16th ACM SIGPLAN International Haskell SymposiumPages 3–17https://doi.org/10.1145/3609026.3609726Arrowized Functional Reactive Programming (AFRP) is one approach to writing reactive programs declaratively, based on the arrows abstraction in Haskell. While AFRP elegantly expresses the relationships between inputs and outputs of a reactive system, na'...
- ArticleJuly 2023
Tail Recursion Transformation for Invertible Functions
AbstractTail recursive functions allow for a wider range of optimisations than general recursive functions. For this reason, much research has gone into the transformation and optimisation of this family of functions, in particular those written in ...
- research-articleSeptember 2023
On ML-Based Program Translation: Perils and Promises
ICSE-NIER '23: Proceedings of the 45th International Conference on Software Engineering: New Ideas and Emerging ResultsPages 60–65https://doi.org/10.1109/ICSE-NIER58687.2023.00017With the advent of new and advanced programming languages, it becomes imperative to migrate legacy software to new programming languages. Unsupervised Machine Learning-based Program Translation could play an essential role in such migration, even ...
- research-articleSeptember 2022
Tight Error Analysis in Fixed-point Arithmetic
Formal Aspects of Computing (FAC), Volume 34, Issue 1Article No.: 3, Pages 1–32https://doi.org/10.1145/3524051We consider the problem of estimating the numerical accuracy of programs with operations in fixed-point arithmetic and variables of arbitrary, mixed precision, and possibly non-deterministic value. By applying a set of parameterised rewrite rules, we ...
- research-articleSeptember 2022
Verification of Programs Sensitive to Heap Layout
ACM Transactions on Software Engineering and Methodology (TOSEM), Volume 31, Issue 4Article No.: 71, Pages 1–27https://doi.org/10.1145/3508363Most C and C++ programs use dynamically allocated memory (often known as a heap) to store and organize their data. In practice, it can be useful to compare addresses of different heap objects, for instance, to store them in a binary search tree or a ...
- research-articleMay 2022
Constraint-logic object-oriented programming on the Java virtual machine
SAC '22: Proceedings of the 37th ACM/SIGAPP Symposium on Applied ComputingPages 1258–1267https://doi.org/10.1145/3477314.3507058Constraint-logic object-oriented programming is a paradigm by means of which multiple application areas, such as the formulation of and solving constraint-satisfaction problems, the systematic generation of object graphs, and test-case generation become ...
- research-articleNovember 2021
Delta-based verification of software product families
GPCE 2021: Proceedings of the 20th ACM SIGPLAN International Conference on Generative Programming: Concepts and ExperiencesPages 69–82https://doi.org/10.1145/3486609.3487200The quest for feature- and family-oriented deductive verification of software product lines resulted in several proposals. In this paper we look at delta-oriented modeling of product lines and combine two new ideas: first, we extend Hähnle & Schaefer’s ...
- research-articleOctober 2021
PrivaLog: a Privacy-aware Logic Programming Language
PPDP '21: Proceedings of the 23rd International Symposium on Principles and Practice of Declarative ProgrammingArticle No.: 15, Pages 1–14https://doi.org/10.1145/3479394.3479410Logic Programming (LP) is a subcategory of declarative programming that is considered to be relatively simple for non-programmers. LP developers focus on describing facts and rules of a logical derivation, and do not need to think about the algorithms ...
- research-articleSeptember 2021
Memory-safe elimination of side channels
CGO '21: Proceedings of the 2021 IEEE/ACM International Symposium on Code Generation and OptimizationPages 200–210https://doi.org/10.1109/CGO51591.2021.9370305A program is said to be isochronous if its running time does not depend on classified information. The programming languages literature contains much work that transforms programs to ensure isochronicity. The current state-of-the-art approach is a code ...
- research-articleNovember 2020
An approach to represent and transform application-specific constraints for an intrusion detection system
While the need for newer and more efficient network security techniques is increasing, refining the existing and proven techniques can also have potential benefits. One of the aspects of such improvements in the existing systems is making them flexible ...
- short-paperSeptember 2020
Automatic Android Deprecated-API Usage Update by Learning from Single Updated Example
- Stefanus A. Haryono,
- Ferdian Thung,
- Hong Jin Kang,
- Lucas Serrano,
- Gilles Muller,
- Julia Lawall,
- David Lo,
- Lingxiao Jiang
ICPC '20: Proceedings of the 28th International Conference on Program ComprehensionPages 401–405https://doi.org/10.1145/3387904.3389285Due to the deprecation of APIs in the Android operating system, developers have to update usages of the APIs to ensure that their applications work for both the past and current versions of Android. Such updates may be widespread, non-trivial, and time-...
Stacked borrows: an aliasing model for Rust
Proceedings of the ACM on Programming Languages (PACMPL), Volume 4, Issue POPLArticle No.: 41, Pages 1–32https://doi.org/10.1145/3371109Type systems are useful not just for the safety guarantees they provide, but also for helping compilers generate more efficient code by simplifying important program analyses. In Rust, the type system imposes a strict discipline on pointer aliasing, and ...