Generación automática de puertos en Erlang
Son 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...
| Autor: | |
|---|---|
| Tipo de documento: | dissertação |
| Data de publicação: | 2018 |
| País: | España |
| Repositório: | Docta Complutense |
| Idioma: | espanhol |
| OAI Identifier: | oai:docta.ucm.es:20.500.14352/19973 |
| Acesso em linha: | https://hdl.handle.net/20.500.14352/19973 |
| Access Level: | Acceso aberto |
| Palavra-chave: | 004.438C(043.3.) 004.438Erlang(043.3) Binding C Comunicación Erlang-C Erlang Generación automática de código Interoperabilidad Librería NIF Puerto SDL Automatic code generation Erlang-C communication Interoperability Library Port Lenguajes de programación Programación de ordenadores (Informática) 1203.23 Lenguajes de Programación |
| id |
ES_8d849b6cf0c5bea08036a0e7273263f0 |
|---|---|
| oai_identifier_str |
oai:docta.ucm.es:20.500.14352/19973 |
| network_acronym_str |
ES |
| network_name_str |
España |
| repository_id_str |
|
| spelling |
Generación automática de puertos en ErlangSuárez Jiménez, Fernando004.438C(043.3.)004.438Erlang(043.3)BindingCComunicación Erlang-CErlangGeneración automática de códigoInteroperabilidadLibreríaNIFPuertoSDLAutomatic code generationErlang-C communicationInteroperabilityLibraryPortLenguajes de programaciónProgramación de ordenadores (Informática)1203.23 Lenguajes de Programación1203.23 Lenguajes de ProgramaciónSon 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.Montenegro Montes, ManuelUniversidad Complutense de Madrid20232023-06-1820182018-01-0120182018-01-01master thesishttp://purl.org/coar/resource_type/c_bdccinfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/20.500.14352/19973reponame:Docta Complutenseinstname:Españolspaopen accesshttp://purl.org/coar/access_right/c_abf2Atribución-NoComercial 3.0 Españahttps://creativecommons.org/licenses/by-nc/3.0/es/info:eu-repo/semantics/openAccessoai:docta.ucm.es:20.500.14352/199732025-08-02T12:44:52Z |
| dc.title.none.fl_str_mv |
Generación automática de puertos en Erlang |
| title |
Generación automática de puertos en Erlang |
| spellingShingle |
Generación automática de puertos en Erlang Suárez Jiménez, Fernando 004.438C(043.3.) 004.438Erlang(043.3) Binding C Comunicación Erlang-C Erlang Generación automática de código Interoperabilidad Librería NIF Puerto SDL Automatic code generation Erlang-C communication Interoperability Library Port Lenguajes de programación Programación de ordenadores (Informática) 1203.23 Lenguajes de Programación 1203.23 Lenguajes de Programación |
| title_short |
Generación automática de puertos en Erlang |
| title_full |
Generación automática de puertos en Erlang |
| title_fullStr |
Generación automática de puertos en Erlang |
| title_full_unstemmed |
Generación automática de puertos en Erlang |
| title_sort |
Generación automática de puertos en Erlang |
| dc.creator.none.fl_str_mv |
Suárez Jiménez, Fernando |
| author |
Suárez Jiménez, Fernando |
| author_facet |
Suárez Jiménez, Fernando |
| author_role |
author |
| dc.contributor.none.fl_str_mv |
Montenegro Montes, Manuel Universidad Complutense de Madrid |
| dc.subject.none.fl_str_mv |
004.438C(043.3.) 004.438Erlang(043.3) Binding C Comunicación Erlang-C Erlang Generación automática de código Interoperabilidad Librería NIF Puerto SDL Automatic code generation Erlang-C communication Interoperability Library Port Lenguajes de programación Programación de ordenadores (Informática) 1203.23 Lenguajes de Programación 1203.23 Lenguajes de Programación |
| topic |
004.438C(043.3.) 004.438Erlang(043.3) Binding C Comunicación Erlang-C Erlang Generación automática de código Interoperabilidad Librería NIF Puerto SDL Automatic code generation Erlang-C communication Interoperability Library Port Lenguajes de programación Programación de ordenadores (Informática) 1203.23 Lenguajes de Programación 1203.23 Lenguajes de Programación |
| description |
Son 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. |
| publishDate |
2018 |
| dc.date.none.fl_str_mv |
2018 2018-01-01 2018 2018-01-01 2023 2023-06-18 |
| dc.type.none.fl_str_mv |
master thesis http://purl.org/coar/resource_type/c_bdcc info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| dc.identifier.none.fl_str_mv |
https://hdl.handle.net/20.500.14352/19973 |
| url |
https://hdl.handle.net/20.500.14352/19973 |
| dc.language.none.fl_str_mv |
Español spa |
| language_invalid_str_mv |
Español |
| language |
spa |
| dc.rights.none.fl_str_mv |
open access http://purl.org/coar/access_right/c_abf2 Atribución-NoComercial 3.0 España https://creativecommons.org/licenses/by-nc/3.0/es/ info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
open access http://purl.org/coar/access_right/c_abf2 Atribución-NoComercial 3.0 España https://creativecommons.org/licenses/by-nc/3.0/es/ |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.source.none.fl_str_mv |
reponame:Docta Complutense instname: |
| instname_str |
|
| reponame_str |
Docta Complutense |
| collection |
Docta Complutense |
| repository.name.fl_str_mv |
|
| repository.mail.fl_str_mv |
|
| _version_ |
1844180594951454720 |
| score |
15,638193 |