1993
DOI: 10.7146/dpb.v22i453.6771
|View full text |Cite
|
Sign up to set email alerts
|

Sharing of Computations

Abstract: Danish summaryDenne rapport er en revideret udgave af min afhandling af samme navn, som i juni 1993 blev accepteret til forsvar af PhD-graden i datalogi ved Aarhus Universitet. MotivationI de senereår har man arbejdet meget med at udvikle vaerktøjer til at gøre programmer mere effektive. Af teknikker kan naevnes memoisering [Kho90]; udfold/fold transformationer [PP91b]; graf-baseret implementation af "lazy" evaluering [Jon87] og partiel evaluering [JSS89]. At disse metoder forbedrer effektiviteten skyldes at n… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
26
0

Year Published

2002
2002
2022
2022

Publication Types

Select...
4
3
1

Relationship

0
8

Authors

Journals

citations
Cited by 18 publications
(26 citation statements)
references
References 71 publications
0
26
0
Order By: Relevance
“…We have also identified that the sharing of dynamic computations as achieved with the traditional déjà-vu list [28] is not enough; static computations must also be shared. The concepts involved-staging, i.e., binding-time separation, and sharing of computations as in dynamic programming [6]-have long been recognized as key ones in partial evaluation [4,33]. They are, however, not sufficient to obtain linear-time string matchers in linear time.…”
Section: Discussionmentioning
confidence: 99%
See 2 more Smart Citations
“…We have also identified that the sharing of dynamic computations as achieved with the traditional déjà-vu list [28] is not enough; static computations must also be shared. The concepts involved-staging, i.e., binding-time separation, and sharing of computations as in dynamic programming [6]-have long been recognized as key ones in partial evaluation [4,33]. They are, however, not sufficient to obtain linear-time string matchers in linear time.…”
Section: Discussionmentioning
confidence: 99%
“…Examples of the methods used are Dijkstra's invariants [17], Bird's recursion introduction and tabulation [7], Takeichi and Akama's equational reasoning [41], Colussi's Hoare logic [14], and Hernández and Rosenblueth's logicprogram derivation [25]. Variants of the Boyer-Moore have also been reconstructed: both by partial evaluation [4,18], and by logic-program derivation [24].…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Previous works [1,2,13,20,26] have noted that the unfold/fold transformation methodology is incomplete; some programs cannot be synthesized from each other. This is partly due to the linear relationship that must exist between the original and transformed programs.…”
Section: Conclusion and Related Workmentioning
confidence: 99%
“…: string->int (txt) = match (''abaa",0,4) (txt,0,length(txt)) match (''abaa",0,4) : string*int*int->int (txt,k,lt) = if k=lt then -1 else compare (''abaa",0,4) (txt,k,lt) compare (''abaa",0,4) : string*int*int->int (txt,k,lt) = if 'a'=ref(txt,k) then match (''abaa",1,4) (txt,k+1,lt) else match (''abaa",0,4) (txt,k+1,lt) match (''abaa", 1,4) : string*int*int->int (txt,k,lt) = if k=lt then -1 else compare (''abaa",1,4) (txt,k,lt) compare (''abaa",1,4) : string*int*int->int (txt,k,lt) = if 'b'=ref(txt,k) then match (''abaa",2,4) (txt,k+1,lt) else compare (''abaa",0,4) (txt,k,lt) match (''abaa",2,4) : string*int*int->int (txt,k,lt) = if k=lt then -1 else compare (''abaa",2,4) (txt,k,lt) compare (''abaa",2,4) : string*int*int->int (txt,k,lt) = if 'a'=ref(txt,k) then match (''abaa",3,4) (txt,k+1,lt) else match (''abaa",0,4) (txt,k+1,lt) match (''abaa", 3,4) : string*int*int->int (txt,k,lt) = if k=lt then -1 else compare (''abaa",3,4) (txt,k,lt) compare (''abaa", 3,4) : string*int*int->int (txt,k,lt) = if 'a'=ref(txt,k) then match (''abaa",4,4) (txt,k+1,lt) else compare (''abaa",1,4) (txt,k,lt) match (''abaa",4,4) : string*int*int->int (txt,k,lt) = k-4 in main (''abaa") We will now show that for all patterns, our polyvariant specializer transforms the inefficient string matcher, STAGED, into a program with the above structure. The proof consists of two parts: termination of the specializer and properties of the residual programs.…”
Section: Application: the Knuth-morris-pratt Algorithmmentioning
confidence: 99%