Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by HumanISE

2024

A C Subset for Ergonomic Source-to-Source Analyses and Transformations

Authors
Matos, JN; Bispo, J; Sousa, LM;

Publication
PROCEEDINGS OF THE RAPIDO 2024 WORKSHOP, HIPEAC 2024

Abstract
Modern compiled software, written in languages such as C, relies on complex compiler infrastructure. However, developing new transformations and improving existing ones can be challenging for researchers and engineers. Often, transformations must be implemented bymodifying the compiler itself, which may not be feasible, for technical or legal reasons. Source-to-source compilers make it possible to directly analyse and transform the original source, making transformations portable across different compilers, and allowing rapid research and prototyping of code transformations. However, this approach has the drawback of exposing the researcher to the full breadth of the source language, which is often more extensive and complex than the IRs used in traditional compilers. In this work, we propose a solution to tame the complexity of the source language and make source-to-source compilers an ergonomic platform for program analysis and transformation. We define a simpler subset of the C language that can implement the same programs with fewer constructs and implement a set of sourceto-source transformations that automatically normalise the input source code into equivalent programs expressed in the proposed subset. Finally, we implement a function inlining transformation that targets the subset as a case study. We show that for this case study, the assumptions afforded by using a simpler language subset greatly improves the number of cases the transformation can be applied, increasing the average success rate from 37%, before normalisation, to 97%, after normalisation. We also evaluate the performance of several benchmarks after applying a naive inlining algorithm, and obtained a 12% performance improvement in certain applications, after compiling with the flag O2, both in Clang and GCC, suggesting there is room for exploring source-level transformations as a complement to traditional compilers.

2024

15th Workshop on Parallel Programming and Run-Time Management Techniques for Many-Core Architectures and 13th Workshop on Design Tools and Architectures for Multicore Embedded Computing Platforms, PARMA-DITAM 2024, January 18, 2024, Munich, Germany

Authors
Bispo, J; Xydis, S; Curzel, S; Sousa, LM;

Publication
PARMA-DITAM

Abstract

2024

Foundations for a Rust-Like Borrow Checker for C

Authors
Silva, T; Bispo, J; Carvalho, T;

Publication
PROCEEDINGS OF THE 25TH ACM SIGPLAN/SIGBED INTERNATIONAL CONFERENCE ON LANGUAGES, COMPILERS, AND TOOLS FOR EMBEDDED SYSTEMS, LCTES 2024

Abstract
Memory safety issues in C are the origin of various vulnerabilities that can compromise a program's correctness or safety from attacks. We propose a different approach to tackle memory safety, the replication of Rust's Mid-level Intermediate Representation (MIR) Borrow Checker, through the usage of static analysis and successive source-to-source code transformations, to be composed upstream of the compiler, thus ensuring maximal compatibility with most build systems. This allows us to approximate a subset of C to Rust's core concepts, applying the memory safety guarantees of the rustc compiler to C. In this work, we present a survey of Rust's efforts towards ensuring memory safety, and describe the theoretical basis for a C borrow checker, alongside a proof-of-concept that was developed to demonstrate its potential. This prototype correctly identified violations of the ownership and aliasing rules, and accurately reported each error with a level of detail comparable to that of the rustc compiler.

2024

Towards a Rust-Like Borrow Checker for C

Authors
Silva, T; Correia, P; Sousa, L; Bispo, J; Carvalho, T;

Publication
ACM Transactions on Embedded Computing Systems

Abstract
Memory safety issues in C are the origin of various vulnerabilities that can compromise a program’s correctness or safety from attacks. We propose an approach to tackle memory safety by replicating Rust’s Mid-level Intermediate Representation (MIR) Borrow Checker. Our solution uses static analysis and successive source-to-source code transformations to be composed upstream of the compiler, ensuring maximal compatibility with existing build systems. This allows us to apply the memory safety guarantees of the rustc compiler to C code with fewer changes than a rewrite in Rust. In this work, we present a comprehensive study of Rust’s efforts towards ensuring memory safety, and describe the theoretical basis for a C borrow checker, alongside a proof-of-concept that was developed to demonstrate its potential. We have evaluated the prototype on the CHStone and bzip2 benchmarks. This prototype correctly identified violations of the ownership and aliasing rules, and exposed incompatibilities between such rules and common C patterns, which can be addressed in future work.

2024

The City Makes Its Mark in a Review on Digital Communication and Citizenship

Authors
Andrade, JG; Sampaio, A; Garcia, JE; Fonseca, MJ;

Publication
INFORMATION SYSTEMS AND TECHNOLOGIES, VOL 4, WORLDCIST 2023

Abstract
This article delves into the intersections of place branding, digital strategic communication, citizenship, and tourism. It explores the dynamic relationship between these concepts, particularly within the context of Brazilian city governments. With an emphasis on reflexivity, the study investigates how governments manage their public image and engage citizens through digital channels. Simultaneously, it examines how these governments strategically position their cities as attractive tourist destinations. By analyzing these tensions and synergies, the article provides insights into the complex landscape of communication strategies employed by Brazilian city governments, which aim to balance citizen engagement and tourism promotion.

2024

Integrating Online and Offline Distribution Strategies - A Portuguese Case Study

Authors
Santos, A; Garcia, JE; Oliveira, LC; de Araujo, DL; da Fonseca, MJS;

Publication
INFORMATION SYSTEMS AND TECHNOLOGIES, VOL 4, WORLDCIST 2023

Abstract
The online channel, particularly in the food retail area, has been evolving positively and exponentially in the world, including Portugal. Currently, this type of purchase is increasingly part of people's daily lives, even more so with the emergence of the Covid-19 pandemic. Consequently, in Portugal, most companies adopt a multichannel strategy, where the physical store and the online store operate independently from each other. However, it is necessary to rethink this channel integration model, which may go through an omnichannel strategy, where the physical store and the online store operate as a single store, and where several advantages are already recognized in terms of the consumer's shopping experience. The main objective of this study is to understand the strategy implemented by the company studied, Pingo Doce, through an analysis and description of its channels. To better understand the strategy of the company under study, a semi-structured exploratory interview was carried out with one of the people in charge of Pingo Doce's digital channels, to understand the strategy used by the company and thus complement the data obtained through direct observation and bibliographic research. At the end of the work developed it was possible to understand the positioning of Pingo Doce in the online food retail area and their online and offline distribution strategies.

  • 40
  • 658