{"id":{"repo_id":"glasgow","oai_identifier":"oai:theses.gla.ac.uk:686"},"canonical_url":"https://search.dev.ndltd.org/etd/glasgow/oai:theses.gla.ac.uk:686","repository":{"repo_id":"glasgow","name":"University of Glasgow","base_url":"https://theses.gla.ac.uk/cgi/oai2"},"display":{"title":"Compiler architecture using a portable intermediate language","abstract":"The back end of a compiler performs machine-dependent tasks and low-level optimisations that are laborious to implement and difficult to debug. In addition, in languages that require run-time services such as garbage collection, the back end must interface with the run-time system to provide those services. The net result is that building a compiler back end entails a high implementation cost. In this dissertation I describe reusable code generation infrastructure that enables the construction of a complete programming language implementation (compiler and run-time system) with reduced effort. The infrastructure consists of a portable intermediate language, a compiler for this language and a low-level run-time system. I provide an implementation of this system and I show that it can support a variety of source programming languages, it reduces the overall eort required to implement a programming language, it can capture and retain information necessary to support run-time services and optimisations, and it produces efficient code.","abstract_html":"The back end of a compiler performs machine-dependent tasks and low-level optimisations that are laborious to implement and difficult to debug. In addition, in languages that require run-time services such as garbage collection, the back end must interface with the run-time system to provide those services. The net result is that building a compiler back end entails a high implementation cost. In this dissertation I describe reusable code generation infrastructure that enables the construction of a complete programming language implementation (compiler and run-time system) with reduced effort. The infrastructure consists of a portable intermediate language, a compiler for this language and a low-level run-time system. I provide an implementation of this system and I show that it can support a variety of source programming languages, it reduces the overall eort required to implement a programming language, it can capture and retain information necessary to support run-time services and optimisations, and it produces efficient code.","abstract_has_math":false,"creators":["Reig Galilea, Fermín Javier"],"institution":"University of Glasgow","degree_name":null,"degree_level":"PhD","degree_discipline":null,"degree_department":null,"school":null,"contributors":[],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2002,"date_issued":"2002","date_published":"2002","updated_at":"2026-07-24T02:23:30Z","subjects":["QA76 Computer software"],"languages":["en"],"rights":[],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":null,"outbound_label":null,"outbound_source":null},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:creator","label":"Author","values":["Reig Galilea, Fermín Javier"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2002"]},{"key":"dc:date.issued","label":"Date","values":["2002"]},{"key":"dc:publisher.institution","label":"Dc Publisher Institution","values":["University of Glasgow"]},{"key":"dc:relation.isreferencedby","label":"Dc Relation Isreferencedby","values":["https://theses.gla.ac.uk/686/"]},{"key":"dc:relation.isreferencedby.uri","label":"Dc Relation Isreferencedby URI","values":["https://gla.on.worldcat.org/oclc/1547403272"]},{"key":"dc:type","label":"Dc Type","values":["Thesis"]},{"key":"dc:type.qualificationlevel","label":"Dc Type Qualificationlevel","values":["PhD"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["QA76 Computer software"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier.uri","label":"Identifier URI","values":["https://theses.gla.ac.uk/686/1/2002reigphd.pdf"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description.abstract","label":"Abstract","values":["The back end of a compiler performs machine-dependent tasks and low-level optimisations that are laborious to implement and difficult to debug. In addition, in languages that require run-time services such as garbage collection, the back end must interface with the run-time system to provide those services. The net result is that building a compiler back end entails a high implementation cost. In this dissertation I describe reusable code generation infrastructure that enables the construction of a complete programming language implementation (compiler and run-time system) with reduced effort. The infrastructure consists of a portable intermediate language, a compiler for this language and a low-level run-time system. I provide an implementation of this system and I show that it can support a variety of source programming languages, it reduces the overall eort required to implement a programming language, it can capture and retain information necessary to support run-time services and optimisations, and it produces efficient code."]},{"key":"dc:format","label":"Dc Format","values":["application/pdf"]},{"key":"dc:title","label":"Title","values":["Compiler architecture using a portable intermediate language"]}]}],"canonical_facts":{"dc:creator":["Reig Galilea, Fermín Javier"],"dc:date":["2002"],"dc:date.issued":["2002"],"dc:description.abstract":["The back end of a compiler performs machine-dependent tasks and low-level optimisations that are laborious to implement and difficult to debug. In addition, in languages that require run-time services such as garbage collection, the back end must interface with the run-time system to provide those services. The net result is that building a compiler back end entails a high implementation cost. In this dissertation I describe reusable code generation infrastructure that enables the construction of a complete programming language implementation (compiler and run-time system) with reduced effort. The infrastructure consists of a portable intermediate language, a compiler for this language and a low-level run-time system. I provide an implementation of this system and I show that it can support a variety of source programming languages, it reduces the overall eort required to implement a programming language, it can capture and retain information necessary to support run-time services and optimisations, and it produces efficient code."],"dc:format":["application/pdf"],"dc:identifier.uri":["https://theses.gla.ac.uk/686/1/2002reigphd.pdf"],"dc:language":["en"],"dc:publisher.institution":["University of Glasgow"],"dc:relation.isreferencedby":["https://theses.gla.ac.uk/686/"],"dc:relation.isreferencedby.uri":["https://gla.on.worldcat.org/oclc/1547403272"],"dc:subject":["QA76 Computer software"],"dc:title":["Compiler architecture using a portable intermediate language"],"dc:type":["Thesis"],"dc:type.qualificationlevel":["PhD"]},"updated_at":"2026-07-24T02:23:30Z"}