23 citations found. Retrieving documents...
J. L. Bentley. Writing Efficient Programs. Prentice Hall, Englewood Cliffs, 1982.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Characterizing Coarse-Grained Reuse of Computation - Sastry, Bodik, Smith (2000)   (1 citation)  (Correct)

....value profiles [15] are all software techniques for exploiting coarse grained reuse. All known techniques for exploiting coarse grained reuse can be categorized as either a memoization or a specialization technique. Memoization is a technique based on looking up previous results in a reuse table [2]. Specialization involves optimizing the program by hardcoding the values produced by a reusable piece of code. Although various specialization techniques [4, 7, 15,16] have been studied, available opportunities for specialization in general purpose programs has not been studied before. The goal ....

J. L. Bentley. Writing Efficient Programs. Prentice Hall, Englewood Cliffs, 1982.


Modeling Program Predictability - Sazeides, Smith (1998)   (28 citations)  (Correct)

....of both the inputs and outputs of an instruction by using a table to look up results computed with the same inputs at some time in the past. The concept of reuse is similar to memoization [1] a software technique that can be used to eliminate redundant computation by storing precomputed results[2]. Other software approaches that can take advantage of value behavior are specialization by static or dynamic compilation[4] and software speculation[6] extended to values. 1.3 Paper Overview The paper is organized as follows: Section 2 introduces the model for predictability. Section 3 ....

J. L. Bentley. Writing Efficient Programs. Prentice-Hall Inc., New Jersey, 1982.


Algorithms and Experiments: The New (and Old) Methodology - Moret, Shapiro   (Correct)

....of a convex hull and the bounce techniques for binary heaps, see, e.g. MS91a] as for more theoretical contributions. Throughout the last 25 years, Jon Bentley has demonstrated the value of implementation and testing of algorithms, beginning with his text on writing efficient programs [Ben82] and continuing with his invaluable Programming Pearls columns in Communications of the ACM, now collected in a new volume [Ben99] and his Software Explorations columns in the UNIX Review. David Johnson, whose own work on optimization for NP hard problems involves extensive experimentation, ....

J. L. Bentley, Writing efficient programs, Prentice-Hall, Englewood Cliffs, NJ, 1982.


Characterizing Coarse-Grained Reuse of Computation - Sastry, Bodik, Smith (2000)   (1 citation)  (Correct)

....value profiles [15] are all software techniques for exploiting coarse grained reuse. All known techniques for exploiting coarse grained reuse can be categorized as either a memoization or a specialization technique. Memoization is a technique based on looking up previous results in a reuse table [2]. Specialization involves optimizing the program by hardcoding the values produced by a reusable piece of code. Although various specialization techniques [4, 7, 15,16] have 1 been studied, available opportunities for specialization in general purpose programs have not been studied before. The ....

J. L. Bentley. Writing Efficient Programs. Prentice Hall, Englewood Cliffs, 1982.


Theory of Computing: Achievements, Challenges, and.. - Michael Loui Program   (Correct)

....about algorithms, apart from software engineering issues. The overemphasis on asymptotic analysis has obscured more prosaic aspects of the implementation of algorithms: in real life, constant factors do matter, and it is important to find general algorithmic techniques for speeding up programs [1]. For parallel algorithms, the number of processors in multiprocessor computers seldom grows with the size of the input. Thus it is important to understand how to implement parallel algorithms on computers with a fixed number of processors. Realistic models of computation. Although a ....

J. Bentley, Writing Efficient Programs, Prentice-Hall, Englewood Cliffs, N.J., 1982.


"Low-End" DMA Coprocessor Speedups: Case Studies - Chatterjee, Fisher   (Correct)

....a one word key, a character string search, data compression via Huffman coding, and logical filtering of a two dimensional image bitmap. For each algorithm, we began with a C program written with ordinary attention to efficiency, and applied algorithm improvements and source code tuning techniques[1] to reduce its runtime as far as possible. We then used experimental memory bandwidth numbers and, where relevant, memory access patterns to predict the performance of coprocessors able to use available memory bandwidth to its fullest extent. For each application, we show speedups available by ....

Jon Bentley. Writing Efficient Programs. Prentice-Hall, 1982.


Efficiency Issues for Ray Tracing - Brian Smits (1999)   (5 citations)  (Correct)

....process of optimization. The set I use is: ffl Make it work before you make it fast. ffl Profile everything you do. ffl Complexity is bad. ffl Preprocessing is good. ffl Compute only what you need. 2. 1 Make it Work Before You Make it Fast Code should be made correct before it is made fast [2]. As stated repeatedly by Knuth [9] Premature optimization is the root of all evil . Obviously, slow correct code is more useful than fast broken code. There is an additional reason for the rule, though. If you create a working, unoptimized version first, you can use that as a benchmark to check ....

BENTLEY, J. L. Writing Efficient Programs. Prentice-Hall, Englewood Cliffs, NJ, 1982.


