{"id":{"repo_id":"abertay","oai_identifier":"oai:rke.abertay.ac.uk:studenttheses/0189925e-fc0d-4edf-bd11-6e27d0952efb"},"canonical_url":"https://search.dev.ndltd.org/etd/abertay/oai:rke.abertay.ac.uk:studenttheses/0189925e-fc0d-4edf-bd11-6e27d0952efb","repository":{"repo_id":"abertay","name":"Abertay University","base_url":"https://rke.abertay.ac.uk/ws/oai"},"display":{"title":"The implementation of functional languages on an object-oriented architecture","abstract":"This thesis concerns the investigation of different implementation strategies for functional languages on a novel platform, the Rekursiv, that provides hardware support for an object- oriented language (Lingo) which was used as the implementation language for this work.<br/><br/>The objective is to evaluate the performance of two different implementation techniques - fixed combinators and supercombinators - for functional languages by interpreting the functional program in two object-oriented styles with different representations for combinators on two different environments:<br/><br/>• A purpose-built object-oriented machine; Harland’s Rekursiv.<br/>• A RISC machine; an IBM RS6000 running a Smalltalk-80 interpreter.<br/><br/>Interpreters are implemented in Smalltalk (for the RS6000) and Lingo (for the Rekursiv) for an applicative language Alcal (a A-calculus language). The interpreters are then used to generate a combinator graph using the fixed SKI set of combinators proposed by Turner, and also Hughes-style program specific supercombinators (Alifting) which are not limited to a fixed set of primitive combinators.<br/><br/>A number of experiments are conducted, based on the implementation of the lazy functional language, Alcal, on the RS6000 in Smalltalk-80 and on the Rekursiv architecture in Lingo. Lingo and Smalltalk allow the creation of objects that contain executable statements, so an object-oriented ‘active graph’ implementation is proposed.<br/><br/>Using these prototypes, the performance of the Rekursiv implementation against the RISC implementation has been evaluated. This includes the proportion of time spent on overhead activities and a statistical performance analysis of the benchmark results to analyse some of the claims made by the designer of the Rekursiv architecture.<br/><br/>Relative to a baseline benchmark written in C, the implementations on the Rekursiv are found to be several times faster than those on the RISC machine. An analysis of variance demonstrates a more subtle interplay between benchmark programs, implementation techniques, representation of combinators and hardware platform.","abstract_html":"This thesis concerns the investigation of different implementation strategies for functional languages on a novel platform, the Rekursiv, that provides hardware support for an object- oriented language (Lingo) which was used as the implementation language for this work.&lt;br/&gt;&lt;br/&gt;The objective is to evaluate the performance of two different implementation techniques - fixed combinators and supercombinators - for functional languages by interpreting the functional program in two object-oriented styles with different representations for combinators on two different environments:&lt;br/&gt;&lt;br/&gt;• A purpose-built object-oriented machine; Harland’s Rekursiv.&lt;br/&gt;• A RISC machine; an IBM RS6000 running a Smalltalk-80 interpreter.&lt;br/&gt;&lt;br/&gt;Interpreters are implemented in Smalltalk (for the RS6000) and Lingo (for the Rekursiv) for an applicative language Alcal (a A-calculus language). The interpreters are then used to generate a combinator graph using the fixed SKI set of combinators proposed by Turner, and also Hughes-style program specific supercombinators (Alifting) which are not limited to a fixed set of primitive combinators.&lt;br/&gt;&lt;br/&gt;A number of experiments are conducted, based on the implementation of the lazy functional language, Alcal, on the RS6000 in Smalltalk-80 and on the Rekursiv architecture in Lingo. Lingo and Smalltalk allow the creation of objects that contain executable statements, so an object-oriented ‘active graph’ implementation is proposed.&lt;br/&gt;&lt;br/&gt;Using these prototypes, the performance of the Rekursiv implementation against the RISC implementation has been evaluated. This includes the proportion of time spent on overhead activities and a statistical performance analysis of the benchmark results to analyse some of the claims made by the designer of the Rekursiv architecture.&lt;br/&gt;&lt;br/&gt;Relative to a baseline benchmark written in C, the implementations on the Rekursiv are found to be several times faster than those on the RISC machine. An analysis of variance demonstrates a more subtle interplay between benchmark programs, implementation techniques, representation of combinators and hardware platform.","abstract_has_math":false,"creators":["Khan, Mohammed"],"institution":null,"degree_name":"PhD","degree_level":"Doctoral Thesis","degree_discipline":null,"degree_department":null,"school":null,"contributors":[],"advisors":[],"committee_chairs":[],"committee_members":[],"year":1993,"date_issued":"1993-3","date_published":"1993-3","updated_at":"2026-07-24T00:50:16Z","subjects":[],"languages":["eng"],"rights":[],"rights_urls":[],"identifier_entries":[{"key":"dc:identifier","label":"Identifier","values":["oai:rke.abertay.ac.uk:studenttheses/0189925e-fc0d-4edf-bd11-6e27d0952efb"],"render_values":[{"text":"oai:rke.abertay.ac.uk:studenttheses/0189925e-fc0d-4edf-bd11-6e27d0952efb","href":null,"code":true}]}]},"links":{"outbound_url":"https://rke.abertay.ac.uk/en/studentTheses/0189925e-fc0d-4edf-bd11-6e27d0952efb","outbound_label":"Repository record","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:creator","label":"Author","values":["Khan, Mohammed"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["1993-3"]},{"key":"dc:date.issued","label":"Date","values":["1993-3"]},{"key":"dc:publisher.department","label":"Dc Publisher Department","values":["Dundee Institute of Technology"]},{"key":"dc:relation.isreferencedby","label":"Dc Relation Isreferencedby","values":["https://rke.abertay.ac.uk/en/studentTheses/0189925e-fc0d-4edf-bd11-6e27d0952efb"]},{"key":"dc:type","label":"Dc Type","values":["Thesis"]},{"key":"dc:type.qualificationlevel","label":"Dc Type Qualificationlevel","values":["Doctoral Thesis"]},{"key":"dc:type.qualificationname","label":"Dc Type Qualificationname","values":["PhD"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["eng"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["oai:rke.abertay.ac.uk:studenttheses/0189925e-fc0d-4edf-bd11-6e27d0952efb","https://rke.abertay.ac.uk/en/studentTheses/0189925e-fc0d-4edf-bd11-6e27d0952efb"]},{"key":"dc:identifier.uri","label":"Identifier URI","values":["https://rke.abertay.ac.uk/files/15693996/Khan_1993_The_implementation_of_functional_languages_PhD.pdf"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description.abstract","label":"Abstract","values":["This thesis concerns the investigation of different implementation strategies for functional languages on a novel platform, the Rekursiv, that provides hardware support for an object- oriented language (Lingo) which was used as the implementation language for this work.<br/><br/>The objective is to evaluate the performance of two different implementation techniques - fixed combinators and supercombinators - for functional languages by interpreting the functional program in two object-oriented styles with different representations for combinators on two different environments:<br/><br/>• A purpose-built object-oriented machine; Harland’s Rekursiv.<br/>• A RISC machine; an IBM RS6000 running a Smalltalk-80 interpreter.<br/><br/>Interpreters are implemented in Smalltalk (for the RS6000) and Lingo (for the Rekursiv) for an applicative language Alcal (a A-calculus language). The interpreters are then used to generate a combinator graph using the fixed SKI set of combinators proposed by Turner, and also Hughes-style program specific supercombinators (Alifting) which are not limited to a fixed set of primitive combinators.<br/><br/>A number of experiments are conducted, based on the implementation of the lazy functional language, Alcal, on the RS6000 in Smalltalk-80 and on the Rekursiv architecture in Lingo. Lingo and Smalltalk allow the creation of objects that contain executable statements, so an object-oriented ‘active graph’ implementation is proposed.<br/><br/>Using these prototypes, the performance of the Rekursiv implementation against the RISC implementation has been evaluated. This includes the proportion of time spent on overhead activities and a statistical performance analysis of the benchmark results to analyse some of the claims made by the designer of the Rekursiv architecture.<br/><br/>Relative to a baseline benchmark written in C, the implementations on the Rekursiv are found to be several times faster than those on the RISC machine. An analysis of variance demonstrates a more subtle interplay between benchmark programs, implementation techniques, representation of combinators and hardware platform."]},{"key":"dc:title","label":"Title","values":["The implementation of functional languages on an object-oriented architecture"]}]}],"canonical_facts":{"dc:creator":["Khan, Mohammed"],"dc:date":["1993-3"],"dc:date.issued":["1993-3"],"dc:description.abstract":["This thesis concerns the investigation of different implementation strategies for functional languages on a novel platform, the Rekursiv, that provides hardware support for an object- oriented language (Lingo) which was used as the implementation language for this work.<br/><br/>The objective is to evaluate the performance of two different implementation techniques - fixed combinators and supercombinators - for functional languages by interpreting the functional program in two object-oriented styles with different representations for combinators on two different environments:<br/><br/>• A purpose-built object-oriented machine; Harland’s Rekursiv.<br/>• A RISC machine; an IBM RS6000 running a Smalltalk-80 interpreter.<br/><br/>Interpreters are implemented in Smalltalk (for the RS6000) and Lingo (for the Rekursiv) for an applicative language Alcal (a A-calculus language). The interpreters are then used to generate a combinator graph using the fixed SKI set of combinators proposed by Turner, and also Hughes-style program specific supercombinators (Alifting) which are not limited to a fixed set of primitive combinators.<br/><br/>A number of experiments are conducted, based on the implementation of the lazy functional language, Alcal, on the RS6000 in Smalltalk-80 and on the Rekursiv architecture in Lingo. Lingo and Smalltalk allow the creation of objects that contain executable statements, so an object-oriented ‘active graph’ implementation is proposed.<br/><br/>Using these prototypes, the performance of the Rekursiv implementation against the RISC implementation has been evaluated. This includes the proportion of time spent on overhead activities and a statistical performance analysis of the benchmark results to analyse some of the claims made by the designer of the Rekursiv architecture.<br/><br/>Relative to a baseline benchmark written in C, the implementations on the Rekursiv are found to be several times faster than those on the RISC machine. An analysis of variance demonstrates a more subtle interplay between benchmark programs, implementation techniques, representation of combinators and hardware platform."],"dc:identifier":["oai:rke.abertay.ac.uk:studenttheses/0189925e-fc0d-4edf-bd11-6e27d0952efb","https://rke.abertay.ac.uk/en/studentTheses/0189925e-fc0d-4edf-bd11-6e27d0952efb"],"dc:identifier.uri":["https://rke.abertay.ac.uk/files/15693996/Khan_1993_The_implementation_of_functional_languages_PhD.pdf"],"dc:language":["eng"],"dc:publisher.department":["Dundee Institute of Technology"],"dc:relation.isreferencedby":["https://rke.abertay.ac.uk/en/studentTheses/0189925e-fc0d-4edf-bd11-6e27d0952efb"],"dc:title":["The implementation of functional languages on an object-oriented architecture"],"dc:type":["Thesis"],"dc:type.qualificationlevel":["Doctoral Thesis"],"dc:type.qualificationname":["PhD"]},"updated_at":"2026-07-24T00:50:16Z"}