Inclusión al proyecto Aixt de una placa de la marca Sipeed de la serie M0sense para la transcompilación de su código fuente desde un lenguaje basado en V a lenguaje C

Fecha

Autor corporativo

Título de la revista

ISSN de la revista

Título del volumen

Editor

Universidad Distrital Francisco José de Caldas

Compartir

Altmetric

Resumen

The Aixt project is a programming framework for microcontrollers that uses a modern language syntax and focuses on low-resource devices. It consists of 3 main components: the Aixt programming language based on the V language syntax [1], the Aixt to C transcompiler, which translates the Aixt language source code into C language for the native C compiler specific to each microcontroller, and the Aixt API (Application Programming Interface), which facilitates programming by standardizing the configuration and data input and output functions for all supported boards [2]. The Aixt language can be considered as a subset of the V language, implementing much of its syntax, but leaving out programming features that would be expensive to implement on microcontrollers in terms of memory space.

The idea of the Aixt project was born, in 2022 with the claims of the Sokae project [3] to establish a middle ground between the programming structure and language of the Arduino (C-based) [4] and Microphyton (Python-based) [5] projects, “the programming structure is composed of three main components: a language based on Rust syntax, a transcopiler that converts source code written in Rust to C language, and an API.” [6]. Unlike the Sokae project which uses the Rust programming language as a base, the Aixt project uses the V language which has a simpler syntax and is more in line with the minimalist approach of the project.

This project will address an important need in the technology market, because there is currently a great demand for solutions that allow the migration of applications from one language to another efficiently and effectively.

The project will consist in giving support to the series of a M0sense board to be integrated to the Aixt project, this will be done by implementing an API in C including the basic functions of a board supported by the Aixt project and a configuration file that allows the transcompiler to make an effective translation between the two languages. The project will allow source code in Aixt language to be correctly compiled to the PIC16F series automatically, without having to make manual changes that can be tedious and costly in terms of time and resources. Aixt is optimized to run efficiently on resource-constrained devices such as an M0sense series board, making it suitable for applications that require a resource-efficient solution.

This project represents an opportunity to apply knowledge and skills acquired during the training in Electrical Engineering and will contribute with innovative solutions to the technological market. This project is planned to be developed in a maximum of 4 months and for this purpose a total of 384 working hours have been allocated for this internship. This time will be distributed efficiently to achieve the proposed objectives within the established time frame.

Descripción

El proyecto Aixt es una estructura de programación para microcontroladores que utiliza una sintaxis de lenguaje moderno y se centra en dispositivos de bajos recursos. Dicho proyecto está compuesto por 3 componentes principales: El lenguaje de programación Aixt basado en la sintaxis del lenguaje V [1], El transcompilador de Aixt a C, que traduce el código fuente de lenguaje Aixt a lenguaje C para el compilador de C nativo específico de cada microcontrolador y la API (Application Programming Interface) de Aixt, que facilita la programación al estandarizar para todos una placa soportados la configuración y las funciones de entrada y salida de datos [2]. El lenguaje Aixt se puede considerar como un subconjunto del lenguaje V, implementando gran parte de su sintaxis, pero dejando fuera las características de programación que serían costosas de implementar en microcontroladores en términos de espacio de memoria. La idea del proyecto Aixt nació, en el 2022 con las pretensiones del proyecto Sokae [3] de establecer un punto medio entre las estructura de programación y lenguaje de los proyectos Arduino (Basado en C) [4] y Microphyton (basado en Python) [5], “la estructura de programación está compuesta de tres componentes principales: un lenguaje basado en la sintaxis de Rust, un transcopilador que convierte el código fuente escrito en Rust a lenguaje C, y una API.” [6]. A diferencia del proyecto Sokae que usa como base el lenguaje de programación Rust, el proyecto Aixt usa el lenguaje V el cual tiene una sintaxis más sencilla y por está más acorde con el enfoque minimalista del proyecto. Este proyecto abordará una importante necesidad en el mercado tecnológico, debido a que actualmente existe una gran demanda de soluciones que permitan la migración de aplicaciones de un lenguaje a otro de manera eficiente y efectiva. El proyecto consistirá en darle soporte a la serie de una placa M0sense para integrarse al proyecto Aixt, esto se realizará implementando una API en C incluyendo las funciones básicas de funcionamiento de una placa soportadas por el proyecto Aixt y un archivo de configuración que permita al transcompilador hacer una traducción efectiva entre los dos lenguajes. El proyecto permitirá realizar código fuente en lenguaje Aixt que sea correctamente compilado a la serie PIC16F de manera automática, sin tener que realizar cambios manuales que puedan resultar tediosos y costosos en términos de tiempo y recursos. Aixt está optimizado para funcionar eficientemente en dispositivos con recursos limitados como los es una placa de la serie M0sense, lo que lo hace adecuado para aplicaciones que requieren una solución eficiente en términos de recursos. Este proyecto representa una oportunidad de aplicar conocimientos y habilidades adquiridos durante la formación en Ingeniería Eléctrica y contribuirá con soluciones innovadoras al mercado tecnológico. Se ha planificado que el presente proyecto sea desarrollado en un máximo de 4 meses y para ello se han asignado un total de 384 horas de trabajo para esta pasantía. Este tiempo se distribuirá de manera eficiente para lograr los objetivos propuestos dentro del plazo establecido.

Palabras clave

Sipeed, M0sense, Lenguaje C, Transcompilador, Compilador

Materias

Ingeniería Eléctrica por Ciclos Propedéuticos -- Tesis y disertaciones académicas , Microcontroladores en IoT , Proyecto Aixt , Lenguaje de Programación Aixt

Citación