28 citations found. Retrieving documents...
Charles N. Fischer and Richard J. LeBlanc. Crafting a Compiler with C. Benjamin/Cummings Publishing Company, Redwood City CA, 1991.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

LL and LR Translators Need k > 1 Lookahead - Parr, Quong (1995)   (Correct)

....The inability of LL to automatically left factor common prefixes of competing rules often forces the programmer to manually left factor these rules. At best this process leads to unnatural grammars; at worst, it may be insufficient as there are languages that are LL(k) but not LL(k Gamma 1) [6]. A larger lookahead k allows the parser to see past more common prefixes, increases recognition strength and minimizes the need for manual left factoring. Once the programmer has developed an LL(k) grammar, the addition of semantic actions has no effect. Thus, if we can recognize input with LL(k) ....

Charles N. Fischer and Richard J. LeBlanc. Crafting a Compiler with C. Benjamin/Cummings Publishing Company, Redwood City CA, 1991.


LL and LR Translators Need k > 1 Lookahead - Parr, Quong (1994)   (Correct)

....The inability of LL to automatically left factor common prefixes of competing rules often forces the programmer to manually left factor these rules. At best this process leads to unnatural grammars; at worse, it may be insufficient as there are languages that are LL(k) but not LL(k Gamma 1) [FL91]. A larger lookahead k allows the parser to see past more common prefixes, increasing recognition strength and minimizing the need for manual left factoring. Once the programmer has developed an LL(k) grammar, the addition of semantic actions has no effect. Thus, if we can recognize input with ....

Charles N. Fischer and Richard J. LeBlanc. Crafting a Compiler with C. Benjamin /Cummings Publishing Company, Redwood City CA, 1991.


Using Constraints to Detect Equivalent Mutants - Offutt, Pan (1994)   (1 citation)  (Correct)

....7. Assertions like these are also known as preconditions. 2 . Assertions on internal variables that could be derived automatically, such as (I.GE.1 .AND. M.GE.1) in the function Find shown in Figure 7. There are known techniques for doing this, such as slicing [Wei84] and control flow analysis [FL88] The purpose of implementing a tool in this thesis is to show how we can use constraints to detect equivalent mutants, so in our implementation, we generate these assertions by hand and put them in as assertion constraints. 3 . Assertions on internal variables that could not easily be derived ....

Charles N. Fischer and Richard J. LeBlanc. Crafting a Compiler. Benjamin/Cummings Publishing Company, Inc, Menlo Park, CA, 1988.


Optimizing Incremental State Saving and Restoration - Gomes (1996)   (6 citations)  (Correct)

