RE2C { A More Versatile Scanner Generator. Peter Bumbulis Donald D. Cowan. University of Waterloo. April 15, Abstract

Size: px
Start display at page:

Download "RE2C { A More Versatile Scanner Generator. Peter Bumbulis Donald D. Cowan. University of Waterloo. April 15, Abstract"

Transcription

1 RE2C { A More Versatile Scanner Generator Peter Bumbulis Donald D. Cowan Computer Science Department and Computer Systems Group University o Waterloo April 15, 1994 Abstract It is usually claimed that lexical analysis routines are still coded by hand, despite the widespread availability o scanner enerators, or eciency reasons. While eciency is a consideration, there exist reely available scanner enerators such as GLA [7] that can enerate scanners that are aster than most hand-coded ones. However, most enerated scanners are tailored or a particular environment, and retarettin these scanners to other environments, i possible, is usually complex enouh to make a hand-coded scanner more appealin. In this paper we describe RE2C, a scanner enerator that not only enerates scanners which are aster (and usually smaller) than those produced by any other scanner enerator known to the authors, includin GLA, but also adapt easily to any environment. Cateories and Subject Descriptors: D.3.2 [Prorammin Lanuaes]: Lanuae Classications { specialized application lanuaes; D.3.4 [Prorammin Lanuaes]: Processors General Terms: Alorithms, Lanuaes, Perormance Additional Key Words and Phrases: Lexical analysis, scanner enerator 1 Introduction Lexical analysis routines are still oten coded by hand despite the widespread availability o scanner enerators. For example, while most Unix systems have a scanner enerator installed (typically LEX [15] or ex [16]), ew Unix applications use a mechanically enerated scanner. One commonly cited reason or not usin LEX-enerated scanners is perormance: they can be 10 times slower than equivalent hand-coded scanners [13]. As a result, there has been considerable research into improvin the perormance o mechanically enerated scanners [16, 7, 9]. GLA [7], one such scanner enerator, can produce scanners that are aster than most hand-coded scanners. However, the use o hand-coded scanners is still prevalent. One possibility is that this is due to the diculty o adaptin the enerated scanners to specic applications. Most scanner enerators are tailored to a particular environment. In act, the trend in recent years has been to interate scanner enerators with compiler toolkits. For example, GLA is part o the Eli compiler construction system [8], and Rex [9] is part o the GMD Toolbox or Compiler Construction 1. Scanners Permission to copy without ee all or part o this material is ranted provided that the copies are not made or distributed or direct commercial advantae, the ACM copyriht notice and the title o the publication and its date appear, and notice is iven that copyin is by permission o the Association or Computin Machinery. To copy otherwise, or to republish, requires a ee and/or specic permission. Copyriht 1994 by the Association or Computin Machinery, Inc. To appear in LOPLAS 2(1{4). 1 Also known as Cocktail (Compiler-Compiler-Toolbox Karlsruhe). 1

2 enerated by these tools assume the existence o a library o support modules or error handlin, input buerin, symbol table manaement, and similar unctions. While these support modules simpliy the task o implementin a compiler or interpreter, they make adaptation to other purposes more dicult. Adaptation to other environments is also made more dicult because oten assumptions are made about the input and restrictions are placed on tokens in order to achieve better perormance. RE2C oes to the other extreme: it concentrates solely on eneratin code or matchin reular expressions. RE2C is successul at its task: not only does it produce scanners which are aster than those created by other scanner enerators but, surprisinly, they are usually smaller as well. Further, RE2C does not make any assumptions about the input or place any restrictions on tokens. To a lare deree, the perormance and exibility o RE2C-enerated scanners is due to a novel method or determinin when to rell a buer which avoids the complications introduced by the sentinel method [1]. The ollowin sections o this paper describe RE2C scanner specications, discuss how these specications are converted into scanners, and ive perormance results achieved by our implementation (includin a comparison with GLA). 2 Scanner Specications An RE2C source le consists o C[14] or C++[4] 2 code interleaved with comments o the orm containin scanner specications. These specications are replaced with enerated code that is invoked simply by \allin into" the comments as illustrated in Fiure 1 and in Appendix A 3. Fiure 1: A simple scanner. A scanner specication takes the orm o a list o rules, each rule consistin o a reular expression [10] and an action expressed in executable code. Fiure 2 illustrates a trivial RE2C scanner specication that will be used as an example throuhout this paper. Each call to the code enerated rom a specication will Fiure 2: Sample specication. a b matches any character between a and b, inclusively. The last rule, or example, will match any eiht bit character. Rules are listed in order o precedence. rst determine the lonest possible prex o the remainin input that matches one o the reular expressions and will then execute the action in the rst applicable rule. 2 Retarettin RE2C to a dierent lanuae is straihtorward. 3 RE2C-enerated scanners require no additional support code. 2

3 [a-z] [\000-\377]\ [0-9a-z] [a-z]\p [a-z]\r [a-z]\i [a-z]\n [a-z]\t [a-z] p 4 r 4 i 4 n 4 t 5 0 [1-9] [0-9] x 7 8 [0-9] 3 3 [0-9a-] 9 [ a-] 2 Fiure 3: A DFA or the sample specication in Fiure 2. State 0 is the start state. Acceptin states are labeled with the number o the rule that they match. For example, state 10 accepts rule 2. Transitions dierin only by label are represented with the same arc. For example, state 0 has transitions to state 6 on all o the ollowin characters:,,,,. RE2C is dierent rom most other scanner enerators in that the user must provide the input buerin mechanism or the scanner; the enerated code simply assumes that the user has dened three pointers:, and, and a routine n. Beore executin the enerated code, and must be set to point to the rst and one past the last character in the buer, respectively. Ater a token is reconized, and beore any action is executed, is set to point to just past the token. will be called as the buer needs llin; at least n additional input characters should be provided. When is called, will point to the next character to be scanned and, i set, will point to a possible backtrackin point in the buer. must update, and possibly and beore returnin. Typically,,, and n will be dened as macros. 2.1 Thins That RE2C Doesn't Provide RE2C doesn't provide many thins available in more conventional scanner enerators includin deault rules, end-o-input pseudo-tokens, and buer manaement routines. All o these must be supplied by the user. Rather than bein a handicap, this allows RE2C-enerated scanners to be tailored to almost any environment. For example, the scanner dened in Fiure 1 compiles into 32 bytes o i486 code (usin Watcom C 9.5); the same size as an equivalent hand-coded routine. Most other scanner enerators cannot produce scanners that are competitive with hand-coded analyzers in this case. Further, it is not overly dicult to implement a more traditional scanner usin RE2C. For example, Appendix A contains the support code or the C scanner benchmarked in Table 1. Note that this code allows or arbitrarily lon contiuous tokens and provides line and column number inormation. 3

4 3 Generatin Directly Executable Scanners As demonstrated by GLA [7] eneratin directly executable code instead o tables can result in much aster scanners. However, to achieve this speed, GLA-enerated scanners make some assumptions about the input and place certain restrictions on tokens 4. In this section we will show how to enerate directly executable scanners which not only avoid such restrictions, but are also aster and usually smaller. The approach presented here has the added benet that even aster scanners can be easily be created, at the expense o increased code size, by usin a technique akin to loop unrollin. 3.1 Constructin a DFA The rst step in eneratin a directly executable scanner is to construct a DFA that reconizes the reular expressions in the specication. Fiure 3 presents a DFA that reconizes the reular expressions in Fiure 2. One possible alorithm or constructin such a DFA can be ound in [1]. Given such a DFA, the task o 4 These assumptions and restrictions are discussed in more detail in Sections and

5 scannin the input can be expressed as ollows: Startin rom the start state, move rom state to state alon transitions labeled with consecutive characters rom the input. When no urther transitions can be made, backtrack to the last acceptin state, say q. The path to q spells the next token and the rule associated with q determines the code to be executed. As a result, the problem o eneratin scanners essentially reduces to the problem o eneratin an executable representation or a DFA. 3.2 Generatin Code I we assume that the input is entirely contained in a sinle buer then eneratin code or the DFA is relatively straihtorward, as is illustrated by the code templates in Fiure 4. Note that the only dierence Proloue start q Code or acceptin state n n action(n) rule(q) code or states q Code or non-acceptin state q c oto(q; c) q c oto(q; c) Fiure 4: Directly executable scanner. The code enerated or a scanner consists o a proloue ollowed by code or each state. start is the start state. action(n) denotes the code associated with rule n, oto(q; c) denotes the state reached rom state q alon the transition labeled with c and rule(q) denotes the rule associated with state q. is used to save backtrackin inormation. The -labels will be used in section between the templates or acceptin and non-acceptin states is that the acceptin states have additional code to save backtrackin inormation. Fiure 5 shows code that miht be enerated or state 1 in Fiure Buerin Complications arise when the input is not contained in a sinle buer: additional code is needed or llin the buer as necessary. 5

6 Fiure 5: Code or state 1. Fiure 6: Code or state The Sentinel Method Most scanner enerators use the sentinel method [1] to determine when the buer needs llin. In the simplest case, a symbol that does not appear in valid input is chosen as the sentinel character. An extra state is added to the DFA and transitions to this state on the sentinel symbol are added to the oriinal states. When the DFA arrives in this new state it is time to rell the buer. Ater the buer is relled, scannin must be restarted in the previous state. Unortunately, this is not possible with the approach outlined in Fiure 4: the necessary inormation is simply not available. Code could be added to each state to save the necessary inormation but this would result in slower and larer scanners. GLA solves this problem by ensurin that the sentinel only ets inserted between tokens: i this is the case, the scanner can always be restarted rom the start state. To ensure that the sentinel only ets inserted between tokens, GLA allows newline (ASCII LF) characters to appear only at the end o a token and disallows the buerin o partial lines Buerin RE2C-enerated scanners check i the buer needs llin simply by comparin and. A method inspired by the mechanism used to uard aainst stack overow in [17] 6 is used to reduce the amount o checkin. Checks are only inserted in certain key states. These checks simply ensure that there is enouh input in the buer or the scan to proceed until the next key state. For example, in the DFA o Fiure 3 it is sucient to check that there are at least 6 characters in the buer when it starts, and that there is at least one character in the buer when the DFA is in states 6, 8, or 10. No other checks are required. The checks inserted in key states are o the orm 6

7 n n where n is the maximum number o characters that can be consumed beore another key state is reached. For example, Fiure 6 shows the code enerated or state 6 in Fiure 3. A set o key states can be determined by discoverin the stronly-connected components (SCCs) o the DFA. An SCC is a maximal subset o states such that there exists a path rom any state in the subset to any other. The set o key states consists o all o the states in non-trivial SCCs, toether with the start state. Note that or each SCC S, we actually only have to include a subset o states o S such that when the subset is removed, S becomes acyclic. Indeed, [17] describes a simple heuristic or choosin such a subset. However, since in practice most o the (non-trivial) SCCs encountered will consist o a sinle state the current version o RE2C simply includes all states in non-trivial SCCs 7. An alorithm iven in [3] was used to compute the SCCs. 3.4 Optimizations Even ood optimizin C compilers can be coaxed into eneratin much smaller and slihtly aster code i some transormations are rst applied to the enerated code Eliminatin Backtrackin Consider state 1 in the DFA in Fiure 3. Note that since all o the transitions rom state 1 reach only acceptin states, backtrackin inormation does not need to be saved i the code or the case is chaned to o directly to the code associated with state 1. The result o this optimization is shown in Fiure 7. More enerally, this optimization can be applied to all acceptin states which have transitions only to acceptin states Optimizin es Fiure 7: Code or state 1 with backtrackin eliminated. Most C compilers will enerate either a jump table or a set o statements or a statement dependin on the distribution o the labels. In many compilers the decision as to which method to use is biased towards eneratin jump tables since in most cases this results in aster albeit larer code. However, experience with directly executable scanners has shown, that replacin many o these jump tables 5 I the input contains no newlines, a GLA scanner will attempt to buer the entire input stream. 6 The problem o detectin stack overow in LR parsers is probably best let to hardware mechanisms [12]. 7 It should be noted that ndin the minimal set o states to remove rom an SCC in order to render it acyclic is equivalent to the FEEDBACK VERTEX SET problem which is NP-complete [6]. 7

8 with statements results in scanners which are much smaller, and surprisinly, in some cases slihtly aster as well 8. As a result, the capability o replacin a statement with statements was added to RE2C. RE2C bases its decision on whether to enerate a statement or to replace it with s solely on the density 9 o the statement. It is surprisin that such a simple heuristic works well. For more esoteric applications in which the input alphabet is not a simple interval RE2C has the advantae in that there is no provision or don't care entries in a statement: i no matches none o the statements in the must be executed. However, or the examples in Table 1 this is not so: RE2C simply does a better job o eneratin code or statements than the compiler. [18], [11], and [2] also address the problem o eneratin ood code or statements. Replacin es with s When replacin a statement with statements, it is useul to sort the s by label and then roup them accordin to rule into subranes, as illustrated in Fiure 8. RE2C replaces a with either a linear or binary search, dependin on the number o subranes in the Fiure 8: or state 0.. I there are only a ew subranes a linear search is enerated; otherwise, a binary search is used. Fiure 9 and Fiure 10 show linear and binary searches, respectively, that could be used to replace the Fiure 9: Linear lookup code sequence or state 0. 8 See Table 1 or examples. 9 The number o distinct subranes divided by the total number o s. 8

9 Fiure 10: Binary lookup code sequence or state 0. in Fiure 8. Note in particular the comparison or the \ " in Fiure 9. This optimization eliminates a comparison each time it is applied. Also note that no comparisons are required at the top and bottom o the rane. Simpliyin es As a eneral rule, better replacement code can be enerated or a i it contains ewer subranes. One way o reducin the number o subranes in a, at the expense o some speed, is to locate a base which is very similar and then replace the code or all cases which appear identically in the base with a to (the code enerated or) the base. RE2C uses this optimization to ood advantae when eneratin code in the transitions o states used or matchin keywords. For example, note that the es or states 1 throuh 4 dier rom the o state 6 only on \ ", \ ", \ ", and \ ", respectively. Fiure 11 shows the code enerated or these states. Another way Fiure 11: Code or states 1{4 ater all optimizations. o implementin this optimization is to construct a tunnel automaton [9] rom the DFA, and then enerate code rom the tunnel automaton. Common Subexpression Elimination Many compilers will miss the act that in Fiures 9 and 10 should be loaded into a reister. Most can be coaxed to do so by rst assinin to a local variable. 4 Experimental Results Table 1 compares two RE2C-enerated C scanners with the (hand-coded) lcc scanner [5] and comparable GLA- and ex-enerated scanners on a variety o platorms. It reports the times in seconds required by the various scanners to scan about 170,000 lines o C source. The 5,607,820 byte source le used essentially 9

10 time space proram user sys total text data bss total R4000 / cc O ex -Cem ex -C lcc la re2c re2c -s R4000 / cc O -Olimit 5000 ex -Cem ex -C lcc la re2c re2c -s SPARC / cc O ex -Cem ex -C lcc la re2c re2c -s i486 / cc O ex -Cem ex -C lcc la re2c re2c -s / cc1.40 -O ex -Cem ex -C lcc la re2c re2c -s Table 1: Comparison o enerated C scanners. 10

11 consists o 10 copies o the source to James Clark's SGML parser, smls 10. The times reported are averaes or 10 trials; the sizes reported include everythin but C library code 11. ex provides a number o table compression options includin or tables optimized or space, and or tables optimized or speed. By deault, RE2C will use a heuristic to decide i a should be replaced with s: the option orces RE2C to always enerate es. To make comparisons more meaninul, all semantic processin code was removed rom the GLAenerated and lcc scanners, and code to provide line and column number inormation was added to the RE2C specication. The remainin dierences o note between the scanners include: The ex-enerated scanners do not provide line or column number inormation. The GLA-enerated scanner assumes 7-bit input. As a eneral rule, the RE2C-enerated scanners were the astest, ollowed by the GLA-enerated scanner and then the lcc scanner. The ex-enerated scanners were sinicantly slower. Only the space-optimized ex scanner was smaller than the deault RE2C scanner, and only by a narrow marin. There are some architectures, notably the IBM 370, on which table driven scanners will probably produce better results: IBM 370 compilers typically enerate poor code or lare routines. The various scanners and input les used or the tests are available or anonymous tp rom cs.- uwaterloo.ca in /pub/peter/re2c/sampler.tar.z. ex is available or anonymous tp rom tp.uu.net as /packaes/- nu/ex tar.z, GLA is available or anonymous tp rom tp.cs.colorado.edu as part o the Eli packae /pub/cs/distribs/eli/eli3.4.2.tar.z, and the lcc ront end is available or anonymous tp rom princeton.edu as /pub/lcc/lcce-1.9.tar.z. An alpha version o RE2C will soon be made available or anonymous tp rom cs.uwaterloo.ca as /pub/peter/re2c/re2c-0.5.tar.z. 5 Related Work The key to the perormance and exibility o an RE2C-enerated scanner is the approach used to determine when the buer needs llin. Interestinly, the lcc scanner [5] uses a similar approach (with certain concessions to keep the bookkeepin manaeable.) 5.1 Comparison With GLA It is natural to compare RE2C to GLA [7] as it also enerates directly executable scanners. RE2C and GLA have many dierences simply because they are tareted or dierent types o users: GLA is intended or people who simply wish to leverae their eorts with existin tools and libraries; RE2C is intended or people that have more specialized needs and are willin to provide their own support routines. For example, GLA provides a ood buerin mechanism, RE2C users must supply their own. These dierences, however, are not unique to GLA and have been addressed or the most part in previous sections. O more interest is the dierences in the code that RE2C and GLA enerate. Scanners enerated by RE2C and GLA dier primarily in two aspects: how they determine when the buer needs llin, and how they enerate code or es. GLA uses the ASCII NUL character as the sentinel to determine when the buer needs llin. To improve the speed and reduce the size o the enerated scanners GLA buers only complete lines and restricts tokens to those that do not contain newline (ASCII LF) characters 12. I a token with an embedded newline character (such as a comment) is required it must be reconized with an auxiliary scanner written in C. This code has to perorm the buerin-related bookkeepin that is done automatically by GLA-enerated code. 10 Available or anonymous tp rom tp.uu.net as /pub/text-processin/sml/smls-1.1.tar.z. 11 The GLA-enerated scanner sizes also do not include the size o an error reportin module. 12 This is discussed in more detail in Section

12 The mechanism RE2C uses to rell the buer eliminates these restrictions and yet allows RE2C to enerate aster and smaller scanners. RE2C also allows both auxiliary and primary scanners to be specied usin reular expressions. For example, Appendix A contains an auxiliary scanner or comments. Like RE2C, GLA usually replaces es with s. Unlike RE2C, GLA does not use a -based heuristic to decide which es to replace: rather, it always enerates a or the start state and uses s or the rest. GLA replaces es with code sequences o the orm: in S 1 1 in Sn n Bit vectors are used or all membership tests involvin sets with more than one element. As an optimization, i a state has a transition to itsel the test as to whether to remain in the same state or not is perormed rst. For example, Fiure 12 shows the GLA-enerated code or state 8 in Fiure Note the use o Fiure 12: GLA code or state 8 in Fiure element entries or the bit vectors to reduce the scanner size: A GLA-enerated scanner will crash or otherwise behave unpredictably i a non-ascii character appears in the source 14. In some sense the results o Section 4 are a bit misleadin: the GLA specication that was used to obtain the ures in Table 1 is not a typical GLA specication. Usually scanners implemented usin GLA will handle keywords as identiers as GLA has been optimized or this [7]. Table 2 presents a more air comparison: the keyword matchin rules were removed rom both the GLA and RE2C specications. The RE2C-enerated scanners were still aster and smaller except on the MIPS R4000, where the cc-compiled GLA scanner was slihtly aster. Note however, that the RE2C specication can be substantially sped up by usin a technique akin to loop unrollin. Replacin the oriinal keyword matchin rule in the RE2C specication 15 with the ollowin rules 13 Actually, GLA would enerate a statement. Most compilers will enerate the same object code or both. 14 No checks are made to ensure that only 7-bit characters appear in the input. 15 = and =. 12

13 time space proram user sys total text data bss total R4000 / cc O la re2c re2c -s re2c -s y R4000 / cc O -Olimit 5000 la re2c re2c -s SPARC / cc O la re2c re2c -s i486 / cc O la re2c re2c -s / cc1.40 -O la re2c re2c -s Table 2: Scanner perormance with keywords treated as identiers. y specication. uses an \unrolled" 13

14 reduces the number o end-o-buer checks and results in a sinicant speed improvement over the GLAenerated scanner. 6 Summary and Further Work This paper has described RE2C, a tool or creatin lexical analyzers. Unlike other such tools, RE2C concentrates solely on eneratin ecient code or matchin reular expressions. Not only does this sinleness o purpose make RE2C more suitable or a wider variety o applications, it allows it to enerate scanners which approach hand-crated scanners in terms o size and speed. Compared to scanners enerated by ex, and GLA, RE2C-enerated scanners are aster and in many cases smaller as well. While RE2C-enerated scanners perorm well, there is still room or improvement. Near term improvements include usin GLA's bit vectors to simpliy some es and addin a state unrollin operator. In the loner term, inline actions will be added to RE2C. For example, a specication like miht be used to obtain the value o a previously scanned inteer. Typically, these sorts o specications would be used as an action in some other specication. 7 Acknowledments The authors thank the reerees or their many valuable comments and suestions. 14

15 A C Scanner more rules 15

16 Reerences [1] Aho, A. V., Sethi, R., and Ullman, J. D. Compilers: principles, techniques, and tools. Addison- Wesley, Reprinted with corrections. [2] Bernstein, R. L. Producin ood code or the case statement. Sotware{Practice and Experience 15, 10 (October 1985), 1021{1024. [3] DeRemer, F., and Pennello, T. Ecient computation o LALR(1) look-ahead sets. ACM Transactions on Prorammin Lanuaes and Systems 4, 4 (October 1982), 615{649. [4] Ellis, M., and Stroustrup, B. The Annotated C++ Reerence Manual. Addison-Wesley, [5] Fraser, C. W., and Hanson, D. R. A retaretable compiler or ANSI C. SIGPLAN Notices 26, 10 (October 1991), 29{43. [6] Garey, M. R., and Johnson, D. S. Computers and Intractability: A Guide to the Theory o NP- Completeness. W. H. Freeman and Company, [7] Gray, R. W. -GLA - A enerator or lexical analyzers that prorammers can use. USENIX Conerence Proceedins (June 1988), 147{160. [8] Gray, R. W., Heurin, V. P., Levi, S. P., Sloane, A. M., and Waite, W. M. Eli: A complete, exible compiler construction system. Communications o the ACM 35, 2 (February 1992), 121{131. [9] Grosch, J. Ecient eneration o lexical analysers. Sotware{Practice and Experience 19, 11 (1989), 1089{1103. [10] Harrison, M. A. Introduction to Formal Lanuae Theory. Addison-Wesley, [11] Hennessy, J. L., and Mendelsohn, N. Compilation o the Pascal case statement. Sotware{Practice and Experience 12, 9 (September 1982), 879{882. [12] Horspool, R. N., and Whitney, M. Even aster LR parsin. Sotware{Practice and Experience 20, 6 (1990), 515{535. [13] Jacobson, V. Tunin UNIX Lex or it's NOT true what they say about Lex. In USENIX Conerence Proceedins (Washinton, DC, Winter 1987), pp. 163{164. Abstract only. [14] Kernihan, B. W., and Ritchie, D. M. The C Prorammin Lanuae, 2nd Ed. Prentice-Hall, Inc., [15] Lesk, M. E. LEX { a lexical analyzer enerator. Computin Science Technical Report 39, Bell Telephone Laboratories, Murray Hill, NJ, [16] Paxson, V. ex { man paes, In ex tar.z. Available or anonymous tp rom tp.uu.net in /packaes/nu. [17] Pennello, T. J. Very ast LR parsin. In Proceedins o the ACM SIGPLAN'86 Symposium on Compiler Construction (July 1986), ACM. [18] Sale, A. The implementation o case statements in Pascal. Sotware{Practice and Experience 11, 9 (September 1981), 929{

A SUIF Interface Module for Eli. W. M. Waite. University of Colorado

A SUIF Interface Module for Eli. W. M. Waite. University of Colorado A SUIF Interace Module or Eli W. M. Waite Department o Electrical and Computer Enineerin University o Colorado William.Waite@Colorado.edu 1 What is Eli? Eli [2] is a domain-specic prorammin environment

More information

Status. We ll do code generation first... Outline

Status. We ll do code generation first... Outline Status Run-time Environments Lecture 11 We have covered the ront-end phases Lexical analysis Parsin Semantic analysis Next are the back-end phases Optimization Code eneration We ll do code eneration irst...

More information

Integrated QOS management for disk I/O. Dept. of Comp. Sci. Dept. of Elec. Engg. 214 Zachry. College Station, TX

Integrated QOS management for disk I/O. Dept. of Comp. Sci. Dept. of Elec. Engg. 214 Zachry. College Station, TX Interated QOS manaement or disk I/O Ravi Wijayaratne A. L. Narasimha Reddy Dept. o Comp. Sci. Dept. o Elec. En. Texas A & M University 214 Zachry Collee Station, TX 77843-3128 ravi,reddy@ee.tamu.edu Abstract

More information

a<b x = x = c!=d = y x = = x false true

a<b x = x = c!=d = y x = = x false true 1 Introduction 1.1 Predicated execution Predicated execution [HD86, RYYT89, DT93, KSR93] is an architectural model in which each operation is uarded by a boolean operand whose value determines whether

More information

Performance and Overhead Measurements. on the Makbilan. Department of Computer Science. The Hebrew University of Jerusalem

Performance and Overhead Measurements. on the Makbilan. Department of Computer Science. The Hebrew University of Jerusalem Perormance and Overhead Measurements on the Makbilan Yosi Ben-Asher Dror G. Feitelson Dtment o Computer Science The Hebrew University o Jerusalem 91904 Jerusalem, Israel E-mail: yosi,dror@cs.huji.ac.il

More information

IBM Thomas J. Watson Research Center. Yorktown Heights, NY, U.S.A. The major advantage of BDDs is their eciency for a

IBM Thomas J. Watson Research Center. Yorktown Heights, NY, U.S.A. The major advantage of BDDs is their eciency for a Equivalence Checkin Usin Cuts and Heaps Andreas Kuehlmann Florian Krohm IBM Thomas J. Watson Research Center Yorktown Heihts, NY, U.S.A. Abstract This paper presents a verication technique which is specically

More information

Imitation: An Alternative to Generalization in Programming by Demonstration Systems

Imitation: An Alternative to Generalization in Programming by Demonstration Systems Imitation: An Alternative to Generalization in Prorammin by Demonstration Systems Technical Report UW-CSE-98-08-06 Amir Michail University of Washinton amir@cs.washinton.edu http://www.cs.washinton.edu/homes/amir/opsis.html

More information

Ecient Detection of Data Races in SR Programs. Darren John Esau. presented to the University of Waterloo. in fullment of the

Ecient Detection of Data Races in SR Programs. Darren John Esau. presented to the University of Waterloo. in fullment of the Ecient Detection o Data Races in SR Prorams by Darren John Esau A thesis presented to the University o Waterloo in ullment o the thesis requirement or the deree o Master o Mathematics in Computer Science

More information

FPGA Technology Mapping: A Study of Optimality

FPGA Technology Mapping: A Study of Optimality FPGA Technoloy Mappin: A Study o Optimality Andrew Lin Department o Electrical and Computer Enineerin University o Toronto Toronto, Canada alin@eec.toronto.edu Deshanand P. Sinh Altera Corporation Toronto

More information

OCC and Its Variants. Jan Lindström. Helsinki 7. November Seminar on real-time systems UNIVERSITY OF HELSINKI. Department of Computer Science

OCC and Its Variants. Jan Lindström. Helsinki 7. November Seminar on real-time systems UNIVERSITY OF HELSINKI. Department of Computer Science OCC and Its Variants Jan Lindström Helsinki 7. November 1997 Seminar on real-time systems UNIVERSITY OF HELSINKI Department o Computer Science Contents 1 Introduction 1 2 Optimistic Concurrency Control

More information

MetaTeD A Meta Language for Modeling. Telecommunication Networks. Kalyan S. Perumalla and Richard M. Fujimoto

MetaTeD A Meta Language for Modeling. Telecommunication Networks. Kalyan S. Perumalla and Richard M. Fujimoto MetaTeD A Meta Lanuae or Modelin Telecommunication Networks Kalyan S. Perumalla and Richard M. Fujimoto (kalyan@cc.atech.edu and ujimoto@cc.atech.edu) Collee o Computin Georia Institute o Technoloy Atlanta,

More information

Backwards-compatible bounds checking for arrays and pointers in C. programs. Richard W M Jones and Paul H J Kelly. Department of Computing

Backwards-compatible bounds checking for arrays and pointers in C. programs. Richard W M Jones and Paul H J Kelly. Department of Computing Backwards-compatible bounds checkin or arrays and pointers in C prorams Richard W M Jones and Paul H J Kelly Department o Computin Imperial Collee o Science, Technoloy and Medicine 180 Queen's Gate, London

More information

1.1 The Problem with Paed Virtual Memory The performance of out-of-core applications that rely simply on paed virtual memory to perform their I/O is t

1.1 The Problem with Paed Virtual Memory The performance of out-of-core applications that rely simply on paed virtual memory to perform their I/O is t Automatic Compiler-Inserted I/O Prefetchin for Out-of-Core Applications Todd C. Mowry, Anela K. Demke and Orran Krieer Department of Electrical and Computer Enineerin Department of Computer Science University

More information

Coarse Grained Parallel Maximum Matching In Convex Bipartite Graphs

Coarse Grained Parallel Maximum Matching In Convex Bipartite Graphs Coarse Grained Parallel Maximum Matchin In Convex Bipartite Graphs P. Bose, A. Chan, F. Dehne, and M. Latzel School o Computer Science Carleton University Ottawa, Canada K1S 5B6 jit,achan,dehne,mlatzel@scs.carleton.ca

More information

Ecient and Precise Modeling of Exceptions for the Analysis of Java Programs. IBM Research. Thomas J. Watson Research Center

Ecient and Precise Modeling of Exceptions for the Analysis of Java Programs. IBM Research. Thomas J. Watson Research Center Ecient and Precise Modelin of Exceptions for the Analysis of Java Prorams Jon-Deok Choi David Grove Michael Hind Vivek Sarkar IBM Research Thomas J. Watson Research Center P.O. Box 704, Yorktown Heihts,

More information

Thread-based vs Event-based Implementation of a Group Communication Service

Thread-based vs Event-based Implementation of a Group Communication Service Thread-based vs Event-based Implementation o a Group Communication Service Shivakant Mishra and Ronuan Yan Department o Computer Science University o Wyomin, P.O. Box 3682 Laramie, WY 8271-3682, USA. Email:

More information

A Nearest Neighbor Method for Efficient ICP

A Nearest Neighbor Method for Efficient ICP A Nearest Neihbor Method or Eicient ICP Michael Greenspan Guy Godin Visual Inormation Technoloy Group Institute or Inormation Technoloy, National Research Council Canada Bld. M50, 1500 Montreal Rd., Ottawa,

More information

Language and Compiler Support for Dynamic Code Generation by Massimiliano A. Poletto S.B., Massachusetts Institute of Technology (1995) M.Eng., Massac

Language and Compiler Support for Dynamic Code Generation by Massimiliano A. Poletto S.B., Massachusetts Institute of Technology (1995) M.Eng., Massac Lanuae and Compiler Support for Dynamic Code Generation by Massimiliano A. Poletto S.B., Massachusetts Institute of Technoloy (1995) M.En., Massachusetts Institute of Technoloy (1995) Submitted to the

More information

Module. Sanko Lan Avi Ziv Abbas El Gamal. and its accompanying FPGA CAD tools, we are focusing on

Module. Sanko Lan Avi Ziv Abbas El Gamal. and its accompanying FPGA CAD tools, we are focusing on Placement and Routin For A Field Prorammable Multi-Chip Module Sanko Lan Avi Ziv Abbas El Gamal Information Systems Laboratory, Stanford University, Stanford, CA 94305 Abstract Placemen t and routin heuristics

More information

in two important ways. First, because each processor processes lare disk-resident datasets, the volume of the communication durin the lobal reduction

in two important ways. First, because each processor processes lare disk-resident datasets, the volume of the communication durin the lobal reduction Compiler and Runtime Analysis for Ecient Communication in Data Intensive Applications Renato Ferreira Gaan Arawal y Joel Saltz Department of Computer Science University of Maryland, Collee Park MD 20742

More information

Using LDAP Directory Caches. Olga Kapitskaia. AT&T Labs{Research. on sample queries from a directory enabled application

Using LDAP Directory Caches. Olga Kapitskaia. AT&T Labs{Research. on sample queries from a directory enabled application Usin LDAP Directory Caches Sophie Cluet INRIA Rocquencourt Sophie.Cluet@inria.fr Ola Kapitskaia AT&T Labs{Research ola@research.att.com Divesh Srivastava AT&T Labs{Research divesh@research.att.com 1 Introduction

More information

From Java to C A Supplement to Computer Algorithms, Third Edition. Sara Baase Allen Van Gelder

From Java to C A Supplement to Computer Algorithms, Third Edition. Sara Baase Allen Van Gelder From Java to C A Supplement to Computer Alorithms, Third Edition Sara Baase Allen Van Gelder October 30, 2004 ii clcopyriht 2000, 2001 Sara Baase and Allen Van Gelder. All rihts reserved. This document

More information

The performance of single-keyword and multiple-keyword. pattern matching algorithms. Bruce W. Watson. Eindhoven University of Technology

The performance of single-keyword and multiple-keyword. pattern matching algorithms. Bruce W. Watson. Eindhoven University of Technology The performance of sinle-keyword and multiple-keyword pattern matchin alorithms Bruce W. Watson Faculty of Mathematics and Computin Science Eindhoven University of Technoloy P.O. Box 513, 5600 MB Eindhoven,

More information

pp , John Wiley and Sons, 1991 No. 3, 1994, pp , Victoria, 1994 Vol. 37, No. 5, pp Baltimore, 1993 pp.

pp , John Wiley and Sons, 1991 No. 3, 1994, pp , Victoria, 1994 Vol. 37, No. 5, pp Baltimore, 1993 pp. termediate representation used is much simpler than a ull UI specication lanuae. We have also proposed to populate automatically the taret GUI builder space thus allowin desiners/developers to ully exploit

More information

Language (TeD) Brian J. Premore, David M. Nicol, Xiaowen Liu. Abstract

Language (TeD) Brian J. Premore, David M. Nicol, Xiaowen Liu. Abstract Dartmouth Collee Computer Science Technical Report PCS-TR96-299 A Critique o the Telecommunication Description Lanuae (TeD) Brian J. Premore, David M. Nicol, Xiaowen Liu Department o Computer Science Dartmouth

More information

to chanes in the user interface desin. By embeddin the object-oriented, interpreted lanuae into the application, it can also be used as a tool for rer

to chanes in the user interface desin. By embeddin the object-oriented, interpreted lanuae into the application, it can also be used as a tool for rer Usin C++ Class Libraries from an Interpreted Lanuae Wolfan Heidrich, Philipp Slusallek, Hans-Peter Seidel Computer Graphics Department, Universitat Erlanen-Nurnber Am Weichselarten 9, 91058 Erlanen, Germany.

More information

Salto: System for Assembly-Language. Transformation and Optimization. Erven Rohou, Francois Bodin, Andre Seznec.

Salto: System for Assembly-Language. Transformation and Optimization. Erven Rohou, Francois Bodin, Andre Seznec. Salto: System for Assembly-Lanuae Transformation and Optimization Erven Rohou, Francois Bodin, Andre Seznec ferohou,bodin,seznec@irisa.fr Abstract On critical applications the performance tunin requires

More information

UNIT -2 LEXICAL ANALYSIS

UNIT -2 LEXICAL ANALYSIS OVER VIEW OF LEXICAL ANALYSIS UNIT -2 LEXICAL ANALYSIS o To identify the tokens we need some method of describing the possible tokens that can appear in the input stream. For this purpose we introduce

More information

What is a language? Eclipse IMP: ... is Generic Language. Technology (GLT)? What is a Program Generator?

What is a language? Eclipse IMP:  ... is Generic Language. Technology (GLT)? What is a Program Generator? Examples of Generic IPEs What... Eclipse IMP: http://eclipse- -imp.sourcefore.net/imp.html... is a lanuae? Af framework kfor Generi ic Interated ddevelopment Environments (IDE) The oal of the Eclipse IMP

More information

Declarative Specialization of Object-Oriented Programs

Declarative Specialization of Object-Oriented Programs INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE Declarative Specialization of Object-Oriented Prorams Euen N. Volanschi, Charles Consel, Gilles Muller, Crispin Cowan N 3118 Février 1997

More information

f y f x f z exu f xu syu s y s x s zl ezl f zl s zu ezu f zu sign logic significand multiplier exponent adder inc multiplexor multiplexor ty

f y f x f z exu f xu syu s y s x s zl ezl f zl s zu ezu f zu sign logic significand multiplier exponent adder inc multiplexor multiplexor ty A Combined Interval and Floatin Point Multiplier James E. Stine and Michael J. Schulte Computer Architecture and Arithmetic Laboratory Electrical Enineerin and Computer Science Department Lehih University

More information

Theodore Johnson. Dept. of Computer and Information Science, University of Florida. Abstract

Theodore Johnson. Dept. of Computer and Information Science, University of Florida. Abstract A Concurrent Fast-Fits Memory Manaer University o Florida, Dept. o CIS Electronic TR91-009 Theodore Johnson Dept. o Computer and Inormation Science, University o Florida ted@cis.u.edu September 12, 1991

More information

Fast Focus Mechanism Using a Pair of Convergent and Divergent Lenses Differentially for Three-dimensional Imaging

Fast Focus Mechanism Using a Pair of Convergent and Divergent Lenses Differentially for Three-dimensional Imaging 5-1 MVA2011 IAPR Conerence on Machine Vision Applications, June 13-15, 2011, Nara, JAPAN Fast Focus Mechanism Usin a Pair o Converent and Diverent Lenses Dierentially or Three-dimensional Imain Akira Ishii

More information

Motivation Dynamic bindin facilitates more exible and extensible software architectures, e.., { Not all desin decisions need to be known durin the ini

Motivation Dynamic bindin facilitates more exible and extensible software architectures, e.., { Not all desin decisions need to be known durin the ini The C++ Prorammin Lanuae Dynamic Bindin Outline Motivation Dynamic vs. Static Bindin Shape Example Callin Mechanisms Downcastin Run-Time Type Identication Summary Motivation When desinin a system it is

More information

Efficient and Provably Secure Ciphers for Storage Device Block Level Encryption

Efficient and Provably Secure Ciphers for Storage Device Block Level Encryption Efficient and Provably Secure Ciphers for Storae Device Block evel Encryption Yulian Zhen SIS Department, UNC Charlotte yzhen@uncc.edu Yone Wan SIS Department, UNC Charlotte yonwan@uncc.edu ABSTACT Block

More information

Improving Hash Join Performance Through Prefetching

Improving Hash Join Performance Through Prefetching Improvin Hash Join Performance Throuh Prefetchin Shimin Chen, Anastassia Ailamaki, Phillip B. Gibbons, Todd C. Mowry Email: chensm@cs.cmu.edu, natassa@cs.cmu.edu, phillip.b.ibbons@intel.com, tcm@cs.cmu.edu

More information

Learning Geometric Concepts with an Evolutionary Algorithm. Andreas Birk. Universitat des Saarlandes, c/o Lehrstuhl Prof. W.J.

Learning Geometric Concepts with an Evolutionary Algorithm. Andreas Birk. Universitat des Saarlandes, c/o Lehrstuhl Prof. W.J. Learnin Geometric Concepts with an Evolutionary Alorithm Andreas Birk Universitat des Saarlandes, c/o Lehrstuhl Prof. W.J. Paul Postfach 151150, 66041 Saarbrucken, Germany cyrano@cs.uni-sb.de http://www-wjp.cs.uni-sb.de/cyrano/

More information

Linear Network Coding

Linear Network Coding IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 49, NO. 2, FEBRUARY 2003 371 Linear Network Codin Shuo-Yen Robert Li, Senior Member, IEEE, Raymond W. Yeun, Fellow, IEEE, Nin Cai Abstract Consider a communication

More information

optimization agents user interface agents database agents program interface agents

optimization agents user interface agents database agents program interface agents A MULTIAGENT SIMULATION OPTIMIZATION SYSTEM Sven Hader Department of Computer Science Chemnitz University of Technoloy D-09107 Chemnitz, Germany E-Mail: sha@informatik.tu-chemnitz.de KEYWORDS simulation

More information

IEEE TRANSACTIONS ON COMPUTERS, VOL. 48, NO. 2, FEBRUARY Automatic Compiler-Inserted Prefetching for. Chi-Keung Luk and Todd C.

IEEE TRANSACTIONS ON COMPUTERS, VOL. 48, NO. 2, FEBRUARY Automatic Compiler-Inserted Prefetching for. Chi-Keung Luk and Todd C. IEEE TRANSACTIONS ON COMPUTERS, VOL. 48, NO. 2, FEBRUARY 1999 1 Automatic Compiler-Inserted Preetchin or Pointer-Based Applications Chi-Keun Luk and Todd C. Mowry Abstract As the disparity between processor

More information

2 The Vector class takes two template parameters (line 1): T, a type parameter, species the element type or the vector; N, a nontype parameter, is the

2 The Vector class takes two template parameters (line 1): T, a type parameter, species the element type or the vector; N, a nontype parameter, is the C++ Templates as Partial Evaluation Todd L. Veldhuizen Abstract This paper explores the relationship between C++ templates and partial evaluation. Templates were desined to support eneric prorammin, but

More information

LEGEND. Cattail Sawgrass-Cattail Mixture Sawgrass-Slough. Everglades. National. Park. Area of Enlargement. Lake Okeechobee

LEGEND. Cattail Sawgrass-Cattail Mixture Sawgrass-Slough. Everglades. National. Park. Area of Enlargement. Lake Okeechobee An Ecient Parallel Implementation of the Everlades Landscape Fire Model Usin Checkpointin Fusen He and Jie Wu Department of Computer Science and Enineerin Florida Atlantic University Boca Raton, FL 33431

More information

Client Host. Server Host. Registry. Client Object. Server. Remote Object. Stub. Skeleton

Client Host. Server Host. Registry. Client Object. Server. Remote Object. Stub. Skeleton Compiler support or an RMI implementation usin NexusJava Fabian Bre Dennis Gannon December 16, 1997 1 Introduction Java [7] is a portable, object oriented prorammin lanuae. Its portability is obtained

More information

Department of Computer Science, University of Utah. 1 Introduction

Department of Computer Science, University of Utah. 1 Introduction International Conference on Computer Systems and Education, IISc, Banalore, 1994 Type-safe Composition of Object Modules Guruduth Banavar, Gary Lindstrom, Doulas Orr Department of Computer Science, University

More information

main Entry main main pow Entry pow pow

main Entry main main pow Entry pow pow Interprocedural Path Prolin David Melski and Thomas Reps Computer Sciences Department, University of Wisconsin, 20 West Dayton Street, Madison, WI, 53706, USA, fmelski, reps@cs.wisc.edu Abstract. In path

More information

#prama omp or or( int i=0; i<n; i++ ) process( data[i] ); nodeptr list, p;... Fiure 1: The OpenMP or Prama or( p=list; p!=null; p=p->next ) process(p-

#prama omp or or( int i=0; i<n; i++ ) process( data[i] ); nodeptr list, p;... Fiure 1: The OpenMP or Prama or( p=list; p!=null; p=p->next ) process(p- Flexible Control Structures or Parallelism in OpenMP Sanjiv Shah, Grant Haab, Paul Petersen, & Joe Throop Kuck & Associates, Incorporated 1906 Fox Drive Champain, IL 61820 http://www.kai.com sanjiv,rant,petersen,jthroop@kai.com

More information

IN SUPERSCALAR PROCESSORS DAVID CHU LIN. B.S., University of Illinois, 1990 THESIS. Submitted in partial fulllment of the requirements

IN SUPERSCALAR PROCESSORS DAVID CHU LIN. B.S., University of Illinois, 1990 THESIS. Submitted in partial fulllment of the requirements COMPILER SUPPORT FOR PREDICTED EXECUTION IN SUPERSCLR PROCESSORS BY DVID CHU LIN B.S., University of Illinois, 1990 THESIS Submitted in partial fulllment of the requirements for the deree of Master of

More information

Reducing Network Cost of Many-to-Many Communication in Unidirectional WDM Rings with Network Coding

Reducing Network Cost of Many-to-Many Communication in Unidirectional WDM Rings with Network Coding 1 Reducin Network Cost of Many-to-Many Communication in Unidirectional WDM Rins with Network Codin Lon Lon and Ahmed E. Kamal, Senior Member, IEEE Abstract In this paper we address the problem of traffic

More information

Using LDAP Directory Caches. Olga Kapitskaia. AT&T Labs{Research. 1 Introduction

Using LDAP Directory Caches. Olga Kapitskaia. AT&T Labs{Research. 1 Introduction Usin LDAP Directory Caches Sophie Cluet INRIA Rocquencourt Sophie.Cluet@inria.fr Ola Kapitskaia AT&T Labs{Research ola@research.att.com Divesh Srivastava AT&T Labs{Research divesh@research.att.com Abstract

More information

Efficient Computation of LALR(1) Look-Ahead Sets

Efficient Computation of LALR(1) Look-Ahead Sets RETROSPECTIVE: Efficient Computation of LALR(1) Look-Ahead Sets Thomas J. Pennello ARC International Santa Cruz, CA 95060 tom.pennello@arc.com Frank DeRemer 8 South Circle Santa Cruz, CA 95060 fderemer@alum.mit.edu

More information

2 CHAPTR 1. BOTTOM UP PARSING 1. S ::= 4. T ::= T* F 2. ::= +T 5. j F 3. j T 6. F ::= 7. j Fiure 1.1: Our Sample Grammar for Bottom Up Parsin Our beli

2 CHAPTR 1. BOTTOM UP PARSING 1. S ::= 4. T ::= T* F 2. ::= +T 5. j F 3. j T 6. F ::= 7. j Fiure 1.1: Our Sample Grammar for Bottom Up Parsin Our beli Chapter 1 Bottom Up Parsin The key diæculty with top-down parsin is the requirement that the rammar satisfy the LL1 property. You will recall that this entailed knowin, when you are facin the token that

More information

Improving Computer Security using Extended Static Checking

Improving Computer Security using Extended Static Checking Improvin Computer Security usin Extended Static Checkin Brian V. Chess Department o Computer Enineerin University o Caliornia, Santa Cruz Abstract We describe a method or indin security laws in source

More information

The Language for Specifying Lexical Analyzer

The Language for Specifying Lexical Analyzer The Language for Specifying Lexical Analyzer We shall now study how to build a lexical analyzer from a specification of tokens in the form of a list of regular expressions The discussion centers around

More information

Web e-transactions. Svend Frolund, Fernando Pedone, Jim Pruyne Software Technology Laboratory HP Laboratories Palo Alto HPL July 12 th, 2001*

Web e-transactions. Svend Frolund, Fernando Pedone, Jim Pruyne Software Technology Laboratory HP Laboratories Palo Alto HPL July 12 th, 2001* Web e-transactions Svend Frolund, Fernando Pedone, Jim Pruyne Software Technoloy Laboratory HP Laboratories Palo Alto HPL-2001-177 July 12 th, 2001* E-mail: {frolund, pedone, pruyne} @ hpl.hp.com reliability,

More information

Theory (CSc 473): Automata, Grammars, and Lanuaes. Let D = fwjw contains an equal number of occurrences of the substrins 0 and 0 Thus 0 2 D because 0

Theory (CSc 473): Automata, Grammars, and Lanuaes. Let D = fwjw contains an equal number of occurrences of the substrins 0 and 0 Thus 0 2 D because 0 Masters Examination Department of Computer Science October 3, 998 Instructions This examination consists of nine problems. The questions are in three areas:. Theory and Alorithms: CSc 473, 545, and 573;

More information

LR Parsing of CFG's with Restrictions

LR Parsing of CFG's with Restrictions LR Parsing of CFG's with Restrictions B. J. McKenzie University of Canterbury, Christchurch, New Zealand Postal Address: Dr. B.J.McKenzie, Phone: +64 3 642-349 Department of Computer Science, Fax: +64

More information

Register Allocation over the Program Dependence Graph. University of Delaware. Newark, DE, (302)

Register Allocation over the Program Dependence Graph. University of Delaware. Newark, DE, (302) Reister Allocation over the Proram Dependence Graph Cindy Norris Lori. L. Pollock norris@cis.udel.edu pollock@cis.udel.edu Department of Computer and Information Sciences University of Delaware Newark,

More information

JHDL - An HDL for Reconfigurable Systems Λ

JHDL - An HDL for Reconfigurable Systems Λ - An HDL for Reconfiurable Systems Λ Peter Bellows and Brad Hutchins y Department of Electrical and Computer Enineerin Briham Youn University, Provo, UT 84602 bellowsp@ee.byu.edu, hutch@ee.byu.edu Abstract

More information

LALR(1) Parsing Tables. Roberto da Silva Bigonha. and. Mariza Andrade da Silva Bigonha

LALR(1) Parsing Tables. Roberto da Silva Bigonha. and. Mariza Andrade da Silva Bigonha A Method for Ecient Compactation of LALR(1) Parsing Tables Roberto da Silva Bigonha (bigonha@dcc.ufmg.br) Departament of Computer Science, Federal University of Minas Gerais Caixa Postal, 702 30.161 -

More information

Affinity Hybrid Tree: An Indexing Technique for Content-Based Image Retrieval in Multimedia Databases

Affinity Hybrid Tree: An Indexing Technique for Content-Based Image Retrieval in Multimedia Databases Affinity Hybrid Tree: An Indexin Technique for Content-Based Imae Retrieval in Multimedia Databases Kasturi Chatterjee and Shu-Chin Chen Florida International University Distributed Multimedia Information

More information

Generators for High-Speed Front-Ends. J. Grosch DR. JOSEF GROSCH COCOLAB - DATENVERARBEITUNG GERMANY

Generators for High-Speed Front-Ends. J. Grosch DR. JOSEF GROSCH COCOLAB - DATENVERARBEITUNG GERMANY Generators for High-Speed Front-Ends J. Grosch DR. JOSEF GROSCH COCOLAB - DATENVERARBEITUNG GERMANY Cocktail Toolbox for Compiler Construction Generators for High-Speed Front-Ends Josef Grosch Sept. 28,

More information

arxiv:cs/ v2 [cs.pl] 2 Nov 1998

arxiv:cs/ v2 [cs.pl] 2 Nov 1998 C++ Templates as Partial Evaluation Todd L. Veldhuizen arxiv:cs/9810010v2 [cs.pl] 2 Nov 1998 Abstract This paper explores the relationship between C++ templates and partial evaluation. Templates were desined

More information

Chapter 4. Coding systems. 4.1 Binary codes Gray (reflected binary) code

Chapter 4. Coding systems. 4.1 Binary codes Gray (reflected binary) code Chapter 4 Codin systems Codin systems define how information is mapped to numbers. Different codin systems try to store/transmit information more efficiently [Sec. 4.], or protect it from damae while it

More information

Abstraction Library. Abstraction-Based Specializer

Abstraction Library. Abstraction-Based Specializer Bandera : Extractin Finite-state Models from Java Source Code James C. Corbett University of Hawai`i Department of Information and Computer Science Honolulu, HI 96822 +1 808 956 6107 corbett@hawaii.edu

More information

Framework. Fatma Ozcan Sena Nural Pinar Koksal Mehmet Altinel Asuman Dogac. Software Research and Development Center of TUBITAK

Framework. Fatma Ozcan Sena Nural Pinar Koksal Mehmet Altinel Asuman Dogac. Software Research and Development Center of TUBITAK Reion Based Query Optimizer Throuh Cascades Query Optimizer Framework Fatma Ozcan Sena Nural Pinar Koksal Mehmet ltinel suman Doac Software Research and Development Center of TUBITK Dept. of Computer Enineerin

More information

int FindToken(int *data, int count, int token) f int i = 0, *p = data while ((i < count) && (*p!= token)) f p++ i++ return (*p == token) typedef f <ty

int FindToken(int *data, int count, int token) f int i = 0, *p = data while ((i < count) && (*p!= token)) f p++ i++ return (*p == token) typedef f <ty Ecient Detection of All Pointer and Array Access Errors Todd M. Austin Scott E. Breach Gurindar S. Sohi Computer Sciences Department University of Wisconsin-Madison 1210 W. Dayton Street Madison, WI 53706

More information

Stop & Copy. Gen1 Gen2 Gen3. top

Stop & Copy. Gen1 Gen2 Gen3. top A Customisable Memory Manaement Framework for C++ Giuseppe Attardi, Tito Flaella and Pietro Ilio Dipartimento di Informatica, Universita di Pisa Corso Italia 40, I-56125 Pisa, Italy email: attardi@di.unipi.it,

More information

SKIPJACK and Key Exchange Algorithm (KEA) By Carlton J. O Riley

SKIPJACK and Key Exchange Algorithm (KEA) By Carlton J. O Riley SKIPJACK and Key Exchane Alorithm (KEA) By Carlton J. O Riley.0 Introduction This report covers my implementation of the Sipjac alorithm and Key Exchane Alorithms in C usin some assembly code routines,

More information

Optimal Scheduling of Dynamic Progressive Processing

Optimal Scheduling of Dynamic Progressive Processing Optimal Schedulin of Dynamic roressive rocessin Abdel-Illah ouaddib and Shlomo Zilberstein Abstract. roressive processin allows a system to satisfy a set of requests under time pressure by limitin the

More information

Efficient Generation of Table-Driven Scanners. J. Grosch DR. JOSEF GROSCH COCOLAB - DATENVERARBEITUNG GERMANY

Efficient Generation of Table-Driven Scanners. J. Grosch DR. JOSEF GROSCH COCOLAB - DATENVERARBEITUNG GERMANY Efficient Generation of Table-Driven Scanners J. Grosch DR. JOSEF GROSCH COCOLAB - DATENVERARBEITUNG GERMANY Cocktail Toolbox for Compiler Construction Efficient Generation of Table-Driven Scanners Josef

More information

Cached. Cached. Cached. Active. Active. Active. Active. Cached. Cached. Cached

Cached. Cached. Cached. Active. Active. Active. Active. Cached. Cached. Cached Manain Pipeline-Reconurable FPGAs Srihari Cadambi, Jerey Weener, Seth Copen Goldstein, Herman Schmit, and Donald E. Thomas Carneie Mellon University Pittsburh, PA 15213-3890 fcadambi,weener,seth,herman,thomas@ece.cmu.edu

More information

A Rigorous Correctness Proof of a Tomasulo Scheduler Supporting Precise Interrupts

A Rigorous Correctness Proof of a Tomasulo Scheduler Supporting Precise Interrupts A Riorous Correctness Proo o a Tomasulo Scheduler Supportin Precise Interrupts Daniel Kroenin Λ, Silvia M. Mueller y, and Wolan J. Paul Dept. 14: Computer Science, University o Saarland, Post Box 151150,

More information

Centrum voor Wiskunde en Informatica REPORTRAPPORT. Manifold Version 1.0 Programming: Programs and Problems

Centrum voor Wiskunde en Informatica REPORTRAPPORT. Manifold Version 1.0 Programming: Programs and Problems Centrum voor Wiskunde en Inormatica REPORTRAPPORT Maniold Version 1.0 Prorammin: Prorams and Problems C.L. Blom Computer ScienceDepartment o Interactive Systems CS-R9334 1993 Centrum voor Wiskunde en

More information

Image Fusion for Enhanced Vision System using Laplacian Pyramid

Image Fusion for Enhanced Vision System using Laplacian Pyramid Imae Fusion or Enhanced Vision System usin aplacian Pyramid Abhilash G, T.V. Rama Murthy Department o ECE REVA Institute o Technoloy and Manaement Banalore-64, India V. P. S Naidu MSDF ab, FMCD, CSIR-National

More information

In Proceedings of ICPP 90, The 1990 International Conference on Parallel Processing, Chicago,Illinois, August 1990.

In Proceedings of ICPP 90, The 1990 International Conference on Parallel Processing, Chicago,Illinois, August 1990. In Proceedins of IPP 9, The 99 International onference on Parallel Processin, hicao,illinois, uust 99. SETH VLSI HIP FOR THE REL-TIME INFORMTION DISPERSL ND RETRIEVL FOR SEURITY ND FULT-TOLERNE zer estavros

More information

Fast Module Mapping and Placement for Datapaths in FPGAs

Fast Module Mapping and Placement for Datapaths in FPGAs Fast Module Mappin and Placement for Datapaths in FPGAs Timothy J. Callahan, Philip Chon, André DeHon, and John Wawrzynek University of California at Berkeley Abstract By tailorin a compiler tree-parsin

More information

Reducing network cost of many-to-many communication in unidirectional WDM rings with network coding

Reducing network cost of many-to-many communication in unidirectional WDM rings with network coding Reducin network cost of many-to-many communication in unidirectional WDM rins with network codin Lon Lon and Ahmed E. Kamal Department of Electrical and Computer Enineerin, Iowa State University Email:

More information

Thinking Machines CM 5

Thinking Machines CM 5 Appears in ACM SIGPLAN Symposium on Principles & Practice o Parallel Prorammin (PPoPP), July 1995. Princeton CS TR-488-95, Maryland CS-TR-3453 & UMIACS-TR-95-46, & Wisconsin CS TR 1271. Ecient Support

More information

General Design of Grid-based Data Replication. Schemes Using Graphs and a Few Rules. availability of read and write operations they oer and

General Design of Grid-based Data Replication. Schemes Using Graphs and a Few Rules. availability of read and write operations they oer and General esin of Grid-based ata Replication Schemes Usin Graphs and a Few Rules Oliver Theel University of California epartment of Computer Science Riverside, C 92521-0304, US bstract Grid-based data replication

More information

A Derandomized Approach to Self Adaptation of. Evolution Strategies. Technische Universitat Berlin. Ackerstrae (ACK1) D Berlin

A Derandomized Approach to Self Adaptation of. Evolution Strategies. Technische Universitat Berlin. Ackerstrae (ACK1) D Berlin A Derandomized Approach to Self Adaptation of Evolution Strateies Andreas Ostermeier, Andreas Gawelczyk & Nikolaus Hansen Technische Universitat Berlin Fachebiet Bionik und Evolutionstechnik Ackerstrae

More information

o code which one must write: modern lanuaes have complicated syntax trees, and so code which manipulates and enerates these trees tends to be complex

o code which one must write: modern lanuaes have complicated syntax trees, and so code which manipulates and enerates these trees tends to be complex C++ Templates as Partial Evaluation Todd L. Veldhuizen Abstract This paper explores the relationship between C++ templates and partial evaluation. Templates were desined to support eneric prorammin but

More information

A Cell Burst Scheduling for ATM Networking Part II: Implementation

A Cell Burst Scheduling for ATM Networking Part II: Implementation A Cell Burst Schedulin or ATM Networkin Part II: Implementation C. Tan, A. T. Chronopoulos, Senior Member, IEEE Computer Science Department Wayne State University email:ctan, chronos@cs.wayne.edu E. Yaprak,

More information

1 Theory 1 (CSc 473): Automata, Grammars, and Lanuaes For any strin w = w 1 w 2 :::w n, define w R to be the reversal of w: w R = w n w n 1 :::w 1. Su

1 Theory 1 (CSc 473): Automata, Grammars, and Lanuaes For any strin w = w 1 w 2 :::w n, define w R to be the reversal of w: w R = w n w n 1 :::w 1. Su Masters Examination Department of Computer Science March 27, 1999 Instructions This examination consists of nine problems. The questions are in three areas: 1. Theory and Alorithms: CSc 473, 545, and 573;

More information

The SpecC Methodoloy Technical Report ICS December 29, 1999 Daniel D. Gajski Jianwen Zhu Rainer Doemer Andreas Gerstlauer Shuqin Zhao Department

The SpecC Methodoloy Technical Report ICS December 29, 1999 Daniel D. Gajski Jianwen Zhu Rainer Doemer Andreas Gerstlauer Shuqin Zhao Department The SpecC Methodoloy Technical Report ICS-99-56 December 29, 1999 Daniel D. Gajski Jianwen Zhu Rainer Doemer Andreas Gerstlauer Shuqin Zhao Department of Information and Computer Science University of

More information

Bus-Based Communication Synthesis on System-Level

Bus-Based Communication Synthesis on System-Level Bus-Based Communication Synthesis on System-Level Michael Gasteier Manfred Glesner Darmstadt University of Technoloy Institute of Microelectronic Systems Karlstrasse 15, 64283 Darmstadt, Germany Abstract

More information

Minimum-Cost Multicast Routing for Multi-Layered Multimedia Distribution

Minimum-Cost Multicast Routing for Multi-Layered Multimedia Distribution Minimum-Cost Multicast Routin for Multi-Layered Multimedia Distribution Hsu-Chen Chen and Frank Yeon-Sun Lin Department of Information Manaement, National Taiwan University 50, Lane 144, Keelun Rd., Sec.4,

More information

Aspect-oriented programming with AspectJ

Aspect-oriented programming with AspectJ Aspect-oriented prorammin with AspectJ & A. Colyer A. Clement Aspect-oriented prorammin (AOP) is an excitin new development in the field of software enineerin. The open-source AspectJt project has taken

More information

Experiments on string matching in memory structures

Experiments on string matching in memory structures Experiments on string matching in memory structures Thierry Lecroq LIR (Laboratoire d'informatique de Rouen) and ABISS (Atelier de Biologie Informatique Statistique et Socio-Linguistique), Universite de

More information

The Gene Expression Messy Genetic Algorithm For. Hillol Kargupta & Kevin Buescher. Computational Science Methods division

The Gene Expression Messy Genetic Algorithm For. Hillol Kargupta & Kevin Buescher. Computational Science Methods division The Gene Expression Messy Genetic Alorithm For Financial Applications Hillol Karupta & Kevin Buescher Computational Science Methods division Los Alamos National Laboratory Los Alamos, NM, USA. Abstract

More information

Ulex: A Lexical Analyzer Generator for Unicon

Ulex: A Lexical Analyzer Generator for Unicon Ulex: A Lexical Analyzer Generator for Unicon Katrina Ray, Ray Pereda, and Clinton Jeffery Unicon Technical Report UTR 02a May 21, 2003 Abstract Ulex is a software tool for building language processors.

More information

i=266 to 382 ok Undo

i=266 to 382 ok Undo Softspec: Software-based Speculative Parallelism Derek Bruenin, Srikrishna Devabhaktuni, Saman Amarasinhe Laboratory for Computer Science Massachusetts Institute of Technoloy Cambride, MA 9 iye@mit.edu

More information

GUJARAT TECHNOLOGICAL UNIVERSITY

GUJARAT TECHNOLOGICAL UNIVERSITY Type of course: Core GUJARAT TECHNOLOGICAL UNIVERSITY SUBJECT NAME: Compiler Design SUBJECT CODE: 21701 B.E. 7 th SEMESTER Prerequisite: Data Structures and Algorithms, Theory of Computation, Rationale:

More information

Figure 2.1: Role of Lexical Analyzer

Figure 2.1: Role of Lexical Analyzer Chapter 2 Lexical Analysis Lexical analysis or scanning is the process which reads the stream of characters making up the source program from left-to-right and groups them into tokens. The lexical analyzer

More information

environments with objects which diusely reect or emit liht [16]. The method is based on the enery radiation between surfaces of objects and accounts f

environments with objects which diusely reect or emit liht [16]. The method is based on the enery radiation between surfaces of objects and accounts f A Shared-Memory Implementation of the Hierarchical Radiosity Method Axel Podehl Fachbereich Informatik, Universitat des Saarlandes, PF 151150, 66041 Saarbrucken, Germany, axelp@tibco.com Thomas Rauber

More information

Data-flow-based Testing of Object-Oriented Libraries

Data-flow-based Testing of Object-Oriented Libraries Data-flow-based Testin of Object-Oriented Libraries Ramkrishna Chatterjee Oracle Corporation One Oracle Drive Nashua, NH 03062, USA ph: +1 603 897 3515 Ramkrishna.Chatterjee@oracle.com Barbara G. Ryder

More information

JAVA XML PARSING SPECIFICATION

JAVA XML PARSING SPECIFICATION JAVA XML PARSING SPECIFICATION Joona Palaste Abstract: XML is a mark-up lanuae, or more precisely, a definition of mark-up lanuaes which allows information of arbitrary kind to be accurately and hierarchically

More information

CS606- compiler instruction Solved MCQS From Midterm Papers

CS606- compiler instruction Solved MCQS From Midterm Papers CS606- compiler instruction Solved MCQS From Midterm Papers March 06,2014 MC100401285 Moaaz.pk@gmail.com Mc100401285@gmail.com PSMD01 Final Term MCQ s and Quizzes CS606- compiler instruction If X is a

More information

COMPILER DESIGN UNIT I LEXICAL ANALYSIS. Translator: It is a program that translates one language to another Language.

COMPILER DESIGN UNIT I LEXICAL ANALYSIS. Translator: It is a program that translates one language to another Language. UNIT I LEXICAL ANALYSIS Translator: It is a program that translates one language to another Language. Source Code Translator Target Code 1. INTRODUCTION TO LANGUAGE PROCESSING The Language Processing System

More information

Iterative Single-Image Digital Super-Resolution Using Partial High-Resolution Data

Iterative Single-Image Digital Super-Resolution Using Partial High-Resolution Data Iterative Sinle-Imae Diital Super-Resolution Usin Partial Hih-Resolution Data Eran Gur, Member, IAENG and Zeev Zalevsky Abstract The subject of extractin hih-resolution data from low-resolution imaes is

More information

A Recursive Algorithm for Low-Power Memory Partitioning Luca Benini* Alberto Macii** Massimo Poncino**

A Recursive Algorithm for Low-Power Memory Partitioning Luca Benini* Alberto Macii** Massimo Poncino** A Recursive Alorithm for Low-Power ory Partitionin Luca Benini* Alberto Macii** Massimo Poncino** *Universita di Bolona **Politecnico di Torino Bolona, Italy 40136 Torino, Italy 10129 Abstract ory-processor

More information