First class syntax, semantics and their composition

Viera, Marcos

Supervisor(es): Pardo, Alberto - Swierstra, Doaitse

Resumen:

Idealmente la complejidad es manejada componiendo un sistema en algunas pocas, mas o menos independientes, descripciones mas pequeñas de varios aspectos del artefacto general. Al describir lenguajes de programacion (extensibles), las gramaticas de atributos han resultado ser una excelente herramienta para la definicion modular y la integracin de sus diferentes aspectos. En la tesis se muestra como construir la implementacin de un lenguaje de programacion mediante la composici´on de una coleccion de fragmentos de gramaticas de atributos que describen aspectos separados del lenguaje. Mas especificamente, se describe un conjunto coherente de bibliotecas y herramientas que en conjunto hacen que esto sea posible en Haskell, donde la correccion de la composicion es forzada a traves de la capacidad del sistema de tipos de Haskell para representar gramaticas de atributos como valores de Haskell y sus interfaces como tipos de datos. Los objetos semanticos construidos de este modo se pueden combinar con parsers que son construidos on the fly a partir de fragmentos de parsers y se representan como valores Haskell tipados. Una vez mas el chequeo de tipos impide composiciones incorrectas. A manera de caso de estudio de las tecnicas propuestas en esta tesis, se implemento un compilador para el lenguaje imperativo (Pascal-like) Oberon0. A traves de un diseño incremental, mostramos las capacidades de modularidad de nuestras tecnicas.


Ideally complexity is managed by composing a system out of quite a few, more or less independent, and much smaller descriptions of various aspects of the overall artifact. When describing (extensible) programming languages, attribute grammars have turned out to be an excellent tool for modular definition and integration of their different aspects. In this thesis we show how to construct a programming language implementation by composing a collection of attribute grammar fragments describing separate aspects of the language. More specifically we describe a coherent set of libraries and tools which together make this possible in Haskell, where the correctness of the composition is enforced through the Haskell type system’s ability to represent attribute grammars as plain Haskell values and their interfaces as Haskell types. Semantic objects thus constructed can be combined with parsers which are constructed on the fly out of parser fragments and are also represented as typed Haskell values. Again the type checker prevents insane compositions. As a small case study of the techniques proposed in this thesis, we implemented a compiler for the (Pascal-like) imperative language Oberon0. Through an incremental design, we show the modularity capacities of our techniques.


