Aviso: para depositar documentos, por favor, inicia sesión e identifícate con tu cuenta de correo institucional de la UCM con el botón MI CUENTA UCM. No emplees la opción AUTENTICACIÓN CON CONTRASEÑA
 

Generación automática de puertos en Erlang

dc.contributor.advisorMontenegro Montes, Manuel
dc.contributor.authorSuárez Jiménez, Fernando
dc.date.accessioned2023-06-18T00:49:29Z
dc.date.available2023-06-18T00:49:29Z
dc.date.issued2018
dc.descriptionFacultad de Informática, Departamento de Sistemas Informáticos y Computación, curso 2017-2018 El código desarrollado en este proyecto puede encontrarse en los siguientes repositorios: Prueba de concepto de SDL en C: https://github.com/fersj/TFM-TestSDLGame Herramienta de generación de código: https://github.com/fersj/ErlangSDL
dc.description.abstractSon varios los mecanismos de interoperabilidad ofrecidos por el lenguaje Erlang para realizar conexiones con código C. En este trabajo se han estudiado varios de estos mecanismos con el fin de encontrar el más adecuado para la generación de bindings que permitan el uso de librerías de C en programas Erlang. La primera parte de este trabajo se ha centrado en la realización de varias pruebas de concepto con la librería SDL de C evaluando el uso de varios de estos mecanismos, como las NIFs o los puertos. Una vez realizadas estas pruebas y determinado el método más adecuado, se ha desarrollado en Erlang una herramienta automática de generación de bindings que se encarga de producir el código C y el código Erlang necesario para poder utilizar estas librerías de C en programas Erlang de una manera sencilla y completamente funcional. Esta herramienta requiere de un fichero de especificación que establece la correspondencia entre los elementos de ambos lenguajes y ha de ser escrito manualmente por el programador. Entre las características del código generado por esta herramienta podemos destacar: manejo de tipos básicos de C, funciones, punteros, arrays, estructuras, uniones y enumerados, tratamiento de macros, soporte para funciones de orden superior y gestión automatizada de memoria dinámica para punteros de C. Todas estas características permiten la creación de programas Erlang plenamente funcionales que hacen uso de librerías de C, como es el caso del programa de prueba realizado para la librería SDL.
dc.description.abstractThere are several interoperability mechanisms offered by the Erlang language to make connections with C code. In this work we have studied several of these mechanisms in order to find the most suitable for the generation of bindings that allow the use of C libraries in Erlang programs. The first part of this work focuses on carrying out several proof-of-concept tests with the SDL C library, evaluating the use of several of these mechanisms, such as NIFs or ports. Once these tests have been carried out and the most appropriate method has been determined, an automatic generation tool for bindings has been developed in Erlang, which is responsible for producing the C and Erlang code necessary to use these C libraries in Erlang programs in a simple and fully functional way. This tool requires a specification file that establishes the correspondence between the elements of both languages and has to be written manually by the programmer. Among the features of the code generated by this tool we can highlight: C basic type management, functions, pointers, arrays, structures, unions and enumerations, macro management, higher-order function support and automatic dynamic memory management for C pointers. All these features allow the creation of fully functional Erlang programs that use C libraries, as is the case with the test program for the SDL library.
dc.description.departmentDepto. de Sistemas Informáticos y Computación
dc.description.facultyFac. de Informática
dc.description.refereedTRUE
dc.description.statusunpub
dc.eprint.idhttps://eprints.ucm.es/id/eprint/49788
dc.identifier.urihttps://hdl.handle.net/20.500.14352/19973
dc.language.isospa
dc.master.titleMáster en Ingeniería Informática
dc.page.total128
dc.rightsAtribución-NoComercial 3.0 España
dc.rights.accessRightsopen access
dc.rights.urihttps://creativecommons.org/licenses/by-nc/3.0/es/
dc.subject.cdu004.438C(043.3.)
dc.subject.cdu004.438Erlang(043.3)
dc.subject.keywordBinding
dc.subject.keywordC
dc.subject.keywordComunicación Erlang-C
dc.subject.keywordErlang
dc.subject.keywordGeneración automática de código
dc.subject.keywordInteroperabilidad
dc.subject.keywordLibrería
dc.subject.keywordNIF
dc.subject.keywordPuerto
dc.subject.keywordSDL
dc.subject.keywordAutomatic code generation
dc.subject.keywordErlang-C communication
dc.subject.keywordInteroperability
dc.subject.keywordLibrary
dc.subject.keywordPort
dc.subject.ucmLenguajes de programación
dc.subject.ucmProgramación de ordenadores (Informática)
dc.subject.unesco1203.23 Lenguajes de Programación
dc.subject.unesco1203.23 Lenguajes de Programación
dc.titleGeneración automática de puertos en Erlang
dc.typemaster thesis
dspace.entity.typePublication
relation.isAdvisorOfPublicationdc391c7e-9682-4142-a1de-7d649b26bf3d
relation.isAdvisorOfPublication.latestForDiscoverydc391c7e-9682-4142-a1de-7d649b26bf3d

Download

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
TFM - Generación automática de puertos en Erlang.pdf
Size:
1.56 MB
Format:
Adobe Portable Document Format