Combinator graph reduction: a congruence and its applications
Abstract: "The G-Machine is an efficient implementation of lazy functional languages developed by Augustsson and Johnsson. This thesis may be read as a formal mathematical proof that the G-machine is correct with respect to a denotational semantic specification of a simple language. It also has...
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Oxford
Oxford Univ. Comp. Lab. Programming Res. Group
1989
|
Schriftenreihe: | Technical monograph PRG-73
|
Schlagworte: | |
Zusammenfassung: | Abstract: "The G-Machine is an efficient implementation of lazy functional languages developed by Augustsson and Johnsson. This thesis may be read as a formal mathematical proof that the G-machine is correct with respect to a denotational semantic specification of a simple language. It also has more general implications. A simple lazy functional language is defined both denotationally and operationally; both are defined to handle erroneous results. The operational semantics models combinator graph reduction, and is based on reduction to weak head normal form. The two semantic definitions are shown to be congruent. Because of error handling the language is not confluent. Complete strictness is shown to be a necessary and sufficient condition for changing lazy function calls to strict ones As strictness analyses are usually used with confluent languages, methods are discussed to restore this property. The operational semantic model uses indirection nodes to implement sharing. An alternative, which is without indirection nodes, is shown to be operationally equivalent for terminating programs. The G-machine is shown to be a representation of the combinator graph reduction operational model. It may be represented by the composition of a small set of combinators which correspond to an abstract machine instruction set. Using a modified form of graph isomorphism, alternative sequences of instructions are shown to be isomorphic, and hence may be used interchangeably. |
Beschreibung: | Zugl.: Oxford, Univ., Diss., 1988 |
Beschreibung: | 136 S. |
ISBN: | 0902928554 |
Internformat
MARC
LEADER | 00000nam a2200000 cb4500 | ||
---|---|---|---|
001 | BV002116930 | ||
003 | DE-604 | ||
005 | 00000000000000.0 | ||
007 | t | ||
008 | 891026s1989 m||| 00||| eng d | ||
020 | |a 0902928554 |9 0-902928-55-4 | ||
035 | |a (OCoLC)21991869 | ||
035 | |a (DE-599)BVBBV002116930 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a eng | |
049 | |a DE-91G | ||
084 | |a DAT 557f |2 stub | ||
100 | 1 | |a Lester, David |e Verfasser |4 aut | |
245 | 1 | 0 | |a Combinator graph reduction |b a congruence and its applications |
264 | 1 | |a Oxford |b Oxford Univ. Comp. Lab. Programming Res. Group |c 1989 | |
300 | |a 136 S. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Technical monograph PRG-73 | |
500 | |a Zugl.: Oxford, Univ., Diss., 1988 | ||
520 | 3 | |a Abstract: "The G-Machine is an efficient implementation of lazy functional languages developed by Augustsson and Johnsson. This thesis may be read as a formal mathematical proof that the G-machine is correct with respect to a denotational semantic specification of a simple language. It also has more general implications. A simple lazy functional language is defined both denotationally and operationally; both are defined to handle erroneous results. The operational semantics models combinator graph reduction, and is based on reduction to weak head normal form. The two semantic definitions are shown to be congruent. Because of error handling the language is not confluent. Complete strictness is shown to be a necessary and sufficient condition for changing lazy function calls to strict ones | |
520 | 3 | |a As strictness analyses are usually used with confluent languages, methods are discussed to restore this property. The operational semantic model uses indirection nodes to implement sharing. An alternative, which is without indirection nodes, is shown to be operationally equivalent for terminating programs. The G-machine is shown to be a representation of the combinator graph reduction operational model. It may be represented by the composition of a small set of combinators which correspond to an abstract machine instruction set. Using a modified form of graph isomorphism, alternative sequences of instructions are shown to be isomorphic, and hence may be used interchangeably. | |
650 | 4 | |a Functional programming languages | |
655 | 7 | |0 (DE-588)4113937-9 |a Hochschulschrift |2 gnd-content | |
999 | |a oai:aleph.bib-bvb.de:BVB01-001388369 |
Datensatz im Suchindex
_version_ | 1804116570768670720 |
---|---|
any_adam_object | |
author | Lester, David |
author_facet | Lester, David |
author_role | aut |
author_sort | Lester, David |
author_variant | d l dl |
building | Verbundindex |
bvnumber | BV002116930 |
classification_tum | DAT 557f |
ctrlnum | (OCoLC)21991869 (DE-599)BVBBV002116930 |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02478nam a2200337 cb4500</leader><controlfield tag="001">BV002116930</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">00000000000000.0</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">891026s1989 m||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0902928554</subfield><subfield code="9">0-902928-55-4</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)21991869</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV002116930</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-91G</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 557f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Lester, David</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Combinator graph reduction</subfield><subfield code="b">a congruence and its applications</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Oxford</subfield><subfield code="b">Oxford Univ. Comp. Lab. Programming Res. Group</subfield><subfield code="c">1989</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">136 S.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Technical monograph PRG-73</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Zugl.: Oxford, Univ., Diss., 1988</subfield></datafield><datafield tag="520" ind1="3" ind2=" "><subfield code="a">Abstract: "The G-Machine is an efficient implementation of lazy functional languages developed by Augustsson and Johnsson. This thesis may be read as a formal mathematical proof that the G-machine is correct with respect to a denotational semantic specification of a simple language. It also has more general implications. A simple lazy functional language is defined both denotationally and operationally; both are defined to handle erroneous results. The operational semantics models combinator graph reduction, and is based on reduction to weak head normal form. The two semantic definitions are shown to be congruent. Because of error handling the language is not confluent. Complete strictness is shown to be a necessary and sufficient condition for changing lazy function calls to strict ones</subfield></datafield><datafield tag="520" ind1="3" ind2=" "><subfield code="a">As strictness analyses are usually used with confluent languages, methods are discussed to restore this property. The operational semantic model uses indirection nodes to implement sharing. An alternative, which is without indirection nodes, is shown to be operationally equivalent for terminating programs. The G-machine is shown to be a representation of the combinator graph reduction operational model. It may be represented by the composition of a small set of combinators which correspond to an abstract machine instruction set. Using a modified form of graph isomorphism, alternative sequences of instructions are shown to be isomorphic, and hence may be used interchangeably.</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Functional programming languages</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="0">(DE-588)4113937-9</subfield><subfield code="a">Hochschulschrift</subfield><subfield code="2">gnd-content</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-001388369</subfield></datafield></record></collection> |
genre | (DE-588)4113937-9 Hochschulschrift gnd-content |
genre_facet | Hochschulschrift |
id | DE-604.BV002116930 |
illustrated | Not Illustrated |
indexdate | 2024-07-09T15:40:37Z |
institution | BVB |
isbn | 0902928554 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-001388369 |
oclc_num | 21991869 |
open_access_boolean | |
owner | DE-91G DE-BY-TUM |
owner_facet | DE-91G DE-BY-TUM |
physical | 136 S. |
publishDate | 1989 |
publishDateSearch | 1989 |
publishDateSort | 1989 |
publisher | Oxford Univ. Comp. Lab. Programming Res. Group |
record_format | marc |
series2 | Technical monograph PRG-73 |
spelling | Lester, David Verfasser aut Combinator graph reduction a congruence and its applications Oxford Oxford Univ. Comp. Lab. Programming Res. Group 1989 136 S. txt rdacontent n rdamedia nc rdacarrier Technical monograph PRG-73 Zugl.: Oxford, Univ., Diss., 1988 Abstract: "The G-Machine is an efficient implementation of lazy functional languages developed by Augustsson and Johnsson. This thesis may be read as a formal mathematical proof that the G-machine is correct with respect to a denotational semantic specification of a simple language. It also has more general implications. A simple lazy functional language is defined both denotationally and operationally; both are defined to handle erroneous results. The operational semantics models combinator graph reduction, and is based on reduction to weak head normal form. The two semantic definitions are shown to be congruent. Because of error handling the language is not confluent. Complete strictness is shown to be a necessary and sufficient condition for changing lazy function calls to strict ones As strictness analyses are usually used with confluent languages, methods are discussed to restore this property. The operational semantic model uses indirection nodes to implement sharing. An alternative, which is without indirection nodes, is shown to be operationally equivalent for terminating programs. The G-machine is shown to be a representation of the combinator graph reduction operational model. It may be represented by the composition of a small set of combinators which correspond to an abstract machine instruction set. Using a modified form of graph isomorphism, alternative sequences of instructions are shown to be isomorphic, and hence may be used interchangeably. Functional programming languages (DE-588)4113937-9 Hochschulschrift gnd-content |
spellingShingle | Lester, David Combinator graph reduction a congruence and its applications Functional programming languages |
subject_GND | (DE-588)4113937-9 |
title | Combinator graph reduction a congruence and its applications |
title_auth | Combinator graph reduction a congruence and its applications |
title_exact_search | Combinator graph reduction a congruence and its applications |
title_full | Combinator graph reduction a congruence and its applications |
title_fullStr | Combinator graph reduction a congruence and its applications |
title_full_unstemmed | Combinator graph reduction a congruence and its applications |
title_short | Combinator graph reduction |
title_sort | combinator graph reduction a congruence and its applications |
title_sub | a congruence and its applications |
topic | Functional programming languages |
topic_facet | Functional programming languages Hochschulschrift |
work_keys_str_mv | AT lesterdavid combinatorgraphreductionacongruenceanditsapplications |