Browsing by Author "Henriques, Pedro"
Now showing 1 - 8 of 8
Results Per Page
Sort Options
- Assuring data privacy with PRIVAS - a tool for data publishersPublication . Miguel, Joana; Pereira, Maria João; Henriques, Pedro; Berón, MarioThe technology of nowadays allows to easily extract, store, process and use information about individuals and organizations. The increase of the amount of data collected and its value to our society was, at first, a great advance that could be used to optimize processes, find solutions and support decisions but also brought new problems related with lack of privacy and malicious attacks to confidential information. In this paper, a tool to anonymize databases is presented. It can be used by data publishers to protect information from attacks controlling the desired privacy level and the data usefulness. In order to specify these requirements a DSL (PrivasL) is used and the automatization of repository transformation, that is based on language processing techniques, is the novelty of this work.
- Biofeedback-based method for real-time fatigue monitoring of kneePublication . Franco, Tiago; Henriques, Pedro; Alves, Paulo; Pereira, Maria João; Leitão, Paulo; Azevedo, NelsonThis paper introduces and implements a method to monitor muscle fatigue in real-time using a wearable biofeedback system to improve muscle rehabilitation treatments. The biofeedback system consists of an electromyography (EMG) sensor to capture muscle activity and two motion sensors to track knee angles. The proposed method for monitoring muscle fatigue involves three steps: (1) recognition of the movement phases during the knee extension exercise; (2) clipping of the EMG signal and calculation of fatigue-related metrics; and (3) normalization of metrics through a calibration process. An experimental session was performed with 10 healthy subjects performing 50 repetitions of the knee extension exercise. Processed data revealed changes in fatigue-related metrics, which align with existing literature. A comparison was also made between real-time and computer processing using raw data. While minor differences were noted between the two processing methods, the mobile app closely mirrored the trajectory of processed data in the cloud, ensuring reliability and consistency. This study advances remote muscle rehabilitation by quantifying muscle fatigue during treatment sessions. Thus, health professionals can tailor treatment plans based on individual patient characteristics, optimizing treatment duration, and reducing injury risk.
- Characterization and identification of programming languagesPublication . Alves, Júlio; Neto, Álvaro; Pereira, Maria João; Henriques, PedroThis paper presents and discusses a research work whose main goal is to identify which characteristics influence the recognition and identification, by a programmer, of a programming language, specifically analysing a program source code and its linguistic style. In other words, the study that is described aims at answering the following questions: which grammatical elements – including lexical, syntactic, and semantic details – contribute the most for the characterization of a language? How many structural elements of a language may be modified without losing its identity? The long term objective of such research is to acquire new insights on the factors that can lead language engineers to design new programming languages that reduce the cognitive load of both learners and programmers. To elaborate on that subject, the paper starts with a brief explanation of programming languages fundamentals. Then, a list of the main syntactic characteristics of a set of programming languages, chosen for the study, is presented. Those characteristics outcome from the analysis we carried on at first phase of our project. To go deeper on the investigation we decided to collect and analyze the opinion of other programmers. So, the design of a survey to address that task is discussed. The answers obtained from the application of the questionnaire are analysed to present an overall picture of programming languages characteristics and their relative influence to their identification from the programmers’ perspective.
- DOLPHIN - a system for compilers development, teach and usePublication . Matos, Paulo; Henriques, PedroDOLPHIN is a framework conceived to help the development of compilers. It is based on model of code representation, designated by DOLPHIN Internal code Representation (DIR), which is enough abstract, flexible and powerful to be used on almost all compilation tasks. The framework contains several components, implemented over the DIR, that can be combined to build multiple language retargetable compilers. It supplies front-ends for several programming languages, back-ends for several computer architectures and a large number of code analysis and optimizations routines. Except for some specific points, the DOLPHIN framework is not by itself an innovator project, but the away how we intend to use and the applications that we intend to give to this framework, are by themselves quite different and innovative comparing with all the other projects that we know on this area. This paper proposes a full architecture, based on the DOLPHIN framework that integrates a large set of services related with compilers users, developers and teachers.
- Dolphin-complab: a virtual compilers laboratoryPublication . Matos, Paulo; Henriques, PedroThe goal of this paper is to present the Dolphin-COMPilers LABoratory (COMPLAB), an integrated environment conceived for the investigation, teaching, development and use of compilers. It employs Web technologies to make available a virtual laboratory containing a set of functionalities to: implement, analyze, test, evaluate and simulate compiler routines. This environment aims to support the classes of Language Processors of the graduate and post-graduate levels of the Computer Science courses, inside and outside of the classroom. The environment, reachable using a simple Web browser (connected to the Internet), should supply three distinct levels of access that correspond to three distinct types of users: conventional users, that can access to the laboratory to work on the projects where they are registered using the tools supplied by the DOLPHIN-COMPLAB; the project coordinators responsible for the management of the project (define the goals, choose tools and components, manage the users of the project, …); and the main coordinators that are responsible for the laboratory (registration of projects, integration of components, laboratory cleanness, etc). A conventional user has access to a several tools that support the two main stages of the compilers development process: the implementation and test. The functionalities supplied for the implementation allow to develop, modify and change the compiler components and the compiler structure. To support the test and evaluation of the compilers, it is supplied an integrated development environment where the users can analyze the behavior of the several compilation tasks and measure the performance of the compiler.
- Dolphin-complab: a virtual compilers laboratoryPublication . Matos, Paulo; Henriques, PedroDOLPHIN-COMPLAB is a project to implement a virtual laboratory containing all the necessary features for the development of compilers and compiler components. It was conceived to supply an environment for assisted cooperative work, based on the web technologies, and to be used by teams of investigators, developers or simple teacher/students.
- NLP/AI based techniques for programming exercises generationPublication . Freitas, Tiago; Neto, Álvaro; Pereira, Maria João; Henriques, PedroThis paper focuses on the enhancement of computer programming exercises generation to the benefit of both students and teachers. By exploring Natural Language Processing (NLP) and Machine Learning (ML) methods for automatic generation of text and source code, it is possible to semiautomatically construct programming exercises, aiding teachers to reduce redundant work and more easily apply active learning methodologies. This would not only allow them to still play a leading role in the teaching-learning process, but also provide students a better and more interactive learning experience. If embedded in a widely accessible website, an exercises generator with these Artificial Intelligence (AI) methods might be used directly by students, in order to obtain randomised lists of exercises for their own study, at their own time. The emergence of new and increasingly powerful technologies, such as the ones utilised by ChatGPT, raises the discussion about their use for exercise generation. Albeit highly capable, monetary and computational costs are still obstacles for wider adoption, as well as the possibility of incorrect results. This paper describes the characteristics and behaviour of several ML models applied and trained for text and code generation and their use to generate computer programming exercises. Finally, an analysis based on correctness and coherence of the resulting exercise statements and complementary source codes generated/produced is presented, and the role that this type of technology can play in a programming exercise automatic generation system is discussed.
- The design of a framework for compilers developmentPublication . Matos, Paulo; Henriques, PedroDOLPHIN framework is a solution conceived to support the development of modular compilers. Its supplies a large set of components, like: front-end’s, back-end’s, code analysis, code optimizations and measure components that can be combined to build new compilers. All these components work over a single form of intermediate code representation, the DOLPHIN Internal code Representation. The main principle that guides the conception of DOLPHIN framework was to build a user-friendly solution to develop high quality compilers. Such solution was achieved based on three main concepts: components, components reuse and data consistency. This paper, that aims to present the architectural design of DOLPHIN framework, demonstrates: how the concepts presented above influence the framework architecture; how they were ”implemented” on the framework, namely shows the interfaces defined for the components and for the code representation; how the components are related; how to use the components to implement concrete compilers; and how to evolve the components and the framework to support new features.