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

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...

Full description

Autores:
Gracia Ovalle , Yahir Eduardo
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2024
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/93307
Acceso en línea:
http://hdl.handle.net/11349/93307
Palabra clave:
Sipeed
M0sense
Lenguaje C
Transcompilador
Compilador
Ingeniería Eléctrica por Ciclos Propedéuticos -- Tesis y disertaciones académicas
Microcontroladores en IoT
Proyecto Aixt
Lenguaje de Programación Aixt
Sipeed
M0sense
C language
Transcompiler
Compiler
Rights
License
Abierto (Texto Completo)
Description
Summary: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.