The Concept of Dynamic Analysis - Ball   (23 citations)  (Correct)

....that is rarely exploited by programmers. Jon Bentley, in his series of columns and books on writing efficient programs, discusses how execution counts tell interesting tales and can help programmers to debug misbehaving programs as well as to tune the performance of well behaved programs. [5, 6] In the next section, we explore this idea in some detail through a case study. 2.2 Case Study: Understanding an Obfuscated C Program Figure 1 presents an obfuscated C program that often makes the rounds during the holiday season (the author has received it at least twice) The program takes no ....

....(profiles) is unavailable from conventional static analyses. #include stdio.h main(t, a) char a; if ( 0) t) 1] if (t 3) main( 79, 13,a main( 87,1 ,main( 86,0,a 1) a) 2] if (t ) main(t 1, a) 3] main( 94, 27 t,a) 4] if (t= 2 13 ) main(2, 1, else if (t 0) [5] if (t 72) main( t,LARGESTRING) else if (t 50 ) 6] if ( a) putchar(31[a] 7] else main( 65, a 1) 8] else main( a= t, a 1) 9] else if (0 t) main (2,2, s ) 10] else if ( a = main(0,main( 61, a,SMALLSTRING) a 1) Fig. 2. A (more) readable version of the obfuscated ....

[Article contains additional citation context not shown here]

J. Bentley. Writing Efficient Programs. Prentice-Hall, Englewood Cliffs, N.J., 1982.


Cache-Oblivious Algorithms - Prokop (1999)   (3 citations)  (Correct)

....how new compiler techniques can help to ease the programming of divide and conquer algorithms. Most algorithms given in this thesis are divide and conquer algorithms. Conventional wisdom says that recursive procedures should be converted into iterative loops in order to improve performance [8]. While this strategy was effective ten years ago, many recursive programs now actually run faster than their iterative counterparts. So far most of the work by architects and compiler writers is concentrated on loop based iterative programs. Their tools are often not appropriate for recursion and ....

BENTLEY, J. L. Writing Efficient Programs. Prentice-Hall, 1982.


Hints for Computer System Design - Lampson (1983)   (97 citations)  (Correct)

....a specialized kind of garbage collection. It can be done in background so that the user doesn t have to stop editing (though Bravo doesn t do this) 3. Speed This section describes hints for making systems faster, forgoing any further discussion of why this is important. Bentley s excellent book [55] says more about some of these ideas and gives many others. Neither a borrower, nor a lender be; For loan oft loses both itself and friend, And borrowing dulleth edge of husbandry. Split resources in a fixed way if in doubt, rather than sharing them. It is usually faster to allocate dedicated ....

Bentley, J.L. Writing Efficient Programs. Prentice-Hall, 1982.


Converting Python Virtual Machine Code to C - Aycock (1998)   (Correct)

....program was a 1400 line program that built and manipulated large graphs. While I found Python made for very fast development, the result was somewhat disappointing medium sized inputs could take days to run, making large inputs out of the question. I applied the usual optimization techniques [3]. Using Python s profiler, I was able to identify hot spots in the program where the majority of time was being spent; changing that code to use more efficient data structures and cache previouslycomputed information sped the program up substantially. Manually performing transformations such as ....

J. L. Bentley. Writing Efficient Programs. Prentice-Hall, 1982.


Size and Access Inference for Data-Parallel Programs - Chatterjee, Blelloch, Fisher (1991)   (6 citations)  (Correct)

....constant; these constraints define the vector sizes for which the computation is well formed. The only value of k we currently use is 1. ffl A set of transfer functions Out(n; i) 1 i n:out) that compute the sizes of the output vectors of the node in terms of the sizes of its input vectors. v [5 4 8 1 0 9 2] f [0 1 1 0 1 0 0] Notf [1 0 0 1 0 1 1] Up [0 0 1 2 2 3 3] Down [0 1 1 1 2 2 3] Sum 4 RealUp [4 4 5 6 6 7 7] Index [0 4 5 1 6 2 3] r [5 1 9 2 4 8 0] defun split (v f) let ( NotF (not f) Up (plus scan f) Down (plus scan NotF) Sum (plus reduce NotF) RealUp ( distv Sum v) Up) Index ....

....of k we currently use is 1. ffl A set of transfer functions Out(n; i) 1 i n:out) that compute the sizes of the output vectors of the node in terms of the sizes of its input vectors. v [5 4 8 1 0 9 2] f [0 1 1 0 1 0 0] Notf [1 0 0 1 0 1 1] Up [0 0 1 2 2 3 3] Down [0 1 1 1 2 2 3] Sum 4 RealUp [4 4 5 6 6 7 7] Index [0 4 5 1 6 2 3] r [5 1 9 2 4 8 0] defun split (v f) let ( NotF (not f) Up (plus scan f) Down (plus scan NotF) Sum (plus reduce NotF) RealUp ( distv Sum v) Up) Index (select f RealUp Down) permute v Index) v f DISTV SELECT PERMUTE r Notf Up Down Sum Index ....

