The implementation of a portable software platform

Traditionally, languages were created and intended for sequential machines and were, naturally, sequential languages. All that was required to maintain portability between machines were full specification compilers. These languages have not adopted well to the parallel domain since they are poor at...

Full description

Bibliographic Details
Main Author: Sutton, Carl David
Published: University of Surrey 1994
Subjects:
005
Online Access:https://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.359671
id ndltd-bl.uk-oai-ethos.bl.uk-359671
record_format oai_dc
spelling ndltd-bl.uk-oai-ethos.bl.uk-3596712018-09-11T03:20:01ZThe implementation of a portable software platformSutton, Carl David1994Traditionally, languages were created and intended for sequential machines and were, naturally, sequential languages. All that was required to maintain portability between machines were full specification compilers. These languages have not adopted well to the parallel domain since they are poor at expressing extractable concurrency. Portability is obviously as important for parallel computers - but the proliferation of ad hoc languages for parallel computers indicates that portability is not always the prime consideration of the language developer, as it should be, but that the support for a particularly specific un-general-purpose parallel computer is. A Portable Software Platform (PSP) is an intermediate level for compilers for parallel and scalar machines; the particular PSP discussed in this thesis, F-code, is a PSP for imperative, computational programming languages. As an intermediate level, the PSP must be general enough to represent all high-level programming problems, without discarding explicit, known concurrency; the PSP must be able to infer what other parallelism exists; and it must also be general enough to support all general-purpose parallel machines. The underlying bases of computational programming languages for parallel computers are data-parallelism and functional concurrency. Data-parallelism should therefore be represented in a PSP in the most descriptively simple, and hence most manipulable, way; and also, data- parallel operations are evaluated lazily - which means that only those elemental computations which have any bearing on the result of a computation are done. As a very general representation medium for computation, a PSP must also be architecture- neutral; PSP programs must be compiled efficiently to all general purpose parallel machines. A specific, machine-dependent, implementation must be inferred from an architecture-neutral PSP program, making it match specific aspects - memory and arithmetic pipelining, data- partitioning, VLIW execution - of a parallel or scalar hardware platform. Descriptive simplicity means that F-code is very suitable for data-parallel optimization: a PSP can equally be thought of as a tool for data-parallel optimization. Architecture-specific aspects are deferred to the very last stages of the compilation process of a PSP. The particular implementation of an F-code compiler given in this thesis is arranged in a number of main stages: the front-end is architecture-neutral; the code generator is generalized for the class of RISC processors; and only the very last stage of the compiler (the targetter) requires any specific details of a particular RISC processor. Thus, not only is a PSP architecture-neutral, but the process of compiling PSP programs maintains architecture-neutrality to some degree as late on into the compilation as possible.005Computer software & programmingUniversity of Surreyhttps://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.359671http://epubs.surrey.ac.uk/844473/Electronic Thesis or Dissertation
collection NDLTD
sources NDLTD
topic 005
Computer software & programming
spellingShingle 005
Computer software & programming
Sutton, Carl David
The implementation of a portable software platform
description Traditionally, languages were created and intended for sequential machines and were, naturally, sequential languages. All that was required to maintain portability between machines were full specification compilers. These languages have not adopted well to the parallel domain since they are poor at expressing extractable concurrency. Portability is obviously as important for parallel computers - but the proliferation of ad hoc languages for parallel computers indicates that portability is not always the prime consideration of the language developer, as it should be, but that the support for a particularly specific un-general-purpose parallel computer is. A Portable Software Platform (PSP) is an intermediate level for compilers for parallel and scalar machines; the particular PSP discussed in this thesis, F-code, is a PSP for imperative, computational programming languages. As an intermediate level, the PSP must be general enough to represent all high-level programming problems, without discarding explicit, known concurrency; the PSP must be able to infer what other parallelism exists; and it must also be general enough to support all general-purpose parallel machines. The underlying bases of computational programming languages for parallel computers are data-parallelism and functional concurrency. Data-parallelism should therefore be represented in a PSP in the most descriptively simple, and hence most manipulable, way; and also, data- parallel operations are evaluated lazily - which means that only those elemental computations which have any bearing on the result of a computation are done. As a very general representation medium for computation, a PSP must also be architecture- neutral; PSP programs must be compiled efficiently to all general purpose parallel machines. A specific, machine-dependent, implementation must be inferred from an architecture-neutral PSP program, making it match specific aspects - memory and arithmetic pipelining, data- partitioning, VLIW execution - of a parallel or scalar hardware platform. Descriptive simplicity means that F-code is very suitable for data-parallel optimization: a PSP can equally be thought of as a tool for data-parallel optimization. Architecture-specific aspects are deferred to the very last stages of the compilation process of a PSP. The particular implementation of an F-code compiler given in this thesis is arranged in a number of main stages: the front-end is architecture-neutral; the code generator is generalized for the class of RISC processors; and only the very last stage of the compiler (the targetter) requires any specific details of a particular RISC processor. Thus, not only is a PSP architecture-neutral, but the process of compiling PSP programs maintains architecture-neutrality to some degree as late on into the compilation as possible.
author Sutton, Carl David
author_facet Sutton, Carl David
author_sort Sutton, Carl David
title The implementation of a portable software platform
title_short The implementation of a portable software platform
title_full The implementation of a portable software platform
title_fullStr The implementation of a portable software platform
title_full_unstemmed The implementation of a portable software platform
title_sort implementation of a portable software platform
publisher University of Surrey
publishDate 1994
url https://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.359671
work_keys_str_mv AT suttoncarldavid theimplementationofaportablesoftwareplatform
AT suttoncarldavid implementationofaportablesoftwareplatform
_version_ 1718732274507186176