# Russell W. Quong's research while affiliated with Purdue University and other places

**What is this page?**

This page lists the scientific contributions of an author, who either does not have a ResearchGate profile, or has not yet added these contributions to their profile.

It was automatically created by ResearchGate to create a record of this author's body of work. We create such pages to advance our goal of creating and maintaining the most comprehensive scientific repository possible. In doing so, we process publicly available (personal) data relating to the author as a member of the scientific community.

If you're a ResearchGate member, you can follow this page to keep up with this author's work.

If you are this author, and you don't want us to display this page anymore, please let us know.

It was automatically created by ResearchGate to create a record of this author's body of work. We create such pages to advance our goal of creating and maintaining the most comprehensive scientific repository possible. In doing so, we process publicly available (personal) data relating to the author as a member of the scientific community.

If you're a ResearchGate member, you can follow this page to keep up with this author's work.

If you are this author, and you don't want us to display this page anymore, please let us know.

## Publications (17)

Cache miss rates are quoted for a specific program, cache configuration, and input set; the effect of program layout on the miss rate has largely been ignored. This paper examines the miss variation, that is, the variation in the miss rate for instruction and data caches resulting from randomly generated layouts; the layouts were generated by chang...

In this paper, we present an efficient algorithm to compute a tighter lower bound for the one-dimensional bin packing problem. The time complexity of the algorithm is O(n log n). We have simulated the algorithm on randomly generated bin packing problems with item sizes drawn uniformly from (a; b], 0 a ! b B. If our lower bound is used, on average,...

this paper, we introduce the ANTLR (ANother Tool for Language Recognition) parser generator, which addresses all these issues. ANTLR is a component of the Purdue Compiler Construction Tool Set (PCCTS)

To evaluate the performance of a memory system, computer architects must determine the miss rate m of a cache C when running program P . Typically, the measured miss rate depends on the specific address mapping M of P set arbitrarily by the compiler and linker. In this paper, we remove the effect of the address-mapping on the miss rate by analyzing...

Language translation is a harder and more important problem than language recognition. In particular, programmers implement translators not recognizers. Yet too often, translation is equated with the simpler task of syntactic parsing. This misconception coupled with computing limitations of past computers has led to the almost exclusive use of LR(1...

In this paper, we present an O(n log n) algorithm to compute a tight lower bound for the one-dimensional bin packing problem. We have simulated the algorithm on randomly generated bin packing problems with item sizes drawn uniformly from (a, b), where 0 ⩽ a < b ⩽ B and B is bin size. Using our lower bound, the average error of BFD is less than 2%....

Despite the parsing power of recursive-descent parsers by hand to obtain increased flexibility, better error handling, and ease of debugging. We introduce ANTLR, a public-domain parser generator that combines the flexibility of hand-coded parsing with the convenience of a parser generator, which is a component of PCCTS. ANTLR has many features that...

Studies the sample complexity of a continuous binary search problem with probabilistic noise present in the information. The authors derive a general lower bound on the complexity and propose an algorithm that can solve the problem with arbitrary accuracy and confidence. The authors also give the sufficient condition on the number of samples for th...

To evaluate the performance of a memory system, computer architects must determine the miss rate m of a cache C when running program P. Typically, the measured miss rate depends on the specific address mapping M of P set arbitrarily by the compiler and linker. The author removes the effect of the address-mapping on the miss rate by analyzing a symb...

Most language translation problems can be solved with existing LALR(1) or LL(k) language tools; e.g., YACC [Joh78] or ANTLR [PDC92]. However, there are language constructs that defy almost all parsing strategy commonly in use. Some of these constructs cannot be parsed without semantics, such as symbol table information, and some cannot be properly...

To evaluate the performance of a memory system, computer architects must determine the miss rate m of a cache C when running program P. Typically, the measured miss rate depends on the specific address mapping M of P set arbitrarily by the compiler and linker. In this paper, we remove the effect of the address-mapping on the miss rate by analyzing...

Although existing LR(1) or U(1) parser generators suffice for many language recognition problems, writing a straightforward grammar to translate a complicated language, such as C++ or even C, remains a non-trivial task. We have often found that adding translation actions to the grammar is harder than writing the grammar itself. Part of the problem...

Register allocation by coloring an interference graph is a common technique. We introduce the weighted interference graph (WIG) which improves upon previous approaches in the following ways: (i) the cost of a coloring accurately models the cost of the register assignment, (ii) arbitrary register spills are handled naturally, as the coloring implici...

For NP-complete problems, it may not be possible to find an optimal solution in polynomial time. However, efficient approximation algorithms for many NP-complete problems do exist. A good approach is to find tighter upper and lower bounds on the optimal solutions. As the gap between these two bounds approaches zero, optimality is reached. For minim...

Pattern matching consists of finding occurrences of a pattern in some data. One general approach is to sample the data collecting evidence about possible matches. By sampling appropriately, we force matches to be sparse and can encode a table of size m as a series of smaller tables with total size . This method yields practical algorithms with fast...

The C++ programming language has evolved into a powerful and popular programming language; unfortunately, it is complicated enough that many undergraduate courses teach only a small subset of the language. Over the last three years at Purdue, we have taught an advanced class covering almost all of C++ language. Although we found no single unifying...

The standard trace-driven cache simulation evaluates the miss rate of cache C on an address trace T for program P running on input data I with object-code address map M for P. We note that the measured miss rate depends significantly on the address mapping M set arbitrarily by the compiler and linker. In this paper, we remove the effect of the addr...

## Citations

... Most of them were based on the use of traces, with the drawbacks explained in Section 1. Thus, Agarwal [20] obtains access probabilities to code blocks from traces and aims his model at the estimation of the performance in a multiprogrammed system, paying special attention to the O.S. Also, the model described by Quong in [21] (gap model) is applied to probabilities extracted from particular executions of programs. It is based, as is our model, on the calculation of the mean area accessed between two references to the same block. ...

... Chao et al. [26] and Crainic et al. [39] studied methods for computing "fast" lower bounds for the BPP, i.e., bounds requiring no more than O(n log n) time. Once a lower bound value, say ℓ, has been computed, it can sometimes be improved through additional considerations: for example, if it can be established that no feasible solution using ℓ bins exists, then ℓ + 1 is a valid lower bound value. ...

... The syntax Lexer transforms the raw syntax code by a lexer grammar for each language into a stream of tokens. The ANTLR-based [13] Parser then parses the token stream into an abstract syntax tree (AST). The Tree Walker finally walks over the AST and refers to a mapping between statistical languages and SDTL for SDTL translation. ...

... a with 0≤ a ≤127 2 32 with a=129 2 33 with a=130 2 34 with a=131 2 35 with a=132 This split in the parsing paths also allows us to encode in the state the actual value of the length counter, accumulating it in case it is longer than a single byte. All the length-field recognition paths terminate with a transition moving to the state encoding the corresponding number of content octets field bytes to be read, upon reading the last byte of the length field, following the same structure of the toy automaton. ...

... In fact, this is one of the reasons why predicting the cost of memory accesses in the presence of caches, both on average and in the worst-case, is exceedingly complex with current WCET analyses. In fact, although previous studies [7], [12] show that certain memory layouts result in different execution times of real Fig. 3. Cache performance depends on memory layout: (a) Functions are placed consecutively in memory (∆ = < 0, 0, 0, 0, 0 >), (b) Functions are not placed consecutively in memory (∆ = < 24, 40, 40, 36, 32 >), resulting in a cache risk pattern. applications, they do not conducte an exhaustive space exploration of the range of all possible memory layouts. ...

... This section discusses how to directly construct an LR-type parser for a given grammar and fixed k and m values. The algorithm is incremental, in that it attempts to use as little right context as possible: this is interesting for efficiency reasons (much as incremental lookaheads in (Ancona et al., 1991;Parr and Quong, 1996)), and actually needed since more context does not necessarily lead to determinism (recall Section 2.3). The class of grammars for which the algorithm terminates successfully (i.e. ...

Reference: On LR Parsing with Selective Delays

... Graph coloring problem is commonly used to model many real-world problems such as scheduling, resource allocation and register allocation [3]- [5]. Most of these problems have limited number of resources. ...

... A dichotomy is a binary search method that splits the search area into two non-overlapping parts and processes by eliminating one of these parts. In the literature dichotomy methods are known to have fairly good convergence, yielding close values in logarithmic time ( [15] referring to [16]). ...

... Each program determines approaching rate of L1 and L2 cache, which affects value of AMAT consequently [14]. Results of AMAT in different program are shown in Fig. 5. Miss rate of equake in Fig. 5(a) is much smaller than that of face_rec in Fig. 5(b). ...

... Trace driven simulations are a common method for the estimation of code performance. Another usual approach is the use of models that derive their input parameters from traces [3], [7], [9]. Probabilistic models reduce estimation times and provide more flexibility for the parametric study of the cache. ...