[Article contains additional citation context not shown here]

Jon L. Bentley. Writing Efficient Programs. Prentice-Hall, 1982.


Issues in the Design of an Object Oriented Programming Language - Grogono (1991)   (2 citations)  (Correct)

....executed code segments (usually the inner loops) are identified and carefully coded. If these conditions are satisfied, the additional improvement that can be obtained by writing tricky code is usually small and is often outweighed by the extra work of debugging and maintaining the program [13]. The ideal programming language would be both simple and efficient. There are situations in which the desire for simplicity and efficiency work together. Some of the most interesting issues in language design arise, however, when it is necessary to establish a balance between simplicity and ....

J. Bentley. Writing Efficient Programs. Prentice-Hall, 1982.


Efficient Parallel Algorithms for Closest Point Problems - Peter Su (1994)   (7 citations)  (Correct)

....Using recent variants on Bentley s k d tree data structure [Ben90] might be an effective way to do this. The experiments and other studies in this chapter also make use of many tools from the experimental analysis of algorithms. Much of this work is heavily influenced by the writings of Bentley [Ben82, Ben89] and the Ph.D. dissertation of McGeoch [McG86] Later on in this thesis, we will make new use of these ideas in the context of parallel algorithms design. Abstraction. Algorithms should be analyzed in terms of reasonably high level abstract operations as opposed to low level machine ....

J. L. Bentley. Writing Efficient Programs. Prentice-Hall, Inc., 1982.


3x+1 Search Programs - Leavens, Vermeulen (1992)   (Correct)

....relative speeds of Argus and C are still accurate, because in Argus integers must be decoded before they can be processed by the CPU s native instruction set, and then encoded on return. Our optimizations can be analyzed in terms of Bentley s taxonomy of program efficiency improvement strategies [1]. This comparison shows that we used some standard strategies in interesting ways. Bentley s logic rule 1 exploit algebraic identities states that: If the evaluation of a logical expression is costly, replace it by an algebraically equivalent expression that is cheaper to evaluate [1, page ....

J. L. Bentley. Writing Efficient Programs. Software Series. Prentice-Hall, Englewood Cliffs, N.J., 1982.


Foundations for the Study of Software Architecture - Perry, Wolf (1992)   (316 citations)  (Correct)

....that motivate the architect. In software architecture, the rationale instead explicates the satisfaction of the system constraints. These constraints are determined by considerations ranging from basic functional aspects to various non functional aspects such as economics [4] performance [2] and reliability [13] 3.2 Architectural Style If architecture is a formal arrangement of architectural elements, then architectural style is that which abstracts elements and formal aspects from various specific architectures. An architectural style is less constrained and less complete than a ....

J.L. Bentley, Writing Efficient Programs, AddisonWesley, Reading, MA, 1982.


Formally Based Profiling for Higher-Order Functional Languages - Sansom, Jones (1997)   (19 citations)  (Correct)

....transformation, space profiling, source level profiling 1. MOTIVATION AND OVERVIEW Everyone knows the importance of profiling tools: the best way to improve a program s performance is to concentrate on the parts or features of a program that are eating the lion s share of the machine resources [Bentley 1982; Ingalls 1972; Knuth 1971] One would expect profiling tools to be particularly useful for very high level languages where the mapping from source code to target machine is much less obvious to the programmer than it is for (say) C. Despite this obvious need, profiling tools for such languages ....

Bentley, J. L. 1982. Writing Efficient Programs. Prentice-Hall, Englewood Cliffs, N.J.


Techniques for Transparent Program Specialization in Dynamic.. - Sastry   (Correct)

No context found.

J. L. Bentley. Writing Efficient Programs. Prentice Hall, Englewood Cliffs, 1982.


The Role of Reuse in Introducing Software Engineering Principles.. - Gray (1993)   (Correct)

No context found.

Bentley, J.L., Writing Efficient Programs, Prentice-Hall, 1982.


Master/slave Speculative Parallelization And Approximate Code - Zilles (2002)   (1 citation)  (Correct)

No context found.

J. L. Bentley. Writing Efficient Programs. Prentice Hall, Englewood Cliffs, 1982.


Bibliography on the Solution of Sparse Linear Systems and Related .. - Arantes (1997)   (Correct)

No context found.

Bentley, J. L. Writing Efficient Programs. Prentice-Hall, 1982.


A Retargetable Compiler for ANSI C - Fraser, Hanson (1991)   (47 citations)  (Correct)

No context found.

J. L. Bentley. Writing Efficient Programs. Prentice Hall, Englewood Cliffs, NJ, 1982.


Execution Profiling for Non-strict Functional Languages - Sansom (1994)   (16 citations)  (Correct)

No context found.

JL Bentley [1982], Writing Efficient Programs, Prentice Hall.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC