| Fischer, C., and Richard Leblanc, Crafting a Compiler with C, Benjamin Cummings, Redwood City, California, 1991. |
....themselves doubt there will ever be a third edition. Frustration with the Red Dragon book has led many authors to pen their own versions. However, it is safe to say that all other textbooks consist of that author s favorite subset of the topics in the Red Dragon book, in the same sequence [5,6,7,8,9,10,11,12,13,14,15,16,17, 18,19]. In the next section, we detail our own completely different sequence of topics. Regardless of textbook, the typical compilers instructor mds him herself unable to cover all of the material in one semester, and with two semester compiler course sequences being essentially extinct, the problem ....
Fischer, C., and Richard Leblanc, Crafting a Compiler with C, Benjamin Cummings, Redwood City, California, 1991.
....layers of those instances. When the next coming nonterminal instance in the input text should be a conceptual nonterminal, match is used to find out which of the structural subclasses of this conceptual nonterminal should be instantiated. The parsing method of TaLE is based on LL(1) parsing [1, 31], in which the next nonterminal can be concluded on the basis of one input symbol. The metaclass of a nonterminal has a starter list containing all the possible starter symbols of the nonterminal. A starter list is constructed only if the corresponding actual object is created. The construction ....
....presented so far (Subsection 10.2.4) and finally presenting some further considerations of the idea (Subsections 10.2.5 and 10.2.6) 10.2.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 [31], p. 121) parsing algorithm is push the start symbol onto an empty stack; while the stack is not empty do 120 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 ....
Fischer, C. N., LeBlanc, R. J., Crafting a Compiler with C, Benjamin /Cummings, 1991.
....of code. On the other side, aggressive global instruction scheduling may result in branch reordering and code replication, which itself may introduce irreducible regions. Other code optimization techniques, such as trace scheduling and pro le guided code positioning for optimizing compilers [7, 9, 20], may be combined with code replication [18, 19] or applied during binary translation [3] which can result in irreducible loops. Common algorithms to detect loops only cover natural loops [1] As a result, irreducible loops are generally missed and will be ignored during loop optimizations, ....
C. N. Fischer and R. J. LeBlanc. Crafting a Compiler with C. 1991.
....worse, we have found that compiler design textbooks do not seem to take the possibility of this confusion seriously enough. Almost all books we have checked ( 12, 13, 14, 15] only make emphasis on eliminating ambiguity, left recursion and (not all books) common prefixes. Only Fischer and LeBlanc ([16], p. 126) and Aho, Sethi and Ullman ( 17] p. 191) give an example of a grammar which has no left recursion and no common prefixes but it is not LL(1) but in the case of [17] they give an ambiguous grammar, which can also reinforce another misconception (see section 4.1.5) 4.1.2 On programming ....
C.N. Fischer and R.J. LeBlanc, Jr., Crafting a Compiler with C, Benjamin/Cummings, Menlo Park, California, 1991.
....token, a scanner usually needs to examine an extra symbol from the input. This is called 1 symbol lookahead. In some cases, the scanner needs to look ahead multiple symbols. For instance, to scan 10. 20 in Pascal and Ada, the scanner needs to look ahead two symbols (i.e. the two . after the 10 [2]. A similar example in Fortran is 10.EQ.IX . There are two difficulties when the scanner needs to look ahead symbols. First, the previewed symbols are usually handled by a buffering mechanism. The size of the buffer must be no less than the maximum number of look ahead symbols required by the ....
Fischer, C.N. and LeBlanc, R.J. Jr., Crafting a Compiler with C, Benjamin/Cummings, Reading, MA (1991).
....verbs. Adjectives precede nouns but do not follow them Context free grammars group sequences such as article adjective noun into higher level groups such as noun phrase, sentence, etc. and constrain their order as well. This hierarchical structure is useful in artificial programming languages (Fischer and LeBlanc 1991), but all attempts to apply them to natural language have failed. Natural language grammars tend to be ambiguous, to have more than one possible derivation (Lindsay 1963) Probabilistic grammars (Charniak 1997) which assign a probability to each rule and thus to each parse, alleviate this problem ....
Fischer, Charles N., LeBlanc, Richard J. Jr (1991), Crafting a Compiler with C, Redwood City, Calif: Benjamin/Cummings Publishing Co., Inc.
....deterministic in general. For example, in Figure 1(a) two classes of tokens, s and t, are defined. A (deterministic) Moore automaton [7] corresponding to the two tokens is shown in Figure 1(b) 2 This Moore automaton is constructed with standard techniques discussed in most compiler textbooks [2, 5]. An equivalent (nondeterministic) Mealy automaton is shown in Figure 1(c) Notice the three bold arrows that carry output tokens. ############################# 1 In our view, white spaces and comments also constitute tokens; only these whitespace tokens are discarded rather than transmitted to ....
....algorithm is summarized in Section 6. The last section concludes this paper and discusses related work. 2. Overview of the detection method In order to detect lexical ambiguities, a lexical specification, written in regular expressions, is transformed into a deterministic Moore automaton M [2, 5]. There is a unique initial state and one or more accepting states in the Moore automaton. In order to simplify the following presentation, we will assume that different accepting states accept different classes of tokens. Lexical ambiguities may arise when one accepting state can reach another ....
[Article contains additional citation context not shown here]
C.N. Fischer and R.J. LeBlanc, Jr., Crafting a Compiler with C, Benjamin/Cummings, Reading, MA (1991).
....In the extreme case, a fully associative cache with LRU replacement and 1byte lines is insensitive to the layout. In addition, we expect decreasing the compiler optimization level to decrease the miss variation of the data cache, as a standard optimization is removing redundant loads and stores (Fischer LeBlanc 1991). A redundant load store to address ff duplicates a previous reference to ff, so it is very likely is in the cache. Thus, redundant loads stores are sure cache hits, reducing both the miss rate and the miss variation, but increasing the number of cache accesses. A parameter is any of the factors ....
Fischer, C. N. & LeBlanc, R. J. (1991). Crafting a Compiler with C, Benjamin/Cummings, Reading, MA.
....of the evaluator (an evaluator driver) The first two components are implemented on a sequential machine; the last is implemented in the PVM environment. The interface between the evaluator frontend and the backend is the syntax tree in a text form and some related information. Scangen and llgen [8] are generators for scanners and LL (1) grammars, respectively. The result of evaluation is a fully attributed tree. The rest of this paper is organized as follows. Section 2 discusses the evaluation sequence generation. In Section 3, we present the frontend of the evaluator. The backend of the ....
C.N. Fischer and R.J. LeBlanc, Jr., Crafting a Compiler with C, Benjamin/Cummings, Reading, MA (1991).
....token, a scanner usually needs to examine an extra symbol from the input. This is called 1 symbol lookahead. In some cases, the scanner needs to look ahead multiple symbols. For instance, to scan 10. 20 in Pascal and Ada, the scanner needs to look ahead two symbols (i.e. the two . after the 10 [6]. A similar example in Fortran is 10.EQ.IX . There are two difficulties when the scanner needs to look ahead symbols. First, the previewed symbols are usually handled by a buffering mechanism. The size of the buffer must be no less than the maximum number of look ahead symbols required by the ....
....generators that generate transition tables, rather than code, the buffering and re scanning operations must be explicitly identified and hand coded by the scanner writer. The minimum finite automaton underlying a scanner for a language similar to Ada contains 20 states and 86 non error transitions [6]. It is a timeconsuming task to analyze such an automaton by hand. Though some scanner generators may automatically generate code to solve the look ahead problem, these generators work only in an ad hoc way. According to Paxson, the look ahead problem (called backtracking in flex) is messy and ....
[Article contains additional citation context not shown here]
Fischer, C.N. and LeBlanc, R.J. Jr., Crafting a Compiler with C, Benjamin/Cummings, Reading, MA (1991).
....For consistency, a video taped lecture was used. Following the lecture, a ten minute pre test was given to get a baseline measure of the students comprehension of cse. The final part of the shared component was 25 minutes of reading written material on cse adapted from several compiler texts [1, 14, 18, 21, 20, 24]. After the shared component, the control and experimental groups were split to perform the experiential component. The control group continued to read the written materials and work on the exercises for an additional thirty minutes. The experimental group was taken to a computer lab and performed ....
Charles N. Fischer and Jr. Richard J. LeBlanc. Crafting a Compiler with C. Benjamin/Cummings, Redwood City, California, 1991.
.... c )d . The states at the heads of arrows (transitions) representing the characters b and c are cutoff states, which are denoted by squares in the following figure. a b c d d 7 When the nondeterministic automaton is transformed into an equivalent deterministic one by subset construction [6], all states of the deterministic automaton (which are represented as subsets of states of the nondeterministic automaton) that contain a cutoff state of the nondeterministic automaton are also marked as cutoff states. When the minimization operation is performed on the deterministic automaton ....
....automata, generalized suffix automata can be used to implement lexical analyzers that avoids backtracking. We have implemented the suffix automata technique and the operator in an improved lexical analyzer generator, called scangen2. The implementation is an enhancement of the scangen program [6]. 3.3. Automatically identifying cutoff states The cut operators are essentially used to identify the cutoff states of infinite lookahead automata. The designer of token definitions needs to insert the cut operators in appropriate places. An alternative is for the scanner generators to identify ....
[Article contains additional citation context not shown here]
C.N. Fischer and R.J. LeBlanc, Jr., Crafting a Compiler with C, Benjamin/Cummings, Reading, MA (1991).
No context found.
Fischer, Charles N. and LeBlanc, Richard J., Crafting a Compiler with C, Benjamin/Cummings Publishing, 1991.
No context found.
Ch. L. Fischer and R. J. Jr. Leblanc. Crafting a Compiler with C. Benjamin/Cummings, 1991.
No context found.
Fischer, C. N., LeBlanc, R.J. (1991) Crafting a Compiler with C, Benjamin/Cummings Pub. Co.
No context found.
C.N. Fischer and R.J. LeBlanc, Jr., Crafting a Compiler with C, Benjamin/Cummings, Reading, MA (1991).
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