Programming with non-determinism: a rewriting based approach
Este trabajo trata acerca del uso del indeterminismo como un recurso expresivo de los lenguajes de programación. En los lenguajes indeterministas se ofrecen primitivas que pueden ser utilizadas para expresar cómputos cuyo resultado final no está totalmente determinado por los datos de entrada. En es...
| Autor: | |
|---|---|
| Tipo de recurso: | tesis doctoral |
| Fecha de publicación: | 2010 |
| País: | España |
| Institución: | Universidad Complutense de Madrid (UCM) |
| Repositorio: | Docta Complutense |
| Idioma: | inglés |
| OAI Identifier: | oai:docta.ucm.es:20.500.14352/47569 |
| Acceso en línea: | https://hdl.handle.net/20.500.14352/47569 |
| Access Level: | acceso abierto |
| Palabra clave: | 004.42.048(043.2) Programación declarativa Lenguajes de programación Programación lógica Programación funcional Programación 1203.23 Lenguajes de Programación |
| id |
ES_c091c67fc894f582399b75da14c8a25b |
|---|---|
| oai_identifier_str |
oai:docta.ucm.es:20.500.14352/47569 |
| network_acronym_str |
ES |
| network_name_str |
España |
| repository_id_str |
|
| spelling |
Programming with non-determinism: a rewriting based approachProgramación con indeterminismo: un enfoque basado en reescrituraRodríguez Hortalá, Juan004.42.048(043.2)Programación declarativaLenguajes de programaciónProgramación lógicaProgramación funcionalProgramaciónLenguajes de programación1203.23 Lenguajes de ProgramaciónEste trabajo trata acerca del uso del indeterminismo como un recurso expresivo de los lenguajes de programación. En los lenguajes indeterministas se ofrecen primitivas que pueden ser utilizadas para expresar cómputos cuyo resultado final no está totalmente determinado por los datos de entrada. En estos lenguajes, en los que la concurrencia no tiene porqué estar presente, el indeterminismo es parte del modelo de cómputo. La programación lógico-funcional, o en general, la programación declarativa multiparadigma, constituye un importante campo de investigación que intenta integrar en el mismo lenguaje las principales virtudes de varios paradigmas independientes: programación lógica, programación funcional perezosa e incluso programación con restricciones. Dos representantes modernos de esta linea son los lenguajes Toy y Curry, que comparten sus características principales. En estos lenguajes se emplean sistemas de reescritura de términos no confluentes como programas, de esta manera soportando funciones no estrictas e indeterministas, que son una de las características distintivas del paradigma. En esta tesis hemos intentado hacer algunas contribuciones al campo de la programación lógico-funcional indeterminista, usando los sistemas de reescritura basados en constructoras como el punto de partida de nuestros formalismos. Nuestros objetivos son diversos, a menudo al nivel de las descripciones semánticas, donde tratamos de aportar construcciones y resultados que esperamos puedan ser de utilidad para profundizar en la comprensión del significado de los programas, o como herramientas para la manipulación, análisis y transformación de programas. También nos hemos ocupado de aspectos más prácticos, y algunos prototipos han sido desarrollados a consecuencia de ello. Unas veces trabajamos en un marco consolidado---concretamente call-time choice o run-time choice---mientras que otras hemos decidido explorar las capacidades expresivas de las funciones indeterministas proponiendo nuevos marcos semánticos, algunos de ellos surgiendo de la combinación de semánticas ya existentes, otros presentando propuestas semánticas más novedosas.Universidad Complutense de Madrid, Servicio de PublicacionesLópez Fraguas, Francisco JavierSánchez Hernández, JaimeUniversidad Complutense de Madrid20102010-12-0320102010-12-03doctoral thesishttp://purl.org/coar/resource_type/c_db06info:eu-repo/semantics/doctoralThesisapplication/pdfhttps://hdl.handle.net/20.500.14352/47569reponame:Docta Complutenseinstname:Universidad Complutense de Madrid (UCM)Inglésengopen accesshttp://purl.org/coar/access_right/c_abf2info:eu-repo/semantics/openAccessoai:docta.ucm.es:20.500.14352/475692026-06-02T12:44:21Z |
| dc.title.none.fl_str_mv |
Programming with non-determinism: a rewriting based approach Programación con indeterminismo: un enfoque basado en reescritura |
| title |
Programming with non-determinism: a rewriting based approach |
| spellingShingle |
Programming with non-determinism: a rewriting based approach Rodríguez Hortalá, Juan 004.42.048(043.2) Programación declarativa Lenguajes de programación Programación lógica Programación funcional Programación Lenguajes de programación 1203.23 Lenguajes de Programación |
| title_short |
Programming with non-determinism: a rewriting based approach |
| title_full |
Programming with non-determinism: a rewriting based approach |
| title_fullStr |
Programming with non-determinism: a rewriting based approach |
| title_full_unstemmed |
Programming with non-determinism: a rewriting based approach |
| title_sort |
Programming with non-determinism: a rewriting based approach |
| dc.creator.none.fl_str_mv |
Rodríguez Hortalá, Juan |
| author |
Rodríguez Hortalá, Juan |
| author_facet |
Rodríguez Hortalá, Juan |
| author_role |
author |
| dc.contributor.none.fl_str_mv |
López Fraguas, Francisco Javier Sánchez Hernández, Jaime Universidad Complutense de Madrid |
| dc.subject.none.fl_str_mv |
004.42.048(043.2) Programación declarativa Lenguajes de programación Programación lógica Programación funcional Programación Lenguajes de programación 1203.23 Lenguajes de Programación |
| topic |
004.42.048(043.2) Programación declarativa Lenguajes de programación Programación lógica Programación funcional Programación Lenguajes de programación 1203.23 Lenguajes de Programación |
| description |
Este trabajo trata acerca del uso del indeterminismo como un recurso expresivo de los lenguajes de programación. En los lenguajes indeterministas se ofrecen primitivas que pueden ser utilizadas para expresar cómputos cuyo resultado final no está totalmente determinado por los datos de entrada. En estos lenguajes, en los que la concurrencia no tiene porqué estar presente, el indeterminismo es parte del modelo de cómputo. La programación lógico-funcional, o en general, la programación declarativa multiparadigma, constituye un importante campo de investigación que intenta integrar en el mismo lenguaje las principales virtudes de varios paradigmas independientes: programación lógica, programación funcional perezosa e incluso programación con restricciones. Dos representantes modernos de esta linea son los lenguajes Toy y Curry, que comparten sus características principales. En estos lenguajes se emplean sistemas de reescritura de términos no confluentes como programas, de esta manera soportando funciones no estrictas e indeterministas, que son una de las características distintivas del paradigma. En esta tesis hemos intentado hacer algunas contribuciones al campo de la programación lógico-funcional indeterminista, usando los sistemas de reescritura basados en constructoras como el punto de partida de nuestros formalismos. Nuestros objetivos son diversos, a menudo al nivel de las descripciones semánticas, donde tratamos de aportar construcciones y resultados que esperamos puedan ser de utilidad para profundizar en la comprensión del significado de los programas, o como herramientas para la manipulación, análisis y transformación de programas. También nos hemos ocupado de aspectos más prácticos, y algunos prototipos han sido desarrollados a consecuencia de ello. Unas veces trabajamos en un marco consolidado---concretamente call-time choice o run-time choice---mientras que otras hemos decidido explorar las capacidades expresivas de las funciones indeterministas proponiendo nuevos marcos semánticos, algunos de ellos surgiendo de la combinación de semánticas ya existentes, otros presentando propuestas semánticas más novedosas. |
| publishDate |
2010 |
| dc.date.none.fl_str_mv |
2010 2010-12-03 2010 2010-12-03 |
| dc.type.none.fl_str_mv |
doctoral thesis http://purl.org/coar/resource_type/c_db06 |
| dc.type.openaire.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
| format |
doctoralThesis |
| dc.identifier.none.fl_str_mv |
https://hdl.handle.net/20.500.14352/47569 |
| url |
https://hdl.handle.net/20.500.14352/47569 |
| dc.language.none.fl_str_mv |
Inglés eng |
| language_invalid_str_mv |
Inglés |
| language |
eng |
| dc.rights.none.fl_str_mv |
open access http://purl.org/coar/access_right/c_abf2 |
| dc.rights.openaire.fl_str_mv |
info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
open access http://purl.org/coar/access_right/c_abf2 |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.publisher.none.fl_str_mv |
Universidad Complutense de Madrid, Servicio de Publicaciones |
| publisher.none.fl_str_mv |
Universidad Complutense de Madrid, Servicio de Publicaciones |
| dc.source.none.fl_str_mv |
reponame:Docta Complutense instname:Universidad Complutense de Madrid (UCM) |
| instname_str |
Universidad Complutense de Madrid (UCM) |
| reponame_str |
Docta Complutense |
| collection |
Docta Complutense |
| repository.name.fl_str_mv |
|
| repository.mail.fl_str_mv |
|
| _version_ |
1869418488489050112 |
| score |
15,301629 |