Detalles Bibliográficos
2014
Gramática de primera clase
Semántica de primera clase
Gramáticas de atributos
Construcción de compiladores
Lenguajes extensibles, Haskell
Inglés
Universidad de la República
COLIBRI
http://hdl.handle.net/20.500.12008/2911
Acceso abierto
Licencia Creative Commons Atribución – No Comercial – Sin Derivadas (CC BY-NC-ND 4.0)
_version_ 1807523179953913856
author Viera, Marcos
author_facet Viera, Marcos
author_role author
bitstream.checksum.fl_str_mv 528b6a3c8c7d0c6e28129d576e989607
9833653f73f7853880c94a6fead477b1
4afdbb8c545fd630ea7db775da747b2f
9da0b6dfac957114c6a7714714b86306
493f65198ab8458d5978ff10d79294d0
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
bitstream.url.fl_str_mv http://localhost:8080/xmlui/bitstream/20.500.12008/2911/5/license.txt
http://localhost:8080/xmlui/bitstream/20.500.12008/2911/2/license_text
http://localhost:8080/xmlui/bitstream/20.500.12008/2911/3/license_url
http://localhost:8080/xmlui/bitstream/20.500.12008/2911/4/license_rdf
http://localhost:8080/xmlui/bitstream/20.500.12008/2911/1/tesisd-mviera.pdf
collection COLIBRI
dc.creator.advisor.none.fl_str_mv Pardo, Alberto
Swierstra, Doaitse
dc.creator.none.fl_str_mv Viera, Marcos
dc.date.accessioned.none.fl_str_mv 2014-11-24T22:35:27Z
dc.date.available.none.fl_str_mv 2014-11-24T22:35:27Z
dc.date.issued.es.fl_str_mv 2014
dc.date.submitted.es.fl_str_mv 20141202
dc.description.abstract.none.fl_txt_mv Idealmente la complejidad es manejada componiendo un sistema en algunas pocas, mas o menos independientes, descripciones mas pequeñas de varios aspectos del artefacto general. Al describir lenguajes de programacion (extensibles), las gramaticas de atributos han resultado ser una excelente herramienta para la definicion modular y la integracin de sus diferentes aspectos. En la tesis se muestra como construir la implementacin de un lenguaje de programacion mediante la composici´on de una coleccion de fragmentos de gramaticas de atributos que describen aspectos separados del lenguaje. Mas especificamente, se describe un conjunto coherente de bibliotecas y herramientas que en conjunto hacen que esto sea posible en Haskell, donde la correccion de la composicion es forzada a traves de la capacidad del sistema de tipos de Haskell para representar gramaticas de atributos como valores de Haskell y sus interfaces como tipos de datos. Los objetos semanticos construidos de este modo se pueden combinar con parsers que son construidos on the fly a partir de fragmentos de parsers y se representan como valores Haskell tipados. Una vez mas el chequeo de tipos impide composiciones incorrectas. A manera de caso de estudio de las tecnicas propuestas en esta tesis, se implemento un compilador para el lenguaje imperativo (Pascal-like) Oberon0. A traves de un diseño incremental, mostramos las capacidades de modularidad de nuestras tecnicas.
Ideally complexity is managed by composing a system out of quite a few, more or less independent, and much smaller descriptions of various aspects of the overall artifact. When describing (extensible) programming languages, attribute grammars have turned out to be an excellent tool for modular definition and integration of their different aspects. In this thesis we show how to construct a programming language implementation by composing a collection of attribute grammar fragments describing separate aspects of the language. More specifically we describe a coherent set of libraries and tools which together make this possible in Haskell, where the correctness of the composition is enforced through the Haskell type system’s ability to represent attribute grammars as plain Haskell values and their interfaces as Haskell types. Semantic objects thus constructed can be combined with parsers which are constructed on the fly out of parser fragments and are also represented as typed Haskell values. Again the type checker prevents insane compositions. As a small case study of the techniques proposed in this thesis, we implemented a compiler for the (Pascal-like) imperative language Oberon0. Through an incremental design, we show the modularity capacities of our techniques.
dc.format.extent.es.fl_str_mv 175 p.
dc.format.mimetype.es.fl_str_mv application/pdf
dc.identifier.citation.es.fl_str_mv VIERA, M. "First class syntax, semantics and their composition". Tesis de doctorado, Universidad de la República (Uruguay). Facultad de Ingeniería. Instituto de Computación – PEDECIBA, 2014.
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/20.500.12008/2911
dc.language.iso.none.fl_str_mv en
eng
dc.publisher.es.fl_str_mv UR. FI-INCO,
dc.rights.license.none.fl_str_mv Licencia Creative Commons Atribución – No Comercial – Sin Derivadas (CC BY-NC-ND 4.0)
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
dc.source.none.fl_str_mv reponame:COLIBRI
instname:Universidad de la República
instacron:Universidad de la República
dc.subject.es.fl_str_mv Gramática de primera clase
Semántica de primera clase
Gramáticas de atributos
Construcción de compiladores
Lenguajes extensibles, Haskell
dc.title.none.fl_str_mv First class syntax, semantics and their composition
dc.type.es.fl_str_mv Tesis de doctorado
dc.type.none.fl_str_mv info:eu-repo/semantics/doctoralThesis
dc.type.version.none.fl_str_mv info:eu-repo/semantics/acceptedVersion
description Idealmente la complejidad es manejada componiendo un sistema en algunas pocas, mas o menos independientes, descripciones mas pequeñas de varios aspectos del artefacto general. Al describir lenguajes de programacion (extensibles), las gramaticas de atributos han resultado ser una excelente herramienta para la definicion modular y la integracin de sus diferentes aspectos. En la tesis se muestra como construir la implementacin de un lenguaje de programacion mediante la composici´on de una coleccion de fragmentos de gramaticas de atributos que describen aspectos separados del lenguaje. Mas especificamente, se describe un conjunto coherente de bibliotecas y herramientas que en conjunto hacen que esto sea posible en Haskell, donde la correccion de la composicion es forzada a traves de la capacidad del sistema de tipos de Haskell para representar gramaticas de atributos como valores de Haskell y sus interfaces como tipos de datos. Los objetos semanticos construidos de este modo se pueden combinar con parsers que son construidos on the fly a partir de fragmentos de parsers y se representan como valores Haskell tipados. Una vez mas el chequeo de tipos impide composiciones incorrectas. A manera de caso de estudio de las tecnicas propuestas en esta tesis, se implemento un compilador para el lenguaje imperativo (Pascal-like) Oberon0. A traves de un diseño incremental, mostramos las capacidades de modularidad de nuestras tecnicas.
eu_rights_str_mv openAccess
format doctoralThesis
id COLIBRI_22922f7c1243a1bd853d5861a2c35e69
identifier_str_mv VIERA, M. "First class syntax, semantics and their composition". Tesis de doctorado, Universidad de la República (Uruguay). Facultad de Ingeniería. Instituto de Computación – PEDECIBA, 2014.
instacron_str Universidad de la República
institution Universidad de la República
instname_str Universidad de la República
language eng
language_invalid_str_mv en
network_acronym_str COLIBRI
network_name_str COLIBRI
oai_identifier_str oai:colibri.udelar.edu.uy:20.500.12008/2911
publishDate 2014
reponame_str COLIBRI
repository.mail.fl_str_mv mabel.seroubian@seciu.edu.uy
repository.name.fl_str_mv COLIBRI - Universidad de la República
repository_id_str 4771
rights_invalid_str_mv Licencia Creative Commons Atribución – No Comercial – Sin Derivadas (CC BY-NC-ND 4.0)
spelling 2014-11-24T22:35:27Z2014-11-24T22:35:27Z201420141202VIERA, M. "First class syntax, semantics and their composition". Tesis de doctorado, Universidad de la República (Uruguay). Facultad de Ingeniería. Instituto de Computación – PEDECIBA, 2014.http://hdl.handle.net/20.500.12008/2911Idealmente la complejidad es manejada componiendo un sistema en algunas pocas, mas o menos independientes, descripciones mas pequeñas de varios aspectos del artefacto general. Al describir lenguajes de programacion (extensibles), las gramaticas de atributos han resultado ser una excelente herramienta para la definicion modular y la integracin de sus diferentes aspectos. En la tesis se muestra como construir la implementacin de un lenguaje de programacion mediante la composici´on de una coleccion de fragmentos de gramaticas de atributos que describen aspectos separados del lenguaje. Mas especificamente, se describe un conjunto coherente de bibliotecas y herramientas que en conjunto hacen que esto sea posible en Haskell, donde la correccion de la composicion es forzada a traves de la capacidad del sistema de tipos de Haskell para representar gramaticas de atributos como valores de Haskell y sus interfaces como tipos de datos. Los objetos semanticos construidos de este modo se pueden combinar con parsers que son construidos on the fly a partir de fragmentos de parsers y se representan como valores Haskell tipados. Una vez mas el chequeo de tipos impide composiciones incorrectas. A manera de caso de estudio de las tecnicas propuestas en esta tesis, se implemento un compilador para el lenguaje imperativo (Pascal-like) Oberon0. A traves de un diseño incremental, mostramos las capacidades de modularidad de nuestras tecnicas.Ideally complexity is managed by composing a system out of quite a few, more or less independent, and much smaller descriptions of various aspects of the overall artifact. When describing (extensible) programming languages, attribute grammars have turned out to be an excellent tool for modular definition and integration of their different aspects. In this thesis we show how to construct a programming language implementation by composing a collection of attribute grammar fragments describing separate aspects of the language. More specifically we describe a coherent set of libraries and tools which together make this possible in Haskell, where the correctness of the composition is enforced through the Haskell type system’s ability to represent attribute grammars as plain Haskell values and their interfaces as Haskell types. Semantic objects thus constructed can be combined with parsers which are constructed on the fly out of parser fragments and are also represented as typed Haskell values. Again the type checker prevents insane compositions. As a small case study of the techniques proposed in this thesis, we implemented a compiler for the (Pascal-like) imperative language Oberon0. Through an incremental design, we show the modularity capacities of our techniques.Made available in DSpace on 2014-11-24T22:35:27Z (GMT). No. of bitstreams: 5 tesisd-mviera.pdf: 1473686 bytes, checksum: 493f65198ab8458d5978ff10d79294d0 (MD5) license_text: 21936 bytes, checksum: 9833653f73f7853880c94a6fead477b1 (MD5) license_url: 49 bytes, checksum: 4afdbb8c545fd630ea7db775da747b2f (MD5) license_rdf: 23148 bytes, checksum: 9da0b6dfac957114c6a7714714b86306 (MD5) license.txt: 4244 bytes, checksum: 528b6a3c8c7d0c6e28129d576e989607 (MD5) Previous issue date: 2014175 p.application/pdfenengUR. FI-INCO,Las obras depositadas en el Repositorio se rigen por la Ordenanza de los Derechos de la Propiedad Intelectual de la Universidad De La República. (Res. Nº 91 de C.D.C. de 8/III/1994 – D.O. 7/IV/1994) y por la Ordenanza del Repositorio Abierto de la Universidad de la República (Res. Nº 16 de C.D.C. de 07/10/2014)info:eu-repo/semantics/openAccessLicencia Creative Commons Atribución – No Comercial – Sin Derivadas (CC BY-NC-ND 4.0)Gramática de primera claseSemántica de primera claseGramáticas de atributosConstrucción de compiladoresLenguajes extensibles, HaskellFirst class syntax, semantics and their compositionTesis de doctoradoinfo:eu-repo/semantics/doctoralThesisinfo:eu-repo/semantics/acceptedVersionreponame:COLIBRIinstname:Universidad de la Repúblicainstacron:Universidad de la RepúblicaViera, MarcosPardo, AlbertoSwierstra, DoaitseUniversidad de la República (Uruguay). Facultad de Ingeniería. Instituto de Computación – PEDECIBADoctor en InformáticaLICENSElicense.txttext/plain4244http://localhost:8080/xmlui/bitstream/20.500.12008/2911/5/license.txt528b6a3c8c7d0c6e28129d576e989607MD55CC-LICENSElicense_textapplication/octet-stream21936http://localhost:8080/xmlui/bitstream/20.500.12008/2911/2/license_text9833653f73f7853880c94a6fead477b1MD52license_urlapplication/octet-stream49http://localhost:8080/xmlui/bitstream/20.500.12008/2911/3/license_url4afdbb8c545fd630ea7db775da747b2fMD53license_rdfapplication/octet-stream23148http://localhost:8080/xmlui/bitstream/20.500.12008/2911/4/license_rdf9da0b6dfac957114c6a7714714b86306MD54ORIGINALtesisd-mviera.pdfapplication/pdf1473686http://localhost:8080/xmlui/bitstream/20.500.12008/2911/1/tesisd-mviera.pdf493f65198ab8458d5978ff10d79294d0MD5120.500.12008/29112016-06-02 13:14:13.167oai:colibri.udelar.edu.uy:20.500.12008/2911VGVybWlub3MgeSBjb25kaWNpb25lcyByZWxhdGl2YXMgYWwgZGVwb3NpdG8gZGUgb2JyYXMNCg0KDQpMYXMgb2JyYXMgZGVwb3NpdGFkYXMgZW4gZWwgUmVwb3NpdG9yaW8gc2UgcmlnZW4gcG9yIGxhIE9yZGVuYW56YSBkZSBsb3MgRGVyZWNob3MgZGUgbGEgUHJvcGllZGFkIEludGVsZWN0dWFsICBkZSBsYSBVbml2ZXJzaWRhZCBEZSBMYSBSZXDvv71ibGljYS4gKFJlcy4gTu+/vSA5MSBkZSBDLkQuQy4gZGUgOC9JSUkvMTk5NCDvv70gRC5PLiA3L0lWLzE5OTQpIHkgIHBvciBsYSBPcmRlbmFuemEgZGVsIFJlcG9zaXRvcmlvIEFiaWVydG8gZGUgbGEgVW5pdmVyc2lkYWQgZGUgbGEgUmVw77+9YmxpY2EgKFJlcy4gTu+/vSAxNiBkZSBDLkQuQy4gZGUgMDcvMTAvMjAxNCkuIA0KDQpBY2VwdGFuZG8gZWwgYXV0b3IgZXN0b3MgdO+/vXJtaW5vcyB5IGNvbmRpY2lvbmVzIGRlIGRlcO+/vXNpdG8gZW4gQ09MSUJSSSwgbGEgVW5pdmVyc2lkYWQgZGUgUmVw77+9YmxpY2EgcHJvY2VkZXLvv70gYTogIA0KDQphKSBhcmNoaXZhciBt77+9cyBkZSB1bmEgY29waWEgZGUgbGEgb2JyYSBlbiBsb3Mgc2Vydmlkb3JlcyBkZSBsYSBVbml2ZXJzaWRhZCBhIGxvcyBlZmVjdG9zIGRlIGdhcmFudGl6YXIgYWNjZXNvLCBzZWd1cmlkYWQgeSBwcmVzZXJ2YWNp77+9bg0KYikgY29udmVydGlyIGxhIG9icmEgYSBvdHJvcyBmb3JtYXRvcyBzaSBmdWVyYSBuZWNlc2FyaW8gIHBhcmEgZmFjaWxpdGFyIHN1IHByZXNlcnZhY2nvv71uIHkgYWNjZXNpYmlsaWRhZCBzaW4gYWx0ZXJhciBzdSBjb250ZW5pZG8uDQpjKSByZWFsaXphciBsYSBjb211bmljYWNp77+9biBw77+9YmxpY2EgeSBkaXNwb25lciBlbCBhY2Nlc28gbGlicmUgeSBncmF0dWl0byBhIHRyYXbvv71zIGRlIEludGVybmV0IG1lZGlhbnRlIGxhIHB1YmxpY2Fjae+/vW4gZGUgbGEgb2JyYSBiYWpvIGxhIGxpY2VuY2lhIENyZWF0aXZlIENvbW1vbnMgc2VsZWNjaW9uYWRhIHBvciBlbCBwcm9waW8gYXV0b3IuDQoNCg0KRW4gY2FzbyBxdWUgZWwgYXV0b3IgaGF5YSBkaWZ1bmRpZG8geSBkYWRvIGEgcHVibGljaWRhZCBhIGxhIG9icmEgZW4gZm9ybWEgcHJldmlhLCAgcG9kcu+/vSBzb2xpY2l0YXIgdW4gcGVy77+9b2RvIGRlIGVtYmFyZ28gc29icmUgbGEgZGlzcG9uaWJpbGlkYWQgcO+/vWJsaWNhIGRlIGxhIG1pc21hLCBlbCBjdWFsIGNvbWVuemFy77+9IGEgcGFydGlyIGRlIGxhIGFjZXB0YWNp77+9biBkZSBlc3RlIGRvY3VtZW50byB5IGhhc3RhIGxhIGZlY2hhIHF1ZSBpbmRpcXVlIC4NCg0KRWwgYXV0b3IgYXNlZ3VyYSBxdWUgbGEgb2JyYSBubyBpbmZyaWdlIG5pbmfvv71uIGRlcmVjaG8gc29icmUgdGVyY2Vyb3MsIHlhIHNlYSBkZSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBjdWFscXVpZXIgb3Ryby4NCg0KRWwgYXV0b3IgZ2FyYW50aXphIHF1ZSBzaSBlbCBkb2N1bWVudG8gY29udGllbmUgbWF0ZXJpYWxlcyBkZSBsb3MgY3VhbGVzIG5vIHRpZW5lIGxvcyBkZXJlY2hvcyBkZSBhdXRvciwgIGhhIG9idGVuaWRvIGVsIHBlcm1pc28gZGVsIHByb3BpZXRhcmlvIGRlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciwgeSBxdWUgZXNlIG1hdGVyaWFsIGN1eW9zIGRlcmVjaG9zIHNvbiBkZSB0ZXJjZXJvcyBlc3Tvv70gY2xhcmFtZW50ZSBpZGVudGlmaWNhZG8geSByZWNvbm9jaWRvIGVuIGVsIHRleHRvIG8gY29udGVuaWRvIGRlbCBkb2N1bWVudG8gZGVwb3NpdGFkbyBlbiBlbCBSZXBvc2l0b3Jpby4NCg0KRW4gb2JyYXMgZGUgYXV0b3Lvv71hIG3vv71sdGlwbGUgL3NlIHByZXN1bWUvIHF1ZSBlbCBhdXRvciBkZXBvc2l0YW50ZSBkZWNsYXJhIHF1ZSBoYSByZWNhYmFkbyBlbCBjb25zZW50aW1pZW50byBkZSB0b2RvcyBsb3MgYXV0b3JlcyBwYXJhIHB1YmxpY2FybGEgZW4gZWwgUmVwb3NpdG9yaW8sIHNpZW5kbyDvv71zdGUgZWwg77+9bmljbyByZXNwb25zYWJsZSBmcmVudGUgYSBjdWFscXVpZXIgdGlwbyBkZSByZWNsYW1hY2nvv71uIGRlIGxvcyBvdHJvcyBjb2F1dG9yZXMuDQoNCkVsIGF1dG9yIHNlcu+/vSByZXNwb25zYWJsZSBkZWwgY29udGVuaWRvIGRlIGxvcyBkb2N1bWVudG9zIHF1ZSBkZXBvc2l0YS4gTGEgVURFTEFSIG5vIHNlcu+/vSByZXNwb25zYWJsZSBwb3IgbGFzIGV2ZW50dWFsZXMgdmlvbGFjaW9uZXMgYWwgZGVyZWNobyBkZSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgZW4gcXVlIHB1ZWRhIGluY3VycmlyIGVsIGF1dG9yLg0KDQpBbnRlIGN1YWxxdWllciBkZW51bmNpYSBkZSB2aW9sYWNp77+9biBkZSBkZXJlY2hvcyBkZSBwcm9waWVkYWQgaW50ZWxlY3R1YWwsIGxhIFVERUxBUiAgYWRvcHRhcu+/vSB0b2RhcyBsYXMgbWVkaWRhcyBuZWNlc2FyaWFzIHBhcmEgZXZpdGFyIGxhIGNvbnRpbnVhY2nvv71uIGRlIGRpY2hhIGluZnJhY2Np77+9biwgbGFzIHF1ZSBwb2Ry77+9biBpbmNsdWlyIGVsIHJldGlybyBkZWwgYWNjZXNvIGEgbG9zIGNvbnRlbmlkb3MgeS9vIG1ldGFkYXRvcyBkZWwgZG9jdW1lbnRvIHJlc3BlY3Rpdm8uDQoNCkxhIG9icmEgc2UgcG9uZHLvv70gYSBkaXNwb3NpY2nvv71uIGRlbCBw77+9YmxpY28gYSB0cmF277+9cyBkZSBsYXMgbGljZW5jaWFzIENyZWF0aXZlIENvbW1vbnMsIGVsIGF1dG9yIHBvZHLvv70gc2VsZWNjaW9uYXIgdW5hIGRlIGxhcyA2IGxpY2VuY2lhcyBkaXNwb25pYmxlczoNCg0KDQpBdHJpYnVjae+/vW4gKENDIC0gQnkpOiBQZXJtaXRlIHVzYXIgbGEgb2JyYSB5IGdlbmVyYXIgb2JyYXMgZGVyaXZhZGFzLCBpbmNsdXNvIGNvbiBmaW5lcyBjb21lcmNpYWxlcywgc2llbXByZSBxdWUgc2UgcmVjb25vemNhIGFsIGF1dG9yLg0KDQpBdHJpYnVjae+/vW4g77+9IENvbXBhcnRpciBJZ3VhbCAoQ0MgLSBCeS1TQSk6IFBlcm1pdGUgdXNhciBsYSBvYnJhIHkgZ2VuZXJhciBvYnJhcyBkZXJpdmFkYXMsIGluY2x1c28gY29uIGZpbmVzIGNvbWVyY2lhbGVzLCBwZXJvIGxhIGRpc3RyaWJ1Y2nvv71uIGRlIGxhcyBvYnJhcyBkZXJpdmFkYXMgZGViZSBoYWNlcnNlIG1lZGlhbnRlIHVuYSBsaWNlbmNpYSBpZO+/vW50aWNhIGEgbGEgZGUgbGEgb2JyYSBvcmlnaW5hbCwgcmVjb25vY2llbmRvIGEgbG9zIGF1dG9yZXMuDQoNCkF0cmlidWNp77+9biDvv70gTm8gQ29tZXJjaWFsIChDQyAtIEJ5LU5DKTogUGVybWl0ZSB1c2FyIGxhIG9icmEgeSBnZW5lcmFyIG9icmFzIGRlcml2YWRhcywgc2llbXByZSB5IGN1YW5kbyBlc29zIHVzb3Mgbm8gdGVuZ2FuIGZpbmVzIGNvbWVyY2lhbGVzLCByZWNvbm9jaWVuZG8gYWwgYXV0b3IuDQoNCkF0cmlidWNp77+9biDvv70gU2luIERlcml2YWRhcyAoQ0MgLSBCeS1ORCk6IFBlcm1pdGUgZWwgdXNvIGRlIGxhIG9icmEsIGluY2x1c28gY29uIGZpbmVzIGNvbWVyY2lhbGVzLCBwZXJvIG5vIHNlIHBlcm1pdGUgZ2VuZXJhciBvYnJhcyBkZXJpdmFkYXMsIGRlYmllbmRvIHJlY29ub2NlciBhbCBhdXRvci4NCg0KQXRyaWJ1Y2nvv71uIO+/vSBObyBDb21lcmNpYWwg77+9IENvbXBhcnRpciBJZ3VhbCAoQ0Mg77+9IEJ5LU5DLVNBKTogUGVybWl0ZSB1c2FyIGxhIG9icmEgeSBnZW5lcmFyIG9icmFzIGRlcml2YWRhcywgc2llbXByZSB5IGN1YW5kbyBlc29zIHVzb3Mgbm8gdGVuZ2FuIGZpbmVzIGNvbWVyY2lhbGVzIHkgbGEgZGlzdHJpYnVjae+/vW4gZGUgbGFzIG9icmFzIGRlcml2YWRhcyBzZSBoYWdhIG1lZGlhbnRlIGxpY2VuY2lhIGlk77+9bnRpY2EgYSBsYSBkZSBsYSBvYnJhIG9yaWdpbmFsLCByZWNvbm9jaWVuZG8gYSBsb3MgYXV0b3Jlcy4NCg0KQXRyaWJ1Y2nvv71uIO+/vSBObyBDb21lcmNpYWwg77+9IFNpbiBEZXJpdmFkYXMgKENDIC0gQnktTkMtTkQpOiBQZXJtaXRlIHVzYXIgbGEgb2JyYSwgcGVybyBubyBzZSBwZXJtaXRlIGdlbmVyYXIgb2JyYXMgZGVyaXZhZGFzIHkgbm8gc2UgcGVybWl0ZSB1c28gY29uIGZpbmVzIGNvbWVyY2lhbGVzLCBkZWJpZW5kbyByZWNvbm9jZXIgYWwgYXV0b3IuDQoNCkxvcyB1c29zIHByZXZpc3RvcyBlbiBsYXMgbGljZW5jaWFzIGluY2x1eWVuIGxhIGVuYWplbmFjae+/vW4sIHJlcHJvZHVjY2nvv71uLCBjb211bmljYWNp77+9biwgcHVibGljYWNp77+9biwgZGlzdHJpYnVjae+/vW4geSBwdWVzdGEgYSBkaXNwb3NpY2nvv71uIGRlbCBw77+9YmxpY28uIExhIGNyZWFjae+/vW4gZGUgb2JyYXMgZGVyaXZhZGFzIGluY2x1eWUgbGEgYWRhcHRhY2nvv71uLCB0cmFkdWNjae+/vW4geSBlbCByZW1peC4NCg0KQ3VhbmRvIHNlIHNlbGVjY2lvbmUgdW5hIGxpY2VuY2lhIHF1ZSBoYWJpbGl0ZSB1c29zIGNvbWVyY2lhbGVzLCBlbCBkZXDvv71zaXRvIGRlYmVy77+9IHNlciBhY29tcGHvv71hZG8gZGVsIGF2YWwgZGVsIGplcmFyY2Egbe+/vXhpbW8gZGVsIFNlcnZpY2lvIGNvcnJlc3BvbmRpZW50ZS4NCg0KDQoNCg0KDQoNCg0KDQo=Universidadhttps://udelar.edu.uy/https://www.colibri.udelar.edu.uy/oai/requestmabel.seroubian@seciu.edu.uyUruguayopendoar:47712024-07-25T14:44:20.032936COLIBRI - Universidad de la Repúblicafalse
spellingShingle First class syntax, semantics and their composition
Viera, Marcos
Gramática de primera clase
Semántica de primera clase
Gramáticas de atributos
Construcción de compiladores
Lenguajes extensibles, Haskell
status_str acceptedVersion
title First class syntax, semantics and their composition
title_full First class syntax, semantics and their composition
title_fullStr First class syntax, semantics and their composition
title_full_unstemmed First class syntax, semantics and their composition
title_short First class syntax, semantics and their composition
title_sort First class syntax, semantics and their composition
topic Gramática de primera clase
Semántica de primera clase
Gramáticas de atributos
Construcción de compiladores
Lenguajes extensibles, Haskell
url http://hdl.handle.net/20.500.12008/2911