....basic block (entry basic block) in the event handler routine. The set of state variables that need to be logged within a basic block can now be expressed as follows: LOG SET (b) MOD(b) Gamma (MOD IN(b) MOD(b) 105 This is an All Path Flow Analysis (with forward data flow) problem 6 [3, 33, 52, 65, 83]. Sections 16.2 and 16.4 in [33] detail solutions for determining the set of variables defined, i.e. assigned to, by using interprocedural analysis and any path global flow analysis, respectively. OPT #6. Minimize the number of records logged. The cost for checking availability of space in an SLB ....

....handler routine. The set of state variables that need to be logged within a basic block can now be expressed as follows: LOG SET (b) MOD(b) Gamma (MOD IN(b) MOD(b) 105 This is an All Path Flow Analysis (with forward data flow) problem 6 [3, 33, 52, 65, 83] Sections 16.2 and 16.4 in [33] detail solutions for determining the set of variables defined, i.e. assigned to, by using interprocedural analysis and any path global flow analysis, respectively. OPT #6. Minimize the number of records logged. The cost for checking availability of space in an SLB can be decreased by merging ....

C. Fischer and R. LeBlanc Jr. Crafting a Compiler. The Benjamin/Cummings Publishing Company, Inc., 1988.


Translation of Conditional Compilation - Harsu (1997)   (1 citation)  (Correct)

....4.4 shows examples illustrating the ideas presented so far. Sections 4.5 and 4.6 present some further considerations of the idea. 4.1 Assumptions The basic idea is based on top down parsing. We assume a parsing stack, which is used in parsing as follows (the algorithm is generalized from [4], p. 121) parsingalgorithm is push the start symbol onto an empty stack; while the stack is not empty do let X be the top stack symbol let a be the current input token if X is a nonterminal symbol then pop X from the stack; push the components of X onto the stack in reverse order; ....

Fischer, C. N., LeBlanc, R. J.: Crafting a Compiler with C. The Benjamin /Cummings Publishing Company, 1991.


Deterministic Parsing of Languages with Dynamic Operators - Kjell Post (1993)   (Correct)

....techniques assume a static grammar and fixed operator priorities. Excellent methods have been developed for generating efficient LL parsers and LR parsers from specifications in the form of production rules, sometimes augmented with associativity and precedence declarations for infix operators [1, 3, 4, 9, 15]. Parser generation methods enjoy several significant advantages over hand coding : 1. The language syntax can be presented in a readable, nonprocedural form, similar to production rules. 2. Embedded semantic actions can be triggered by parsing situations. 3. For most programming languages, the ....

Charles N. Fischer and Richard J. LeBlanc Jr. Crafting a Compiler. Benjamin/Cummings Publishing Company, Inc, 1988.


Content-Based Image Retrieval Using Metadata and.. - Chu, Hsu, Ieong, Taira (1998)   (Correct)

....5 and 6) Temporal Evolutionary Model alphanumerical prediates (Type 1) satisfactory answers Figure 6 11 Knowledge based query processing flow diagram for KEQL queries 6.7. 1 Query Planning Phase A KEQL query is parsed and transformed into a query execution graph, a directed acyclic graph (dag) [4] representing the execution plan for the query. The first step is to generate a sub parse tree for each predicate. Then a query execution graph is formed by linking together the sub parse trees by matching their input and output data variables. There are six types of predicates supported in the ....

C.N. Fischer and R.J. LeBlanc, Jr. Crafting a Compiler. The Benjamin /Cummings Publishing Company, Inc., 1988.


Translation of Conditional Compilation - Harsu (1997)   (1 citation)  (Correct)

....In this section, we first introduce some assumptions which the solution is based on. Then we describe the solution step by step. 3.1 Assumptions The solution is based on top down parsing. We assume a parsing stack, which is used in parsing in the following way (the algorithm is generalized from [5], p. 121) parsingalgorithm is push the start symbol onto an empty stack; while the stack is not empty do let X be the top stack symbol let a be the current input token if X is a nonterminal symbol then pop X from the stack; push the components of X onto the stack in reverse order; ....

....language. This function calls the parsing functions of the nonterminal components, and scans the terminal components. To our nonterminal A, the parsing function (having the same name A) would be as follows: A is B; C; D; end A; More examples of these parsing functions can be seen, for example, in [5], pp. 33 38. Instead of the explicit stack, recursive descent parsers have an implicit run time stack containing the called procedures in the form of activation records. To allow parsing of conditional compilation, the parsing function of the nonterminal A should be modified as follows: A(i: ....

C. N. Fischer and R. J. LeBlanc, Crafting a Compiler with C, The Benjamin /Cummings Publishing Company, 1991.


Efficient Worst Case Timing Analysis of Data Caching - Kim, Min, Ha (1996)   (29 citations)  (Correct)

....Function calls are processed like sequential statements. The WCTAs of functions are calculated in reverse topological order in the call graph 2 so that the WCTAs of callees are available when the caller is processed. 2 A call graph contains the information on how functions call each other [4]. For example, if f calls g, then an arc connects f s vertex to that of g in their call graph. Data caching analysis within the extended timing schema approach: To compute first reference and last reference for data caching analysis purposes, we need to know the reference address of each ....

C. N. Fischer and R. J. LeBlanc. Crafting a Compiler with C. The Benjamin/Cummings Publishing Company, Inc., Redwood City, CA, 1991.


An Accurate Worst Case Timing Analysis Technique for RISC.. - Sung-Soo Lim (1994)   (25 citations)  (Correct)

.... of the loop statement is obviously contained in ( S p i ;p j 2P wcta(wp N ij ) L W (exp) The calculation of wcta(wp ij ) can proceed as follows: First, since wp ij begins with p i s execution, wcta(wp ij ) 4 A call graph contains the information on how functions call each other [6]. For example, if f calls g, then an arc connects f s vertex to g s in their call graph. X X X X X X X X X X X X X X X X X X ALU RD IF MD DIV MEM WB X X X X X X X X X X X X X X 1 2 3 4 6 7 8 9 10 11 12 X X X X 5 X X X X X X X X X X X X X X X X X X X X X X X X X X ALU RD IF MD DIV X MEM WB X ....

C. N. Fischer and Jr. R. J. Leblanc. Crafting a Compiler with C. The Benjamin/Cummings Publishing Company, Inc., Redwood City, CA, 1991.


An Accurate Worst Case Timing Analysis for RISC.. - Lim, Bae, Jang, Rhee.. (1995)   (73 citations)  (Correct)

....like sequential statements. In our approach, functions are processed in a reverse topological order in the call graph 4 since the WCTA of a function should be calculated before the functions that call it are processed. 4 A call graph contains the information on how functions call each other [23]. For example, if f calls g, then an arc connects f s vertex to that of g in their call graph. Finally, the timing formula of a loop statement S: while (exp) S 1 is given by W (S) N M i=1 (W (exp) M W (S 1 ) M W (exp) where N is a loop bound that is provided by some external means ....

C. N. Fischer and R. J. LeBlanc, Crafting a Compiler with C. Redwood City, CA: The Benjamin /Cummings Publishing Company, Inc., 1991.


The Multiscalar Architecture - Franklin (1993)   (34 citations)  (Correct)

....R6, in a processor with 8 general purpose registers. 0 1 0 0 0 1 0 0 R7 R0 Figure 5.4: An Example Create Mask Generation of Create Masks: If adequate compile time support is available, the create mask can be generated by the compiler itself. All optimizing compilers invariably do dataflow analysis [7, 52]; the 97 create mask is similar to the def variables computed by these compilers for each basic block, except that the former represents architectural registers and the latter represent variables of the source program. Forwarding of Create Masks: When a new task is allocated to execution unit ....

C. N. Fischer and R. J. LeBlanc, Jr., Crafting A Compiler. Menlo Park, CA: The Benjamin/Cummings Publishing Company, Inc., 1988.


An Optimizing Compiler for the TMS320C25 DSP Processor - Lin (1995)   (1 citation)  (Correct)

....as increasing application complexity, writing programs in HLLs became popular and hence many HLL compilers have been developed and are used widely today. These HLL compilers are often called optimizing compilers because they use many optimization techniques to generate highperformance machine code [Aho88, Fisc91]. The basic organization of a HLL optimizing compiler is illustrated in Figure 1.1. An optimizing compiler consists of several phases, each of which performs a specific task. These phases are usually implemented and grouped into several passes, in which they share information through internal ....

Charles N. Fischer and Richard J. LeBlanc, Jr. Crafting a Compiler with C, The Benjamin/Cummings Publishing Company, 1991


An Object-Oriented Compiler Construction Toolkit - Justice (1993)   (Correct)

....Variations in implementation are encapsulated in separately compiled modules that are selected and linked into the resulting compiler. 1 Introduction A compiler is a program that translates a source language into an equivalent target language. The process of compilation is well studied [ASU86, FL91, Hol90, Pys88] Standard tools have been in use since the late 1970 s for lexical analysis and syntactic analysis, however no such standard tools exist for the remaining parts of a compiler. Perhaps the reason for this has less to do with our understanding of the problem or even the solution than ....

....versions of PCCTS will reportedly add these features [PDC92] 3 Compiler Design 3. 1 The Classical Approach Modern compilers are modeled as a sequence of phases, each accepting the source program in one representation, transforming it in some manner, and producing a new representation [ASU86, FL91, Hol90, Pys88] Figure 2 shows how the phases are connected as well as the input and output of each. This model lends itself to the classical top down functional design method which is based on stepwise refinement of the abstract functionality of a system. Meyer identifies four major flaws with ....

Charles N. Fischer and Richard J. LeBlanc, Jr. Crafting A Compiler With C. The Benjamin /Cummings Publishing Company, Inc., Redwood City, California, 1991.


Compilation, Synthesis, and Simulation of Hardware Description.. - Cheng (1998)   (Correct)

....concern, the two or more islands can be clustered together to form one island (at the expense of complicating the design) 1.3. 2 Structured Programming Enables Powerful Optimization Another thing that makes software compilers successful is the adoption of powerful optimization techniques [ASU85, FRJL88] such as register allocation, loop optimization (e.g. loop invariant identification) copy propagation, dead code elimination, etc. Most of these techniques will not be applicable if the structure of a program is obscure to a compiler. In that case, the only way a compiler can understand the ....

Charles N. Fischer and Jr. Richard J. LeBlanc. Crafting a Compiler. The Benjamin/Cummings Publishing Company, Menlo Park, California, 1988.


Interprocedural DataflowAnalysis via Graph Reachability - Reps, Sagiv, Horwitz (1994)   (5 citations)  (Correct)

.... , C # ) G # IP [2] PathEdge : 3] SummaryEdge : 4] WorkList : 5] for each (s main , c) C # do [6] Insert ( s main , c) s main , c) into PathEdge [7] Insert ( s main , c) s main , c) into WorkList [8] od [9] ForwardTabulateSLRPs(WorkList) 10] for each n N do [11] X n : d 2 D fg(n) d 1 (D fg(n) L ) such that ( s fg(n) d 1 ) n, d 2 ) PathEdge [12] od end procedure Propagate(EdgeSet, e,WorkList) begin [13] if e EdgeSet then Insert e into EdgeSet; Insert e into WorkList fi end procedure ForwardTabulateSLRPs(WorkList) begin [14] ....

....(possibly new) edge in PathEdge (possibly new) edge in SummaryEdge or edge in SummaryEdge edge corresponding to an # E edge, E 1 Lines [38] 40] Figure5. The above five diagrams showthe situations handled in lines [18] 20] 21] 23] 29] 30] 32] and [38] 40] of Figure 4. wardTabulateSLRPs: [11] X n : d 2 D fg(n) d 1 (D fg(n) L ) such that ( s fg(n) d 1 ) n, d 2 ) PathEdge At first glance, this may not appear to be correct. According to line [11] d 2 is put into X n if there is a same level realizable path (i.e. apath edge) from (s fg(n) d 1 )to(n, d 2 ) ....

[Article contains additional citation context not shown here]

Fischer,C.N. and LeBlanc, R.J., Crafting a Compiler, Benjamin/Cummings Publishing Company, Inc., Menlo Park, CA (1988).


The Expandable Split Window Paradigm for Exploiting.. - Franklin, Sohi (1992)   (60 citations)  (Correct)

....instance of that register 3 . Notice that data from several stages can simultaneously be traveling to subsequent stages in a pipelined fashion. Queues are used to facilitate this forwarding. #################################### 2 All optimizing compilers invariably do dataflow analysis [1, 7]; the create and use masks are similar to the def and use variables computed by these compilers for each basic block, except that the former pair represent architectural registers and the latter pair represent variables of the source program. 3 Since most of the register instances are used up ....

C. N. Fischer and R. J. LeBlanc, Jr., Crafting A Compiler. Menlo Park, CA: The Benjamin/Cummings Publishing Company, Inc., 1988.


Threaded Prefetching: A New Instruction Memory Hierarchy for.. - Lee, al. (1997)   (Correct)

....when the block size is large enough. Finally, the scheme requires only a minimal hardware addition. Notes 1. A block is the minimum unit of information that can be either present or not present in a memory hierarchy [7] 2. A call graph contains the information on how functions call each other [5]. For example, if f calls g, then an arc connects f s vertex to that of g in their call graph. 3. A basic block is a sequence of consecutive instructions in which flow of control enters at the beginning and leaves at the end without halt or possibility of branching except at the end [1] ....

C. N. Fischer and R. J. LeBlanc. Crafting a Compiler with C. The Benjamin/Cummings Publishing Company, Inc., Redwood City, CA, 1991.


Worst Case Timing Analysis of RISC Processors.. - Hur, Bae, Lim.. (1995)   (Correct)

....are direct mapped and have block sizes of 4 bytes. The data cache uses the write through, no write allocate policy and has a one entry deep write buffer. The cache miss service times of both caches are 4 cycles. The R3000 2 A call graph contains the information on how functions call each other [3]. For example, if f calls g, then an arc connects f s vertex to that of g in their call graph. Original Timing Schema Extended Timing Schema S: S 1 ; S 2 T (S) T (S 1 ) T (S 2 ) W (S) W (S 1 ) L W (S 2 ) where T (S) T (S 1 ) and T (S 2 ) are the WCET bounds of S, S 1 , and S 2 , ....

C. N. Fischer and R. J. LeBlanc. Crafting a Compiler with C. The Benjamin/Cummings Publishing Company, Inc., Redwood City, CA, 1991.


Event Abstraction in Modeling Distributed Computations - Basten (1993)   (1 citation)  (Correct)

....5.8. The class of pomset languages generated by SCFPGs coincides with the class of regular pomset languages. 5.2 An introduction to PLR parsing In the area of compiler design, many parsing algorithms have been developed. Well known algorithms are those based on the LL and LR parsing techniques [1, 17]. Theoretically, LR parsers are the most powerful and most general class of deterministic parsing algorithms. In practice, LR parsers have one disadvantage. For large grammars, the amount of storage required for an implementation is very large. A generalization of LR parsing techniques to pomset ....

C.N. Fischer and R.J. LeBlanc, Jr. Crafting a Compiler. The Benjamin/Cummings Publishing Company, Menlo Park, California, USA, 1988.


Designing a Reusable Symbol Table Library - Wu, Lin, Wang (1994)   (Correct)

No context found.

Fischer, C.N., and LeBlanc, R.J. Jr., Crafting A Compiler, Benjamin/Cummings Publishing Company, 1988.


Appendix A TASPEC Grammar - The Grammar Is   (Correct)

No context found.

Charles N. Fischer and Jr. Richard J. Lebanc. Crafting a Compiler. The Benjamin /Cummings Publishing Company, 1988. 161


Value Numbering - Briggs, COOPER, SIMPSON (1997)   (4 citations)  (Correct)

No context found.

Charles N. Fischer and Jr. Richard J. LeBlanc, Crafting a Compiler with C, The Benjamin/Cummings Publishing Company, Inc., Redwood City, CA, 1991.


WebSQL - An SQL-like Query Language for the World Wide Web - Mihaila (1996)   (9 citations)  (Correct)

No context found.

Charles N. Fischer and Richard J. LeBlanc, Jr., Crafting a Compiler with C. The Benhjamin/Cummings Publishing Company, 1991.


Parsing Partially Ordered Multisets - Basten (1997)   (Correct)

No context found.

C.N. Fischer and R.J. LeBlanc, Jr. Crafting a Compiler (The Benjamin/Cummings Publishing Company, Menlo Park, California, 1988).

First 50 documents

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