Sobre la equivalencia entre semánticas operacionales y denotacionales para lenguajes funcionales paralelos

Eden es un lenguaje funcional paralelo que extiende Haskell con construcciones sintácticas para especificar la creación de procesos. En Eden se distinguen dos partes: un lambda cálculo perezoso y expresiones de coordinación. El lenguaje Jauja es una simplificación de Eden que mantiene sus principale...

Descripción completa

Detalles Bibliográficos
Autor: Sánchez Gil, Lidia
Tipo de recurso: tesis doctoral
Fecha de publicación:2015
País:España
Institución:Universidad Complutense de Madrid (UCM)
Repositorio:Docta Complutense
Idioma:español
OAI Identifier:oai:docta.ucm.es:20.500.14352/26327
Acceso en línea:https://hdl.handle.net/20.500.14352/26327
Access Level:acceso abierto
Palabra clave:519.767(043.2)
004.432.42(043.2)
Lenguajes de programación
Lenguajes de programación funcional
Programming languages
Functional Programming Languages
1203.23 Lenguajes de Programación
id ES_8b58d945d6aec1f2b38f90bbf1eb6340
oai_identifier_str oai:docta.ucm.es:20.500.14352/26327
network_acronym_str ES
network_name_str España
repository_id_str
spelling Sobre la equivalencia entre semánticas operacionales y denotacionales para lenguajes funcionales paralelosOn the equivalence of operational and denotational semantics for parallel functional languagesSánchez Gil, Lidia519.767(043.2)004.432.42(043.2)Lenguajes de programaciónLenguajes de programación funcionalProgramming languagesFunctional Programming LanguagesLenguajes de programación1203.23 Lenguajes de ProgramaciónEden es un lenguaje funcional paralelo que extiende Haskell con construcciones sintácticas para especificar la creación de procesos. En Eden se distinguen dos partes: un lambda cálculo perezoso y expresiones de coordinación. El lenguaje Jauja es una simplificación de Eden que mantiene sus principales características. El objetivo de esta tesis es dar los primeros pasos para demostrar la equivalencia entre las semánticas definidas para Jauja por Hidalgo-Herrero. Se quiere probar la equivalencia en términos de corrección y adecuación computacional entre una semántica operacional y una semántica denotacional. Para hacerlo nos basamos en las ideas expuestas por Launchbury, en el que se demuestra la equivalencia entre una semántica natural y una semántica denotacional estándar para un lambda cálculo extendido con declaraciones locales. Puesto que demostrar la equivalencia entre las semánticas definidas para Jauja supone un estudio demasiado complejo para afrontarlo en un primer paso, hemos comenzado por considerar una extensión del lenguaje utilizado por Launchbury al que se ha añadido una aplicación paralela que da lugar a creaciones de procesos y comunicaciones entre ellos, es decir, a un sistema distribuido formado por distintos procesos que interactúan entre sí. A partir de este sencillo lenguaje el estudio se desarrolla en varias etapas en las que se establece la equivalencia entre distintas semánticas operacionales y denotacionales para modelos distribuidos y no distribuidos. La semántica operacional del modelo distribuido heredada de Jauja es una semántica de paso corto para varios procesadores. Para realizar la equivalencia de esta semántica con una semántica denotacional estándar extendida, con objeto de dotar de significado a la aplicación paralela, se introducen dos semánticas intermedias: una de paso corto pero limitada a un único procesador y una semántica de paso largo que es una extensión de la semántica natural de Launchbury. En el caso de prescindir de las aplicaciones paralelas, la semántica natural de Launchbury y nuestra extensión se comportan igual. Con respecto al modelo no distribuido, y con el fin de completar las demostraciones ausentes en el trabajo de Launchbury, se construye un espacio de funciones para los valores de la semántica denotacional con recursos introducida por el autor. Posteriormente, se comprueba que es equivalente a la semántica denotacional estándar bajo la condición de disponer de infinitos recursos. También se estudian algunas relaciones existentes entre heaps y pares (heap, término) que se aplican para estudiar la equivalencia de las dos semánticas operacionales introducidas por Launchbury. Hemos realizado gran parte del estudio utilizando la notación localmente sin nombres, situada a medio camino entre la de nombres y la de de Bruijn. Así se evitan los problemas derivados de la notación con nombres, es decir, tener que trabajar con términos alfa equivalentes. Por otra parte, también se eluden las desventajas de utilizar solo los índices de de Bruijn, que resultan complicados de manejar y dificultan la lectura de los términos.Universidad Complutense de MadridHidalgo Herrero, MercedesOrtega Mallén, YolandaUniversidad Complutense de Madrid20152015-09-2120152015-09-21doctoral thesishttp://purl.org/coar/resource_type/c_db06info:eu-repo/semantics/doctoralThesisapplication/pdfhttps://hdl.handle.net/20.500.14352/26327reponame:Docta Complutenseinstname:Universidad Complutense de Madrid (UCM)Españolspaopen accesshttp://purl.org/coar/access_right/c_abf2info:eu-repo/semantics/openAccessoai:docta.ucm.es:20.500.14352/263272026-06-02T12:44:21Z
dc.title.none.fl_str_mv Sobre la equivalencia entre semánticas operacionales y denotacionales para lenguajes funcionales paralelos
On the equivalence of operational and denotational semantics for parallel functional languages
title Sobre la equivalencia entre semánticas operacionales y denotacionales para lenguajes funcionales paralelos
spellingShingle Sobre la equivalencia entre semánticas operacionales y denotacionales para lenguajes funcionales paralelos
Sánchez Gil, Lidia
519.767(043.2)
004.432.42(043.2)
Lenguajes de programación
Lenguajes de programación funcional
Programming languages
Functional Programming Languages
Lenguajes de programación
1203.23 Lenguajes de Programación
title_short Sobre la equivalencia entre semánticas operacionales y denotacionales para lenguajes funcionales paralelos
title_full Sobre la equivalencia entre semánticas operacionales y denotacionales para lenguajes funcionales paralelos
title_fullStr Sobre la equivalencia entre semánticas operacionales y denotacionales para lenguajes funcionales paralelos
title_full_unstemmed Sobre la equivalencia entre semánticas operacionales y denotacionales para lenguajes funcionales paralelos
title_sort Sobre la equivalencia entre semánticas operacionales y denotacionales para lenguajes funcionales paralelos
dc.creator.none.fl_str_mv Sánchez Gil, Lidia
author Sánchez Gil, Lidia
author_facet Sánchez Gil, Lidia
author_role author
dc.contributor.none.fl_str_mv Hidalgo Herrero, Mercedes
Ortega Mallén, Yolanda
Universidad Complutense de Madrid
dc.subject.none.fl_str_mv 519.767(043.2)
004.432.42(043.2)
Lenguajes de programación
Lenguajes de programación funcional
Programming languages
Functional Programming Languages
Lenguajes de programación
1203.23 Lenguajes de Programación
topic 519.767(043.2)
004.432.42(043.2)
Lenguajes de programación
Lenguajes de programación funcional
Programming languages
Functional Programming Languages
Lenguajes de programación
1203.23 Lenguajes de Programación
description Eden es un lenguaje funcional paralelo que extiende Haskell con construcciones sintácticas para especificar la creación de procesos. En Eden se distinguen dos partes: un lambda cálculo perezoso y expresiones de coordinación. El lenguaje Jauja es una simplificación de Eden que mantiene sus principales características. El objetivo de esta tesis es dar los primeros pasos para demostrar la equivalencia entre las semánticas definidas para Jauja por Hidalgo-Herrero. Se quiere probar la equivalencia en términos de corrección y adecuación computacional entre una semántica operacional y una semántica denotacional. Para hacerlo nos basamos en las ideas expuestas por Launchbury, en el que se demuestra la equivalencia entre una semántica natural y una semántica denotacional estándar para un lambda cálculo extendido con declaraciones locales. Puesto que demostrar la equivalencia entre las semánticas definidas para Jauja supone un estudio demasiado complejo para afrontarlo en un primer paso, hemos comenzado por considerar una extensión del lenguaje utilizado por Launchbury al que se ha añadido una aplicación paralela que da lugar a creaciones de procesos y comunicaciones entre ellos, es decir, a un sistema distribuido formado por distintos procesos que interactúan entre sí. A partir de este sencillo lenguaje el estudio se desarrolla en varias etapas en las que se establece la equivalencia entre distintas semánticas operacionales y denotacionales para modelos distribuidos y no distribuidos. La semántica operacional del modelo distribuido heredada de Jauja es una semántica de paso corto para varios procesadores. Para realizar la equivalencia de esta semántica con una semántica denotacional estándar extendida, con objeto de dotar de significado a la aplicación paralela, se introducen dos semánticas intermedias: una de paso corto pero limitada a un único procesador y una semántica de paso largo que es una extensión de la semántica natural de Launchbury. En el caso de prescindir de las aplicaciones paralelas, la semántica natural de Launchbury y nuestra extensión se comportan igual. Con respecto al modelo no distribuido, y con el fin de completar las demostraciones ausentes en el trabajo de Launchbury, se construye un espacio de funciones para los valores de la semántica denotacional con recursos introducida por el autor. Posteriormente, se comprueba que es equivalente a la semántica denotacional estándar bajo la condición de disponer de infinitos recursos. También se estudian algunas relaciones existentes entre heaps y pares (heap, término) que se aplican para estudiar la equivalencia de las dos semánticas operacionales introducidas por Launchbury. Hemos realizado gran parte del estudio utilizando la notación localmente sin nombres, situada a medio camino entre la de nombres y la de de Bruijn. Así se evitan los problemas derivados de la notación con nombres, es decir, tener que trabajar con términos alfa equivalentes. Por otra parte, también se eluden las desventajas de utilizar solo los índices de de Bruijn, que resultan complicados de manejar y dificultan la lectura de los términos.
publishDate 2015
dc.date.none.fl_str_mv 2015
2015-09-21
2015
2015-09-21
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/26327
url https://hdl.handle.net/20.500.14352/26327
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
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
publisher.none.fl_str_mv Universidad Complutense de Madrid
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_ 1869412802256437248
score 15,301603