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

dc.contributor.advisorMartínez Santa, Fernando
dc.contributor.authorGracia Ovalle , Yahir Eduardo
dc.contributor.orcidMartínez Santa, Fernando [0000-0001-6309-2908]
dc.date.accessioned2025-03-05T21:09:04Z
dc.date.available2025-03-05T21:09:04Z
dc.date.created2024-11-06
dc.descriptionEl 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.
dc.description.abstractThe 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.
dc.format.mimetypepdf
dc.identifier.urihttp://hdl.handle.net/11349/93307
dc.language.isospa
dc.publisherUniversidad Distrital Francisco José de Caldas
dc.relation.references[1] S. O. R. F. H. S. Fernando Martínez Santa, «Microcontrollers Programming Framework based on a V-like programming Language,» (IJACSA) International Journal of Advanced Computer Science and Aplications, vol. 13, nº 12, p. 8, 2022.
dc.relation.references[2] F. Martínez Santa, «Aixt,» 2022. [En línea]. Available: https://gitlab.com/fermarsan/aixt-project. [Último acceso: 27 Febrero 2023].
dc.relation.references[3] F. Martínez Santa, «Sokae Project,» Noviembre 2022. [En línea]. Available: https://gitlab.com/fermarsan/sokae-project. [Último acceso: 4 Marzo 2023].
dc.relation.references[4] Arduino, «Arduino,» 2023. [En línea]. Available: https://www.arduino.cc/. [Último acceso: 10 Agosto 2023].
dc.relation.references[5] MicroPython, «MicroPython,» [En línea]. Available: https://micropython.org/. [Último acceso: 12 Agosto 2023].
dc.relation.references[6] F. Martinez Santa y S. Orjuela Rivera, «Rust-like Programming Language for Low-resource,» Research India Publications, vol. 17, nº ISSN 0973- 5321, pp. 599-614, 2022.
dc.relation.references[7] M0sense, «M0sense,» 2023. [En línea]. Available:https://wiki.sipeed.com/[Último acceso: 12 Agosto 2024].
dc.rights.accesoAbierto (Texto Completo)
dc.rights.accessrightsOpenAccess
dc.subjectSipeed
dc.subjectM0sense
dc.subjectLenguaje C
dc.subjectTranscompilador
dc.subjectCompilador
dc.subject.keywordSipeed
dc.subject.keywordM0sense
dc.subject.keywordC language
dc.subject.keywordTranscompiler
dc.subject.keywordCompiler
dc.subject.lembIngeniería Eléctrica por Ciclos Propedéuticos -- Tesis y disertaciones académicas
dc.subject.lembMicrocontroladores en IoT
dc.subject.lembProyecto Aixt
dc.subject.lembLenguaje de Programación Aixt
dc.titleInclusió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
dc.title.titleenglishInclusion in the Aixt project of a Sipeed board of the M0sense series for the transcompilation of its source code from a V-based language to C language.
dc.typebachelorThesis
dc.type.coarhttp://purl.org/coar/resource_type/c_7a1f
dc.type.degreePasantía
dc.type.driverinfo:eu-repo/semantics/bachelorThesis

Archivos

Bloque original

Mostrando 1 - 2 de 2
Cargando...
Miniatura
Nombre:
GraciaOvalleYahirEduardo2024.PDF
Tamaño:
2.15 MB
Formato:
Adobe Portable Document Format
Descripción:
Trabajo de Grado
No hay miniatura disponible
Nombre:
Licencia de Uso y Publicación.pdf
Tamaño:
791.28 KB
Formato:
Adobe Portable Document Format

Bloque de licencias

Mostrando 1 - 1 de 1
No hay miniatura disponible
Nombre:
license.txt
Tamaño:
7 KB
Formato:
Item-specific license agreed upon to submission
Descripción: