Using middle-out reasoning to transform naïve programs into tail-recursive ones:
Abstract: "We describe a novel technique for the automatic transformation of naive computer programs into tail-recursive ones, with a consequent gain in efficiency. The technique is to specify the required program using the naive definition and then synthesise the tail-recursive program using t...
Gespeichert in:
Hauptverfasser: | , , |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Edinburgh
1990
|
Schriftenreihe: | University <Edinburgh> / Department of Artificial Intelligence: DAI research paper
512 |
Schlagworte: | |
Zusammenfassung: | Abstract: "We describe a novel technique for the automatic transformation of naive computer programs into tail-recursive ones, with a consequent gain in efficiency. The technique is to specify the required program using the naive definition and then synthesise the tail-recursive program using the proofs as programs technique. This requires the specification to be proved realisable in a constructive logic. Restrictions on the form of the proof ensure that the synthesised program is tail-recursive. The automatic search for a synthesis proof is controlled by proof plans, which are descriptions of the high-level structure of proofs of this kind We have extended the known proof plans for inductive proofs by adding a new form of generalisation and by making greater use of middle-out reasoning. In middle-out reasoning we postpone decisions in the early part of the proof by the use of meta-variables which are instantiated, by unification, during later parts of the proof. Higher order unification is required, since these meta-variables can be higher order. |
Beschreibung: | 13 S. |
Internformat
MARC
LEADER | 00000nam a2200000 cb4500 | ||
---|---|---|---|
001 | BV010452975 | ||
003 | DE-604 | ||
005 | 00000000000000.0 | ||
007 | t | ||
008 | 951027s1990 |||| 00||| engod | ||
035 | |a (OCoLC)24437337 | ||
035 | |a (DE-599)BVBBV010452975 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a eng | |
049 | |a DE-91G | ||
100 | 1 | |a Hesketh, Jane |e Verfasser |4 aut | |
245 | 1 | 0 | |a Using middle-out reasoning to transform naïve programs into tail-recursive ones |c Jane Hesketh, Alan Bundy and Alan Smaill |
264 | 1 | |a Edinburgh |c 1990 | |
300 | |a 13 S. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 1 | |a University <Edinburgh> / Department of Artificial Intelligence: DAI research paper |v 512 | |
520 | 3 | |a Abstract: "We describe a novel technique for the automatic transformation of naive computer programs into tail-recursive ones, with a consequent gain in efficiency. The technique is to specify the required program using the naive definition and then synthesise the tail-recursive program using the proofs as programs technique. This requires the specification to be proved realisable in a constructive logic. Restrictions on the form of the proof ensure that the synthesised program is tail-recursive. The automatic search for a synthesis proof is controlled by proof plans, which are descriptions of the high-level structure of proofs of this kind | |
520 | 3 | |a We have extended the known proof plans for inductive proofs by adding a new form of generalisation and by making greater use of middle-out reasoning. In middle-out reasoning we postpone decisions in the early part of the proof by the use of meta-variables which are instantiated, by unification, during later parts of the proof. Higher order unification is required, since these meta-variables can be higher order. | |
650 | 7 | |a Computer software |2 sigle | |
650 | 4 | |a Computer programs | |
650 | 4 | |a Proof theory | |
700 | 1 | |a Bundy, Alan |e Verfasser |4 aut | |
700 | 1 | |a Smaill, Alan |e Verfasser |4 aut | |
810 | 2 | |a Department of Artificial Intelligence: DAI research paper |t University <Edinburgh> |v 512 |w (DE-604)BV010450646 |9 512 | |
999 | |a oai:aleph.bib-bvb.de:BVB01-006965790 |
Datensatz im Suchindex
_version_ | 1804124886277292032 |
---|---|
any_adam_object | |
author | Hesketh, Jane Bundy, Alan Smaill, Alan |
author_facet | Hesketh, Jane Bundy, Alan Smaill, Alan |
author_role | aut aut aut |
author_sort | Hesketh, Jane |
author_variant | j h jh a b ab a s as |
building | Verbundindex |
bvnumber | BV010452975 |
ctrlnum | (OCoLC)24437337 (DE-599)BVBBV010452975 |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02221nam a2200349 cb4500</leader><controlfield tag="001">BV010452975</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">00000000000000.0</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">951027s1990 |||| 00||| engod</controlfield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)24437337</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV010452975</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="100" ind1="1" ind2=" "><subfield code="a">Hesketh, Jane</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Using middle-out reasoning to transform naïve programs into tail-recursive ones</subfield><subfield code="c">Jane Hesketh, Alan Bundy and Alan Smaill</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Edinburgh</subfield><subfield code="c">1990</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">13 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="1" ind2=" "><subfield code="a">University <Edinburgh> / Department of Artificial Intelligence: DAI research paper</subfield><subfield code="v">512</subfield></datafield><datafield tag="520" ind1="3" ind2=" "><subfield code="a">Abstract: "We describe a novel technique for the automatic transformation of naive computer programs into tail-recursive ones, with a consequent gain in efficiency. The technique is to specify the required program using the naive definition and then synthesise the tail-recursive program using the proofs as programs technique. This requires the specification to be proved realisable in a constructive logic. Restrictions on the form of the proof ensure that the synthesised program is tail-recursive. The automatic search for a synthesis proof is controlled by proof plans, which are descriptions of the high-level structure of proofs of this kind</subfield></datafield><datafield tag="520" ind1="3" ind2=" "><subfield code="a">We have extended the known proof plans for inductive proofs by adding a new form of generalisation and by making greater use of middle-out reasoning. In middle-out reasoning we postpone decisions in the early part of the proof by the use of meta-variables which are instantiated, by unification, during later parts of the proof. Higher order unification is required, since these meta-variables can be higher order.</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Computer software</subfield><subfield code="2">sigle</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Computer programs</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Proof theory</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Bundy, Alan</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Smaill, Alan</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="810" ind1="2" ind2=" "><subfield code="a">Department of Artificial Intelligence: DAI research paper</subfield><subfield code="t">University <Edinburgh></subfield><subfield code="v">512</subfield><subfield code="w">(DE-604)BV010450646</subfield><subfield code="9">512</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-006965790</subfield></datafield></record></collection> |
id | DE-604.BV010452975 |
illustrated | Not Illustrated |
indexdate | 2024-07-09T17:52:47Z |
institution | BVB |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-006965790 |
oclc_num | 24437337 |
open_access_boolean | |
owner | DE-91G DE-BY-TUM |
owner_facet | DE-91G DE-BY-TUM |
physical | 13 S. |
publishDate | 1990 |
publishDateSearch | 1990 |
publishDateSort | 1990 |
record_format | marc |
series2 | University <Edinburgh> / Department of Artificial Intelligence: DAI research paper |
spelling | Hesketh, Jane Verfasser aut Using middle-out reasoning to transform naïve programs into tail-recursive ones Jane Hesketh, Alan Bundy and Alan Smaill Edinburgh 1990 13 S. txt rdacontent n rdamedia nc rdacarrier University <Edinburgh> / Department of Artificial Intelligence: DAI research paper 512 Abstract: "We describe a novel technique for the automatic transformation of naive computer programs into tail-recursive ones, with a consequent gain in efficiency. The technique is to specify the required program using the naive definition and then synthesise the tail-recursive program using the proofs as programs technique. This requires the specification to be proved realisable in a constructive logic. Restrictions on the form of the proof ensure that the synthesised program is tail-recursive. The automatic search for a synthesis proof is controlled by proof plans, which are descriptions of the high-level structure of proofs of this kind We have extended the known proof plans for inductive proofs by adding a new form of generalisation and by making greater use of middle-out reasoning. In middle-out reasoning we postpone decisions in the early part of the proof by the use of meta-variables which are instantiated, by unification, during later parts of the proof. Higher order unification is required, since these meta-variables can be higher order. Computer software sigle Computer programs Proof theory Bundy, Alan Verfasser aut Smaill, Alan Verfasser aut Department of Artificial Intelligence: DAI research paper University <Edinburgh> 512 (DE-604)BV010450646 512 |
spellingShingle | Hesketh, Jane Bundy, Alan Smaill, Alan Using middle-out reasoning to transform naïve programs into tail-recursive ones Computer software sigle Computer programs Proof theory |
title | Using middle-out reasoning to transform naïve programs into tail-recursive ones |
title_auth | Using middle-out reasoning to transform naïve programs into tail-recursive ones |
title_exact_search | Using middle-out reasoning to transform naïve programs into tail-recursive ones |
title_full | Using middle-out reasoning to transform naïve programs into tail-recursive ones Jane Hesketh, Alan Bundy and Alan Smaill |
title_fullStr | Using middle-out reasoning to transform naïve programs into tail-recursive ones Jane Hesketh, Alan Bundy and Alan Smaill |
title_full_unstemmed | Using middle-out reasoning to transform naïve programs into tail-recursive ones Jane Hesketh, Alan Bundy and Alan Smaill |
title_short | Using middle-out reasoning to transform naïve programs into tail-recursive ones |
title_sort | using middle out reasoning to transform naive programs into tail recursive ones |
topic | Computer software sigle Computer programs Proof theory |
topic_facet | Computer software Computer programs Proof theory |
volume_link | (DE-604)BV010450646 |
work_keys_str_mv | AT heskethjane usingmiddleoutreasoningtotransformnaiveprogramsintotailrecursiveones AT bundyalan usingmiddleoutreasoningtotransformnaiveprogramsintotailrecursiveones AT smaillalan usingmiddleoutreasoningtotransformnaiveprogramsintotailrecursiveones |