Matches in SemOpenAlex for { <https://semopenalex.org/work/W2150349217> ?p ?o ?g. }
- W2150349217 abstract "Most popular programming languages are strict. In a strict language, the binding of a variable to an expression coincides with the evaluation of the expression. Non-strict languages attempt to make life easier for programmers by decoupling expression binding and expression evaluation. In a non-strict language, a variable can be bound to an unevaluated expression, and such expressions can be passed around just like values in a strict language. This separation allows the programmer to declare a variable at the point that makes most logical sense, rather than at the point at which its value is known to be needed. Non-strict languages are usually evaluated using a technique called Lazy Evaluation. Lazy Evaluation will only evaluate an expression when its value is known to be needed. While Lazy Evaluation minimises the total number of expressions evaluated, it imposes a considerable bookkeeping overhead, and has unpredictable space behaviour. In this thesis, we present a new evaluation strategy which we call Optimistic Evaluation. Optimistic Evaluation blends lazy and eager evaluation under the guidance of an online profiler. The online profiler observes the running program and decides which expressions should be evaluated lazily, and which should be evaluated eagerly. We show that the worst case performance of Optimistic Evaluation relative to Lazy Evaluation can be bounded with an upper bound chosen by the user. Increasing this upper bound allows the profiler to take greater risks and potentially achieve better average performance. This thesis describes both the theory and practice of Optimistic Evaluation. We start by giving an overview of Optimistic Evaluation. We go on to present formal model, which we use to justify our design. We then detail how we have implemented Optimistic Evaluation as part of an industrial-strength compiler. Finally, we provide experimental results to back up our claims." @default.
- W2150349217 created "2016-06-24" @default.
- W2150349217 creator A5025676132 @default.
- W2150349217 date "2008-01-01" @default.
- W2150349217 modified "2023-09-27" @default.
- W2150349217 title "Adaptive evaluation of non-strict programs" @default.
- W2150349217 cites W142230668 @default.
- W2150349217 cites W146427529 @default.
- W2150349217 cites W1480972752 @default.
- W2150349217 cites W1482689271 @default.
- W2150349217 cites W1483474820 @default.
- W2150349217 cites W1483817851 @default.
- W2150349217 cites W1490584728 @default.
- W2150349217 cites W1495397611 @default.
- W2150349217 cites W1498815108 @default.
- W2150349217 cites W1509600745 @default.
- W2150349217 cites W1512248102 @default.
- W2150349217 cites W1534285741 @default.
- W2150349217 cites W1536665227 @default.
- W2150349217 cites W1546727036 @default.
- W2150349217 cites W1551189225 @default.
- W2150349217 cites W1556536463 @default.
- W2150349217 cites W1556604985 @default.
- W2150349217 cites W1558109178 @default.
- W2150349217 cites W1559686260 @default.
- W2150349217 cites W1571793266 @default.
- W2150349217 cites W1576610176 @default.
- W2150349217 cites W1580566336 @default.
- W2150349217 cites W172004165 @default.
- W2150349217 cites W1964647125 @default.
- W2150349217 cites W1966981171 @default.
- W2150349217 cites W1969012464 @default.
- W2150349217 cites W1970810328 @default.
- W2150349217 cites W1971181882 @default.
- W2150349217 cites W1973739282 @default.
- W2150349217 cites W1975718783 @default.
- W2150349217 cites W1980647766 @default.
- W2150349217 cites W1983587324 @default.
- W2150349217 cites W1984248430 @default.
- W2150349217 cites W1989818743 @default.
- W2150349217 cites W199231109 @default.
- W2150349217 cites W2002549773 @default.
- W2150349217 cites W2004843654 @default.
- W2150349217 cites W2011648260 @default.
- W2150349217 cites W2018128817 @default.
- W2150349217 cites W2023168372 @default.
- W2150349217 cites W2025033165 @default.
- W2150349217 cites W2026585559 @default.
- W2150349217 cites W2027620096 @default.
- W2150349217 cites W2038454634 @default.
- W2150349217 cites W2038856365 @default.
- W2150349217 cites W2040593910 @default.
- W2150349217 cites W2050907089 @default.
- W2150349217 cites W2051600983 @default.
- W2150349217 cites W2052184002 @default.
- W2150349217 cites W2055052109 @default.
- W2150349217 cites W2058490938 @default.
- W2150349217 cites W2058958439 @default.
- W2150349217 cites W2062950667 @default.
- W2150349217 cites W2068324780 @default.
- W2150349217 cites W2071077931 @default.
- W2150349217 cites W2073904768 @default.
- W2150349217 cites W2077324087 @default.
- W2150349217 cites W2078420514 @default.
- W2150349217 cites W2078944436 @default.
- W2150349217 cites W2079978872 @default.
- W2150349217 cites W2081114808 @default.
- W2150349217 cites W2081388374 @default.
- W2150349217 cites W2084405255 @default.
- W2150349217 cites W2087198640 @default.
- W2150349217 cites W2087404516 @default.
- W2150349217 cites W2089241138 @default.
- W2150349217 cites W2091768885 @default.
- W2150349217 cites W2095621310 @default.
- W2150349217 cites W2095768411 @default.
- W2150349217 cites W2097509104 @default.
- W2150349217 cites W2100551212 @default.
- W2150349217 cites W2103859677 @default.
- W2150349217 cites W2104416102 @default.
- W2150349217 cites W2106309936 @default.
- W2150349217 cites W2109507655 @default.
- W2150349217 cites W2115737686 @default.
- W2150349217 cites W2116827712 @default.
- W2150349217 cites W2118068485 @default.
- W2150349217 cites W2118172707 @default.
- W2150349217 cites W2118399810 @default.
- W2150349217 cites W2120230074 @default.
- W2150349217 cites W2122563027 @default.
- W2150349217 cites W2123307082 @default.
- W2150349217 cites W2127642645 @default.
- W2150349217 cites W2128195938 @default.
- W2150349217 cites W2128492838 @default.
- W2150349217 cites W2131129592 @default.
- W2150349217 cites W2135037829 @default.
- W2150349217 cites W2136202785 @default.
- W2150349217 cites W2137868632 @default.
- W2150349217 cites W2139077453 @default.
- W2150349217 cites W2140499691 @default.
- W2150349217 cites W2145546708 @default.
- W2150349217 cites W2151109649 @default.