John Aycock. Department of Computer Science. 2 Model of a Compiler. the subject, such as [1] and [2].

Size: px
Start display at page:

Download "John Aycock. Department of Computer Science. 2 Model of a Compiler. the subject, such as [1] and [2]."

Transcription

1 Compiling Little Languages in Python John Aycock Department of Computer Science University of Victoria Victoria, B.C., Canaa Abstract \Little languages" such as conguration les or HTML ocuments are commonplace in computing. This paper ivies the work of implementing a little language into four parts, an presents a framework which can be use to easily conquer the implementation of each. The pieces of the framework have the unusual property that they may be extene through normal object-oriente means, allowing features to be ae to a little language simply by subclassing parts of its compiler. 1 Introuction Domain-specic languages, or \little languages," are frequently encountere when ealing with computers [3]. Conguration les, HTML ocuments, shell scripts all are little structure languages, yet may lack the generality an features of full-blown programming languages. Whether writing an interpreter for a little language, or compiling a little language into another language, compiler techniques can be use. In many cases, an extremely fast compiler is not neee, especially if the input programs ten to be small. Instea, issues can preominate such as compiler evelopment time, maintainability of the compiler, an the ability to easily a new language features. This is Python's strong suit. This paper escribes some successful techniques I evelope while working on two compilers for little languages: one for a subset of Java, the other an optimizing compiler for Guie, a CGI-programming language [12]. The net result is a framework which can be use to implement little languages easily. Scanning Parsing Semantic Analysis Coe Generation Token List AST AST Figure 1: Compiler moel. 2 Moel of a Compiler Like most nontrivial pieces of software, compilers are generally broken own into more manageable moules, or phases. The esign issues involve an the etails of each phase are too numerous to iscuss here in epth; there are many excellent books on the subject, such as [1] an [2]. I began with a simple moel of a compiler having only four phases, as shown in Figure 1: 1. Scanning, or lexical analysis. Breaks the input stream into a list of tokens. For example, the expression \2 + 3 * 5" can be broken up into ve tokens: number plus number times number. The values 2, 3, an 5 are attributes associate with the corresponing number token. 2. Parsing, or syntax analysis. Ensures that a list of tokens has vali syntax accoring to a gram-

2 number (2) + number (3) * number (5) Figure 2: Abstract syntax tree (AST). mar a set of rules that escribes the syntax of the language. For the above example, a typical expression grammar woul be: expr ::= expr + term expr ::= term term ::= term * factor term ::= factor factor ::= number In English, this grammar's rules say that an expression can be an expression plus a term, an expression may be a term by itself, an so on. Intuitively, the symbol on the left-han sie of \::=" may be thought of as a variable for which the symbols on the right-han sie may be substitute. Symbols that on't appear on any left-han sie like +,*,an number correspon to the tokens from the scanner. The result of my parsing is an abstract syntax tree (AST), which represents the input program. For \2 + 3 * 5," the AST woul look like the one in Figure Semantic analysis. Traverses the AST one or more times, collecting information an checking that the input program ha no semantic errors. In a typical programming language, this phase woul etect things like type conicts, reene ientiers, mismatche function parameters, an numerous other errors. The information gathere may be store in a global symbol table, or attache as attributes to the noes of the AST itself. 4. Coe generation. Again traversing the AST, this phase may irectly interpret the program, or output coe in C or assembly which woul implement the input program. For expressions as simple as those in the example, they coul be evaluate on the y in this phase. Each phase performs a well-ene task, an passes a ata structure on to the next phase. Note that information only ows one way, an that each phase runs to completion before the next one starts 1. This is in contrast to oft-use techniques which have a symbiosis between scanning an parsing, where not only may several phases be working concurrently, but a later phase may sen some feeback to moify the operation of an earlier phase. Certainly all little language compilers won't t this moel, but it is extremely clean an elegant for those that o. The main function of the compiler, for instance, istills into three lines which reect the compiler's structure: f = open(filename) generate(semantic(parse(scan(f)))) f.close() In the remainer of this paper, I will examine each of the above four phases, showing how my framework can be use to implement the little expression language above. Following this will be a iscussion of some of the inner workings of the framework's classes. 3 The Framework A common theme throughout this framework is that the user shoul have to o as little work as possible. For each phase, my framework supplies a class which performs most of the work. The user's job is simply to create subclasses which customize the framework. 3.1 Lexical Analysis Lexical analyzers, or scanners, are typically implemente one of two ways. The rst way is to write the scanner by han; this may still be the metho of choice for very small languages, or where use of a tool to generate scanners automatically is not possible. The secon metho is to use a scanner generator tool, like lex [11], which takes a high-level escription of the permitte tokens, an prouces a nite state machine which implements the scanner. Finite state machines are equivalent to regular expressions; in fact, one uses regular expressions to 1 There is some anecotal evience that parts of prouction compilers may be moving towars a similar moel [18].

3 specify tokens to scanner generators! Since Python has regular expression support, it is natural to use them to specify tokens. (As a case in point, the Python moule \tokenize" has regular expressions to tokenize Python programs.) So GenericScanner, my generic scanner class, requires a user to create a subclass of it in which they specify the regular expressions that the scanner shoul look for. Furthermore, an \action" consisting of arbitrary Python coe can be associate with each regular expression this is typical of scanner generators, an allows work to be performe base on the type of token foun. Below is a simple scanner to tokenize expressions. The parameter to the action routines is a string containing the part of the input that was matche by the regular expression. class SimpleScanner(GenericScanner): ef init (self): GenericScanner. init (self) ef tokenize(self, input): self.rv = [] GenericScanner.tokenize(self, input) return self.rv ef t_whitespace(self, s): r' \s+ ' pass ef t_op(self, s): r' \+ \* ' self.rv.appen(token(type=s)) ef t_number(self, s): r' \+ ' t = Token(type='number', attr=s) self.rv.appen(t) Each metho whose name begins with \t "isan action; the regular expression for the action is place in the metho's ocumentation string. (The reason for this unusual esign is explaine in Section 4.1.) When the tokenize metho is calle, a list of Token instances is returne, one for each operator an number foun. The coe for the Token class is omitte; it is a simple container class with a type an an optional attribute. White space is skippe by SimpleScanner, since its action coe oes nothing. Any unrecognize characters in the input are matche by a efault pattern, eclare in the action GenericScanner.t efault. This efault metho can of course be overrien in a subclass. A trace of SimpleScanner on the input \2 + 3 * 5" is shown in Table 1. Input Metho Token Ae 2 t number number (attribute 2) space t whitespace + t op + space t whitespace 3 t number number (attribute 3) space t whitespace * t op * space t whitespace 5 t number number (attribute 5) Table 1: Trace of SimpleScanner. Scanners mae with GenericScanner are extensible, meaning that new tokens may be recognize simply by subclassing. To exten SimpleScanner to recognize oating-point number tokens is easy: class FloatScanner(SimpleScanner): ef init (self): SimpleScanner. init (self) ef t_float(self, s): r' \+ \. \+ ' t = Token(type='float', attr=s) self.rv.appen(t) How are these classes use? Typically, all that is neee is to rea in the input program, an pass it to an instance of the scanner: ef scan(f): input = f.rea() scanner = FloatScanner() return scanner.tokenize(input) Once the scanner is one, its result is sent to the parser for syntax analysis. 3.2 Syntax Analysis The outwar appearance of GenericParser, my generic parser class, is similar to that of Generic- Scanner. A user starts by creating a subclass of Generic- Parser, containing special methos which are name with the prex \p ". These special methos encoe grammar rules in their ocumentation strings; the coe in the methos are actions which get execute when one of the associate grammar rules are recognize by GenericParser.

4 The expression parser subclass is shown below. Here, the actions are builing the AST for the input program. AST is also a simple container class; each instance of AST correspons to a noe in the tree, with a noe type an possibly chil noes. class ExprParser(GenericParser): ef init (self, start='expr'): GenericParser. init (self, start) Metho Calle AST After Call ef p_expr_1(self, args): ' expr ::= expr + term ' return AST(type=args[1], left=args[0], right=args[2]) ef p_expr_2(self, args): ' expr ::= term ' return args[0] ef p_term_1(self, args): ' term ::= term * factor ' return AST(type=args[1], left=args[0], right=args[2]) ef p_term_2(self, args): ' term ::= factor ' return args[0] ef p_factor_1(self, args): ' factor ::= number ' return AST(type=args[0]) p factor 1 p factor 1 p term 2 p term 1 p factor 1 A A ef p_factor_2(self, args): ' factor ::= float ' return AST(type=args[0]) p term 2 A The grammar's start symbol is passe to the constructor. ExprParser buils the AST from the bottom up. Figure 3 shows the AST in Figure 2 being built, an the sequence in which ExprParser's methos are invoke. The \args" passe in to the actions are base on a similar iea use by yacc [11], a prevalent parser generator tool. Each symbol on a rule's right-han sie has an attribute associate with it. For token symbols like +, this attribute is the token itself. All other symbols' attributes come from the return values of actions which, in the above coe, means that they are subtrees of the AST. The inex into args comes from the position of the symbol in the rule's right-han sie. In the running example, the call p expr 2 p expr 1 A A A Figure 3: AST construction.

5 to p expr 1 has len(args) == 3: args[0] is expr's attribute, the left subtree of + in the AST; args[1] is +'s attribute, the token +; args[2] is term's attribute, the right subtree of + in the AST. The routine to use this subclass is straightforwar: ef parse(tokens): parser = ExprParser() return parser.parse(tokens) Although omitte for brevity, ExprParser can be subclasse to a grammar rules an actions, the same way the scanner was subclasse. After syntax analysis, the parser has prouce an AST, an verie that the input program aheres to the grammar rules. Next, the input's meaning must be checke by the semantic analyzer. 3.3 Semantic Analysis Semantic analysis is performe by traversing the AST. Rather than sprea coe to traverse an AST all over the compiler, I have a single base class, AST- Traversal, which knows how to walk the tree. Subclasses of ASTTraversal supply methos which get calle epening on what type of noe is encountere. To etermine which metho to invoke, AST- Traversal will rst look for a metho with the same name as the noe type (plus the prex \n "), then will fall back on an optional efault metho if no more specic metho is foun. Of course, ASTTraversal can supply many ierent traversal algorithms. I have foun three useful: preorer, postorer, an a pre/postorer combination. (The latter allows methos to be calle both on entry to, an exit from, a noe.) For example, say that we want to forbi the mixing of oating-point an integer numbers in our expressions: class TypeCheck(ASTTraversal): ef init (self, ast): ASTTraversal. init (self, ast) self.postorer() ef n_number(self, noe): noe.exprtype = 'number' ef n_float(self, noe): noe.exprtype = 'float' ef efault(self, noe): # this hanles + an * noes lefttype = noe.left.exprtype righttype = noe.right.exprtype if lefttype!= righttype: raise 'Type error.' noe.exprtype = lefttype I foun the semantic checking coe easier to write an unerstan by taking the (amittely less ecient) approach of making multiple traversals of the AST each pass performs a single task. TypeCheck is invoke from a small glue routine: ef semantic(ast): TypeCheck(ast) # # Any other ASTTraversal classes # for semantic checking woul be # instantiate here... # return ast After this phase, I have an AST for an input program that is lexically, syntactically, an semantically correct but that oes nothing. The nal phase, coe generation, remeies this. 3.4 Coe Generation The term \coe generation" is somewhat of a misnomer. As alreay mentione, this phase will traverse the AST an implement the input program, either irectly through interpretation, or inirectly by emitting some coe. Our expressions, for instance, can be easily interprete: class Interpret(ASTTraversal): ef init (self, ast): ASTTraversal. init (self, ast) self.postorer() print ast.value ef n_number(self, noe): noe.value = int(noe.attr) ef n_float(self, noe): noe.value = float(noe.attr) ef efault(self, noe): left = noe.left.value right = noe.right.value if noe.type == '+': noe.value = left + right else: noe.value = left * right

6 In contrast, my two compilers use an ASTTraversal to output an intermeiate representation (IR) which is eectively a machine-inepenent assembly language. This IR then gets converte into MIPS assembly coe in one compiler, C++ coe in the other. I am consiering ways to incorporate more sophisticate coe generation methos into this framework, such as tree pattern matching with ynamic programming [8]. 4 Inner Workings 4.1 Reection Extensibility presents some interesting esign challenges. The generic classes in the framework, without any moications mae to them, must be able to ivine all the information an actions containe in their subclasses, subclasses that in't exist when the generic classes were create. Fortunately, an elegant mechanism exists in Python to o just this: reection. Reection refers to the ability of a Python program to query an moify itself at run time (this feature is also present in other languages, like Java an Smalltalk). Consier, for example, my generic scanner class. GenericScanner searches itself an its subclasses at run time for methos that begin with the prex \t." These methos are the scanner's actions. The regular expression associate with the actions is specie using a well-known metho attribute that can be querie at run time the metho's ocumentation string. This wanton abuse of ocumentation strings can be rationalize. Documentation strings are a metho of associating meta-information comments with a section of coe. My framework is an extension of that iea. Instea of comments intene for humans, however, I have metainformation intene for use by my framework. As the number of reective Python applications grows, it may beworthwhile to a more formal mechanisms to Python to support this task. 4.2 GenericScanner Internally, GenericScanner works by constructing a single regular expression which is compose of all the smaller regular expressions it has foun in the action methos' ocumentation strings. Each component regular expression is mappe to its action using Python's symbolic group facility. Unfortunately, there is a small snag. Python follows the Perl semantics for regular expressions rather than the POSIX semantics, which means it follows the \rst then longest" rule the leftmost part of a regular expression that matches is always taken, rather than using the longest match. In the above example, if GenericScanner were to orer the regular expression so that \\+" appeare before \\+\.\+", then the input woul match as the number 123, rather than the oating-pointnumber To work aroun this, GenericScanner makes two guarantees: 1. A subclass' patterns will be matche before any in its parent classes. 2. The efault pattern for a subclass, if any, will be matche only after all other patterns in the subclass have been trie. One obvious change to GenericScanner is to automate the builing of the list of tokens each \t" metho coul return a list of tokens which woul be appene to the scanner's list of tokens. The reason this is not one is because it woul limit potential applications of GenericScanner. For example, in one compiler I use a subclass of GenericScanner as a preprocessor which returne a string; another scanner class then broke that string into a list of tokens. 4.3 GenericParser GenericParser is actually more powerful than was allue to in Section 3.2. At the cost of greater coupling between methos, actions for similar rules may be combine together rather than having to uplicate coe my original version of ExprParser is shown below. class ExprParser(GenericParser): ef init (self, start='expr'): GenericParser. init (self, start) ef p_expr_term(self, args): expr ::= expr + term term ::= term * factor return AST(type=args[1], left=args[0], right=args[2]) ef p_expr_term_2(self, args):

7 expr ::= term term ::= factor return args[0] ef p_factor(self, args): factor ::= number factor ::= float return AST(type=args[0]) Taking this to extremes, if a user is only intereste in parsing an oesn't require an AST, ExprParser coul be written: class ExprParser(GenericParser): ef init (self, start='expr'): GenericParser. init (self, start) ef p_rules(self, args): expr ::= expr + term expr ::= term term ::= term * factor term ::= factor factor ::= number factor ::= float In theory, GenericParser coul use any parsing algorithm for its engine. However, I chose the Earley parsing algorithm [6] which has several nice properties for this application [10]: 1. It is one of the most general algorithms known; it can parse all context-free grammars whereas the more popular LL an LR techniques cannot. This is important for easy extensibility; a user shoul ieally be able to subclass a parser without worrying about properties of the resulting grammar. 2. It generates all its information at run-time, rather than having to precompute sets an tables. Since the grammar rules aren't known until run-time, this is just as well! Unlike most other parsing algorithms, Earley's metho parses ambiguous grammars. Currently, ambiguity presents a problem since it is not clear which actions shoul be invoke. Future versions of GenericParser will have anambiguity-resolution scheme to aress this. To accommoate a variety of possible parsing algorithms (incluing the one I use), GenericParser only makes one guarantee with respect to when the rules' actions are execute. A rule's action is execute only after all the attributes on the rule's righthan sie are fully compute. This conition is suf- cient to allow the correct construction of ASTs. 4.4 ASTTraversal ASTTraversal is the least unusual of the generic classes. It coul be argue that its use of reection is superuous, an the same functionality coul be achieve by having its subclasses provie a metho for every type of AST noe; these methos coul call a efault metho themselves if necessary. The problems with this non-reective approach are threefol. First, it introuces a maintenance issue: any aitional noe types ae to the AST require all ASTTraversal's subclasses to be change. Secon, it forces the user to o more work, as methos for all noe types must be supplie; my experience, especially for semantic checking, is that only a small set of noe types will be of interest for a given subclass. Thir, some noe types may not map nicely into Python metho names I prefer to use noe types that reect the little language's syntax, like +, an it isn't possible to have methos name \n +" 2. This latter point is where it is useful to have ASTTraversal reectively probe a subclass an automatically invoke the efault metho. 4.5 Design Patterns Although evelope inepenently, the use of reection in my framework is arguably a specialization of the Reection pattern [4]. I speculate that there are many other esign patterns where reection can be exploite. To illustrate, ASTTraversal woun up somewhere between the Default Visitor [13] an Re- ection patterns, although it was originally inspire by the Visitor pattern [9]. Two other esign patterns can be applie to my framework too. First, the entire framework coul be organize explicitly as a Pipes an Filters pattern [4]. Secon, the generic classes coul support interchangeable algorithms via the Strategy pattern [9]; parsing algorithms, in particular, vary wiely in their characteristics, so allowing ierent algorithms coul be a boon to an avance user. 2 Not irectly, anyway...

8 5 Comparison to Other Work The basis of this paper is the observation that little languages, an the nee to implement them, are recurring problems. Not all authors even agree on this point Shivers [16] presents an alternative to little languages an a Scheme-base implementation framework. Tcl was also evelope to aress the proliferation of little languages [14]. Other Python packages exist to automate parts of scanning an parsing. PyLR [5] uses a parsing engine written in C to accelerate parsing; kwparsing [17] automates the implementation of common programming language features at the cost of a more complex API. Both require precomputation of scanning an parsing information. YAPPS [15] uses the weakest parsing algorithm of the surveye packages, an its author notes `It is not fast, powerful, or particularly exible.' There are occasional references to the PyBison package, which I was unable to locate. For completeness, the mcf.pars package [7] is an interesting nontraitional system base on generalize pattern matching, but is suciently ierent from my framework to preclue any meaningful comparisons. 6 Not-so-Little Languages This paper has presente a framework I have evelope to buil compilers in Python. It uses reection an esign patterns to prouce compilers which can be easily extene using traitional object-oriente methos. At present, this framework has prove its eectiveness in the implementation of two \little languages." I plan to further test this framework by using it to buil a compiler for a larger language Python. Availability The source coe for the framework an the example use in this paper is available at Acknowlegments Iwoul like to thank Nigel Horspool an Shannon Jaeger for their comments on early rafts of this paper. Mike Zastre mae several suggestions which improve Figure 3, an the anonymous referees supplie valuable feeback. References [1] A. V. Aho, R. Sethi, an J. D. Ullman. Compilers: Principles, Techniques, an Tools. Aison-Wesley, [2] A. W. Appel. Moern Compiler Implementation in Java. Cambrige, [3] J. Bentley. Little Languages. In More Programming Pearls, pages 83{100. Aison-Wesley, [4] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerla, an M. Stal. Pattern-Oriente Software Architecture: A System of Patterns. Wiley, [5] S. Cotton. PyLR. [6] J. Earley. An Ecient Context-Free Parsing Algorithm. Communications of the ACM, 13(2):94{102, [7] M. C. Fletcher. mcf.pars. [8] C. W. Fraser, D. R. Hanson, an T. A. Proebsting. Engineering a Simple, Ecient Coe Generator Generator. ACM LOPLAS. 1(3):213{ 226, [9] E. Gamma, R. Helm, R. Johnson, an J. Vlissies. Design Patterns. Aison-Wesley, [10] D. Grune an C. J. H. Jacobs. Parsing Techniques: A Practical Guie. Ellis Horwoo, [11] J. R. Levine, T. Mason, an D. Brown. lex & yacc. O'Reilly, [12] M. R. Levy. Web Programming in Guie. Software, Practice an Experience. Accepte for publication July [13] M. E. Norberg III. Variations on the Visitor Pattern. PLoP '96 Writer's Workshop. [14] J. K. Ousterhout. Tcl an the Tk Toolkit. Aison-Wesley, [15] A. J. Patel. YAPPS. [16] O. Shivers. A Universal Scripting Framework. In Concurrency an Parallelism, Programming, Networking, an Security, pages 254{265. Springer, 1996.

9 [17] A. Watters. kwparsing. watters/- kwparsing/. [18] D. B. Wortman. Compiling at 1000 MHz an beyon. In Systems Implementation 2000, pages 194{206. Chapman & Hall, 1998.

Compiler Optimisation

Compiler Optimisation Compiler Optimisation Michael O Boyle mob@inf.e.ac.uk Room 1.06 January, 2014 1 Two recommene books for the course Recommene texts Engineering a Compiler Engineering a Compiler by K. D. Cooper an L. Torczon.

More information

The Design and Implementation of SPARK, a Toolkit for Implementing Domain-Specific Languages

The Design and Implementation of SPARK, a Toolkit for Implementing Domain-Specific Languages Journal of Computing and Information Technology - CIT 10, 2002, 1, 55 66 55 The Design and Implementation of SPARK, a Toolkit for Implementing Domain-Specific Languages John Aycock Department of Computer

More information

Coupling the User Interfaces of a Multiuser Program

Coupling the User Interfaces of a Multiuser Program Coupling the User Interfaces of a Multiuser Program PRASUN DEWAN University of North Carolina at Chapel Hill RAJIV CHOUDHARY Intel Corporation We have evelope a new moel for coupling the user-interfaces

More information

CS 106 Winter 2016 Craig S. Kaplan. Module 01 Processing Recap. Topics

CS 106 Winter 2016 Craig S. Kaplan. Module 01 Processing Recap. Topics CS 106 Winter 2016 Craig S. Kaplan Moule 01 Processing Recap Topics The basic parts of speech in a Processing program Scope Review of syntax for classes an objects Reaings Your CS 105 notes Learning Processing,

More information

Preamble. Singly linked lists. Collaboration policy and academic integrity. Getting help

Preamble. Singly linked lists. Collaboration policy and academic integrity. Getting help CS2110 Spring 2016 Assignment A. Linke Lists Due on the CMS by: See the CMS 1 Preamble Linke Lists This assignment begins our iscussions of structures. In this assignment, you will implement a structure

More information

Computer Organization

Computer Organization Computer Organization Douglas Comer Computer Science Department Purue University 250 N. University Street West Lafayette, IN 47907-2066 http://www.cs.purue.eu/people/comer Copyright 2006. All rights reserve.

More information

Online Appendix to: Generalizing Database Forensics

Online Appendix to: Generalizing Database Forensics Online Appenix to: Generalizing Database Forensics KYRIACOS E. PAVLOU an RICHARD T. SNODGRASS, University of Arizona This appenix presents a step-by-step iscussion of the forensic analysis protocol that

More information

Lab work #8. Congestion control

Lab work #8. Congestion control TEORÍA DE REDES DE TELECOMUNICACIONES Grao en Ingeniería Telemática Grao en Ingeniería en Sistemas e Telecomunicación Curso 2015-2016 Lab work #8. Congestion control (1 session) Author: Pablo Pavón Mariño

More information

Compiler Design (40-414)

Compiler Design (40-414) Compiler Design (40-414) Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007 Evaluation: Midterm Exam 35% Final Exam 35% Assignments and Quizzes 10% Project

More information

Learning Polynomial Functions. by Feature Construction

Learning Polynomial Functions. by Feature Construction I Proceeings of the Eighth International Workshop on Machine Learning Chicago, Illinois, June 27-29 1991 Learning Polynomial Functions by Feature Construction Richar S. Sutton GTE Laboratories Incorporate

More information

Random Clustering for Multiple Sampling Units to Speed Up Run-time Sample Generation

Random Clustering for Multiple Sampling Units to Speed Up Run-time Sample Generation DEIM Forum 2018 I4-4 Abstract Ranom Clustering for Multiple Sampling Units to Spee Up Run-time Sample Generation uzuru OKAJIMA an Koichi MARUAMA NEC Solution Innovators, Lt. 1-18-7 Shinkiba, Koto-ku, Tokyo,

More information

Politecnico di Torino. Porto Institutional Repository

Politecnico di Torino. Porto Institutional Repository Politecnico i Torino Porto Institutional Repository [Proceeing] Automatic March tests generation for multi-port SRAMs Original Citation: Benso A., Bosio A., i Carlo S., i Natale G., Prinetto P. (26). Automatic

More information

Generalized Edge Coloring for Channel Assignment in Wireless Networks

Generalized Edge Coloring for Channel Assignment in Wireless Networks Generalize Ege Coloring for Channel Assignment in Wireless Networks Chun-Chen Hsu Institute of Information Science Acaemia Sinica Taipei, Taiwan Da-wei Wang Jan-Jan Wu Institute of Information Science

More information

Here are a couple of warnings to my students who may be here to get a copy of what happened on a day that you missed.

Here are a couple of warnings to my students who may be here to get a copy of what happened on a day that you missed. Preface Here are my online notes for my Calculus I course that I teach here at Lamar University. Despite the fact that these are my class notes, they shoul be accessible to anyone wanting to learn Calculus

More information

Positions, Iterators, Tree Structures and Tree Traversals. Readings - Chapter 7.3, 7.4 and 8

Positions, Iterators, Tree Structures and Tree Traversals. Readings - Chapter 7.3, 7.4 and 8 Positions, Iterators, Tree Structures an Reaings - Chapter 7.3, 7.4 an 8 1 Positional Lists q q q q A position acts as a marker or token within the broaer positional list. A position p is unaffecte by

More information

CS Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0

CS Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0 SYL-410-2014C CS 410 - Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0 Course location: 107 ERB, Evansdale Campus Course times: Tuesdays and Thursdays, 2:00-3:15 Course

More information

Yet Another Parallel Hypothesis Search for Inverse Entailment Hiroyuki Nishiyama and Hayato Ohwada Faculty of Sci. and Tech. Tokyo University of Scien

Yet Another Parallel Hypothesis Search for Inverse Entailment Hiroyuki Nishiyama and Hayato Ohwada Faculty of Sci. and Tech. Tokyo University of Scien Yet Another Parallel Hypothesis Search for Inverse Entailment Hiroyuki Nishiyama an Hayato Ohwaa Faculty of Sci. an Tech. Tokyo University of Science, 2641 Yamazaki, Noa-shi, CHIBA, 278-8510, Japan hiroyuki@rs.noa.tus.ac.jp,

More information

Politehnica University of Timisoara Mobile Computing, Sensors Network and Embedded Systems Laboratory. Testing Techniques

Politehnica University of Timisoara Mobile Computing, Sensors Network and Embedded Systems Laboratory. Testing Techniques Politehnica University of Timisoara Mobile Computing, Sensors Network an Embee Systems Laboratory ing Techniques What is testing? ing is the process of emonstrating that errors are not present. The purpose

More information

Comparison of Methods for Increasing the Performance of a DUA Computation

Comparison of Methods for Increasing the Performance of a DUA Computation Comparison of Methos for Increasing the Performance of a DUA Computation Michael Behrisch, Daniel Krajzewicz, Peter Wagner an Yun-Pang Wang Institute of Transportation Systems, German Aerospace Center,

More information

Divide-and-Conquer Algorithms

Divide-and-Conquer Algorithms Supplment to A Practical Guie to Data Structures an Algorithms Using Java Divie-an-Conquer Algorithms Sally A Golman an Kenneth J Golman Hanout Divie-an-conquer algorithms use the following three phases:

More information

William S. Law. Erik K. Antonsson. Engineering Design Research Laboratory. California Institute of Technology. Abstract

William S. Law. Erik K. Antonsson. Engineering Design Research Laboratory. California Institute of Technology. Abstract Optimization Methos for Calculating Design Imprecision y William S. Law Eri K. Antonsson Engineering Design Research Laboratory Division of Engineering an Applie Science California Institute of Technology

More information

Message Transport With The User Datagram Protocol

Message Transport With The User Datagram Protocol Message Transport With The User Datagram Protocol User Datagram Protocol (UDP) Use During startup For VoIP an some vieo applications Accounts for less than 10% of Internet traffic Blocke by some ISPs Computer

More information

Generalized Edge Coloring for Channel Assignment in Wireless Networks

Generalized Edge Coloring for Channel Assignment in Wireless Networks TR-IIS-05-021 Generalize Ege Coloring for Channel Assignment in Wireless Networks Chun-Chen Hsu, Pangfeng Liu, Da-Wei Wang, Jan-Jan Wu December 2005 Technical Report No. TR-IIS-05-021 http://www.iis.sinica.eu.tw/lib/techreport/tr2005/tr05.html

More information

Skyline Community Search in Multi-valued Networks

Skyline Community Search in Multi-valued Networks Syline Community Search in Multi-value Networs Rong-Hua Li Beijing Institute of Technology Beijing, China lironghuascut@gmail.com Jeffrey Xu Yu Chinese University of Hong Kong Hong Kong, China yu@se.cuh.eu.h

More information

Intensive Hypercube Communication: Prearranged Communication in Link-Bound Machines 1 2

Intensive Hypercube Communication: Prearranged Communication in Link-Bound Machines 1 2 This paper appears in J. of Parallel an Distribute Computing 10 (1990), pp. 167 181. Intensive Hypercube Communication: Prearrange Communication in Link-Boun Machines 1 2 Quentin F. Stout an Bruce Wagar

More information

Recitation Caches and Blocking. 4 March 2019

Recitation Caches and Blocking. 4 March 2019 15-213 Recitation Caches an Blocking 4 March 2019 Agena Reminers Revisiting Cache Lab Caching Review Blocking to reuce cache misses Cache alignment Reminers Due Dates Cache Lab (Thursay 3/7) Miterm Exam

More information

Compiling and Interpreting Programming. Overview of Compilers and Interpreters

Compiling and Interpreting Programming. Overview of Compilers and Interpreters Copyright R.A. van Engelen, FSU Department of Computer Science, 2000 Overview of Compilers and Interpreters Common compiler and interpreter configurations Virtual machines Integrated programming environments

More information

APPLYING GENETIC ALGORITHM IN QUERY IMPROVEMENT PROBLEM. Abdelmgeid A. Aly

APPLYING GENETIC ALGORITHM IN QUERY IMPROVEMENT PROBLEM. Abdelmgeid A. Aly International Journal "Information Technologies an Knowlege" Vol. / 2007 309 [Project MINERVAEUROPE] Project MINERVAEUROPE: Ministerial Network for Valorising Activities in igitalisation -

More information

Frequent Pattern Mining. Frequent Item Set Mining. Overview. Frequent Item Set Mining: Motivation. Frequent Pattern Mining comprises

Frequent Pattern Mining. Frequent Item Set Mining. Overview. Frequent Item Set Mining: Motivation. Frequent Pattern Mining comprises verview Frequent Pattern Mining comprises Frequent Pattern Mining hristian Borgelt School of omputer Science University of Konstanz Universitätsstraße, Konstanz, Germany christian.borgelt@uni-konstanz.e

More information

Working of the Compilers

Working of the Compilers Working of the Compilers Manisha Yadav Nisha Thakran IT DEPARTMENT IT DEPARTMENT DCE,GURGAON DCE,GURGAON Abstract- The objective of the paper is to depict the working of the compilers that were designed

More information

Adjacency Matrix Based Full-Text Indexing Models

Adjacency Matrix Based Full-Text Indexing Models 1000-9825/2002/13(10)1933-10 2002 Journal of Software Vol.13, No.10 Ajacency Matrix Base Full-Text Inexing Moels ZHOU Shui-geng 1, HU Yun-fa 2, GUAN Ji-hong 3 1 (Department of Computer Science an Engineering,

More information

Problem Paper Atoms Tree. atoms.pas. atoms.cpp. atoms.c. atoms.java. Time limit per test 1 second 1 second 2 seconds. Number of tests

Problem Paper Atoms Tree. atoms.pas. atoms.cpp. atoms.c. atoms.java. Time limit per test 1 second 1 second 2 seconds. Number of tests ! " # %$ & Overview Problem Paper Atoms Tree Shen Tian Harry Wiggins Carl Hultquist Program name paper.exe atoms.exe tree.exe Source name paper.pas atoms.pas tree.pas paper.cpp atoms.cpp tree.cpp paper.c

More information

Non-homogeneous Generalization in Privacy Preserving Data Publishing

Non-homogeneous Generalization in Privacy Preserving Data Publishing Non-homogeneous Generalization in Privacy Preserving Data Publishing W. K. Wong, Nios Mamoulis an Davi W. Cheung Department of Computer Science, The University of Hong Kong Pofulam Roa, Hong Kong {wwong2,nios,cheung}@cs.hu.h

More information

ACE: And/Or-parallel Copying-based Execution of Logic Programs

ACE: And/Or-parallel Copying-based Execution of Logic Programs ACE: An/Or-parallel Copying-base Execution of Logic Programs Gopal GuptaJ Manuel Hermenegilo* Enrico PontelliJ an Vítor Santos Costa' Abstract In this paper we present a novel execution moel for parallel

More information

Indexing the Edges A simple and yet efficient approach to high-dimensional indexing

Indexing the Edges A simple and yet efficient approach to high-dimensional indexing Inexing the Eges A simple an yet efficient approach to high-imensional inexing Beng Chin Ooi Kian-Lee Tan Cui Yu Stephane Bressan Department of Computer Science National University of Singapore 3 Science

More information

Almost Disjunct Codes in Large Scale Multihop Wireless Network Media Access Control

Almost Disjunct Codes in Large Scale Multihop Wireless Network Media Access Control Almost Disjunct Coes in Large Scale Multihop Wireless Network Meia Access Control D. Charles Engelhart Anan Sivasubramaniam Penn. State University University Park PA 682 engelhar,anan @cse.psu.eu Abstract

More information

d 3 d 4 d d d d d d d d d d d 1 d d d d d d

d 3 d 4 d d d d d d d d d d d 1 d d d d d d Proceeings of the IASTED International Conference Software Engineering an Applications (SEA') October 6-, 1, Scottsale, Arizona, USA AN OBJECT-ORIENTED APPROACH FOR MANAGING A NETWORK OF DATABASES Shu-Ching

More information

CST-402(T): Language Processors

CST-402(T): Language Processors CST-402(T): Language Processors Course Outcomes: On successful completion of the course, students will be able to: 1. Exhibit role of various phases of compilation, with understanding of types of grammars

More information

Inuence of Cross-Interferences on Blocked Loops: to know the precise gain brought by blocking. It is even dicult to determine for which problem

Inuence of Cross-Interferences on Blocked Loops: to know the precise gain brought by blocking. It is even dicult to determine for which problem Inuence of Cross-Interferences on Blocke Loops A Case Stuy with Matrix-Vector Multiply CHRISTINE FRICKER INRIA, France an OLIVIER TEMAM an WILLIAM JALBY University of Versailles, France State-of-the art

More information

On the Role of Multiply Sectioned Bayesian Networks to Cooperative Multiagent Systems

On the Role of Multiply Sectioned Bayesian Networks to Cooperative Multiagent Systems On the Role of Multiply Sectione Bayesian Networks to Cooperative Multiagent Systems Y. Xiang University of Guelph, Canaa, yxiang@cis.uoguelph.ca V. Lesser University of Massachusetts at Amherst, USA,

More information

Shift-map Image Registration

Shift-map Image Registration Shift-map Image Registration Linus Svärm Petter Stranmark Centre for Mathematical Sciences, Lun University {linus,petter}@maths.lth.se Abstract Shift-map image processing is a new framework base on energy

More information

Lecture 1 September 4, 2013

Lecture 1 September 4, 2013 CS 84r: Incentives an Information in Networks Fall 013 Prof. Yaron Singer Lecture 1 September 4, 013 Scribe: Bo Waggoner 1 Overview In this course we will try to evelop a mathematical unerstaning for the

More information

Semantic Analysis. Lecture 9. February 7, 2018

Semantic Analysis. Lecture 9. February 7, 2018 Semantic Analysis Lecture 9 February 7, 2018 Midterm 1 Compiler Stages 12 / 14 COOL Programming 10 / 12 Regular Languages 26 / 30 Context-free Languages 17 / 21 Parsing 20 / 23 Extra Credit 4 / 6 Average

More information

From an Abstract Object-Oriented Model to a Ready-to-Use Embedded System Controller

From an Abstract Object-Oriented Model to a Ready-to-Use Embedded System Controller From an Abstract Object-Oriente Moel to a Reay-to-Use Embee System Controller Stanislav Chachkov, Diier Buchs Software Engineering Laboratory, Swiss Feeral Institute for Technology 1015 Lausanne, Switzerlan

More information

Verifying performance-based design objectives using assemblybased vulnerability

Verifying performance-based design objectives using assemblybased vulnerability Verying performance-base esign objectives using assemblybase vulnerability K.A. Porter Calornia Institute of Technology, Pasaena, Calornia, USA A.S. Kiremijian Stanfor University, Stanfor, Calornia, USA

More information

An Algorithm for Building an Enterprise Network Topology Using Widespread Data Sources

An Algorithm for Building an Enterprise Network Topology Using Widespread Data Sources An Algorithm for Builing an Enterprise Network Topology Using Wiesprea Data Sources Anton Anreev, Iurii Bogoiavlenskii Petrozavosk State University Petrozavosk, Russia {anreev, ybgv}@cs.petrsu.ru Abstract

More information

Chapter 2 A Quick Tour

Chapter 2 A Quick Tour Chapter 2 A Quick Tour 2.1 The Compiler Toolchain A compiler is one component in a toolchain of programs used to create executables from source code. Typically, when you invoke a single command to compile

More information

Shift-map Image Registration

Shift-map Image Registration Shift-map Image Registration Svärm, Linus; Stranmark, Petter Unpublishe: 2010-01-01 Link to publication Citation for publishe version (APA): Svärm, L., & Stranmark, P. (2010). Shift-map Image Registration.

More information

Design Management Using Dynamically Defined Flows

Design Management Using Dynamically Defined Flows Design Management Using Dynamically Deine Flows Peter R. Sutton*, Jay B. Brockman** an Stephen W. Director* *Department o Electrical an Computer Engineering, Carnegie Mellon University, Pittsburgh, PA

More information

Backpressure-based Packet-by-Packet Adaptive Routing in Communication Networks

Backpressure-based Packet-by-Packet Adaptive Routing in Communication Networks 1 Backpressure-base Packet-by-Packet Aaptive Routing in Communication Networks Eleftheria Athanasopoulou, Loc Bui, Tianxiong Ji, R. Srikant, an Alexaner Stolyar Abstract Backpressure-base aaptive routing

More information

Topics. Computer Networks and Internets -- Module 5 2 Spring, Copyright All rights reserved.

Topics. Computer Networks and Internets -- Module 5 2 Spring, Copyright All rights reserved. Topics Internet concept an architecture Internet aressing Internet Protocol packets (atagrams) Datagram forwaring Aress resolution Error reporting mechanism Configuration Network aress translation Computer

More information

Using Vector and Raster-Based Techniques in Categorical Map Generalization

Using Vector and Raster-Based Techniques in Categorical Map Generalization Thir ICA Workshop on Progress in Automate Map Generalization, Ottawa, 12-14 August 1999 1 Using Vector an Raster-Base Techniques in Categorical Map Generalization Beat Peter an Robert Weibel Department

More information

Loop Scheduling and Partitions for Hiding Memory Latencies

Loop Scheduling and Partitions for Hiding Memory Latencies Loop Scheuling an Partitions for Hiing Memory Latencies Fei Chen Ewin Hsing-Mean Sha Dept. of Computer Science an Engineering University of Notre Dame Notre Dame, IN 46556 Email: fchen,esha @cse.n.eu Tel:

More information

PERFECT ONE-ERROR-CORRECTING CODES ON ITERATED COMPLETE GRAPHS: ENCODING AND DECODING FOR THE SF LABELING

PERFECT ONE-ERROR-CORRECTING CODES ON ITERATED COMPLETE GRAPHS: ENCODING AND DECODING FOR THE SF LABELING PERFECT ONE-ERROR-CORRECTING CODES ON ITERATED COMPLETE GRAPHS: ENCODING AND DECODING FOR THE SF LABELING PAMELA RUSSELL ADVISOR: PAUL CULL OREGON STATE UNIVERSITY ABSTRACT. Birchall an Teor prove that

More information

Figure 1: Schematic of an SEM [source: ]

Figure 1: Schematic of an SEM [source:   ] EECI Course: -9 May 1 by R. Sanfelice Hybri Control Systems Eelco van Horssen E.P.v.Horssen@tue.nl Project: Scanning Electron Microscopy Introuction In Scanning Electron Microscopy (SEM) a (bunle) beam

More information

PART 2. Organization Of An Operating System

PART 2. Organization Of An Operating System PART 2 Organization Of An Operating System CS 503 - PART 2 1 2010 Services An OS Supplies Support for concurrent execution Facilities for process synchronization Inter-process communication mechanisms

More information

CS269I: Incentives in Computer Science Lecture #8: Incentives in BGP Routing

CS269I: Incentives in Computer Science Lecture #8: Incentives in BGP Routing CS269I: Incentives in Computer Science Lecture #8: Incentives in BGP Routing Tim Roughgaren October 19, 2016 1 Routing in the Internet Last lecture we talke about elay-base (or selfish ) routing, which

More information

Local Path Planning with Proximity Sensing for Robot Arm Manipulators. 1. Introduction

Local Path Planning with Proximity Sensing for Robot Arm Manipulators. 1. Introduction Local Path Planning with Proximity Sensing for Robot Arm Manipulators Ewar Cheung an Vlaimir Lumelsky Yale University, Center for Systems Science Department of Electrical Engineering New Haven, Connecticut

More information

A Multi-class SVM Classifier Utilizing Binary Decision Tree

A Multi-class SVM Classifier Utilizing Binary Decision Tree Informatica 33 (009) 33-41 33 A Multi-class Classifier Utilizing Binary Decision Tree Gjorgji Mazarov, Dejan Gjorgjevikj an Ivan Chorbev Department of Computer Science an Engineering Faculty of Electrical

More information

Using Ray Tracing for Site-Specific Indoor Radio Signal Strength Analysis 1

Using Ray Tracing for Site-Specific Indoor Radio Signal Strength Analysis 1 Using Ray Tracing for Site-Specific Inoor Raio Signal Strength Analysis 1 Michael Ni, Stephen Mann, an Jay Black Computer Science Department, University of Waterloo, Waterloo, Ontario, NL G1, Canaa Abstract

More information

6.823 Computer System Architecture. Problem Set #3 Spring 2002

6.823 Computer System Architecture. Problem Set #3 Spring 2002 6.823 Computer System Architecture Problem Set #3 Spring 2002 Stuents are strongly encourage to collaborate in groups of up to three people. A group shoul han in only one copy of the solution to the problem

More information

Distributed Line Graphs: A Universal Technique for Designing DHTs Based on Arbitrary Regular Graphs

Distributed Line Graphs: A Universal Technique for Designing DHTs Based on Arbitrary Regular Graphs IEEE TRANSACTIONS ON KNOWLEDE AND DATA ENINEERIN, MANUSCRIPT ID Distribute Line raphs: A Universal Technique for Designing DHTs Base on Arbitrary Regular raphs Yiming Zhang an Ling Liu, Senior Member,

More information

Transient analysis of wave propagation in 3D soil by using the scaled boundary finite element method

Transient analysis of wave propagation in 3D soil by using the scaled boundary finite element method Southern Cross University epublications@scu 23r Australasian Conference on the Mechanics of Structures an Materials 214 Transient analysis of wave propagation in 3D soil by using the scale bounary finite

More information

How to Make E-cash with Non-Repudiation and Anonymity

How to Make E-cash with Non-Repudiation and Anonymity How to Make E-cash with Non-Repuiation an Anonymity Ronggong Song an Larry Korba Institute for Information Technology National Research Council of Canaa Ottawa, Ontario K1A 0R6, Canaa {Ronggong.Song, Larry.Korba}@nrc.ca

More information

Variable Independence and Resolution Paths for Quantified Boolean Formulas

Variable Independence and Resolution Paths for Quantified Boolean Formulas Variable Inepenence an Resolution Paths for Quantifie Boolean Formulas Allen Van Geler http://www.cse.ucsc.eu/ avg University of California, Santa Cruz Abstract. Variable inepenence in quantifie boolean

More information

Compiler Design. Computer Science & Information Technology (CS) Rank under AIR 100

Compiler Design. Computer Science & Information Technology (CS) Rank under AIR 100 GATE- 2016-17 Postal Correspondence 1 Compiler Design Computer Science & Information Technology (CS) 20 Rank under AIR 100 Postal Correspondence Examination Oriented Theory, Practice Set Key concepts,

More information

Interior Permanent Magnet Synchronous Motor (IPMSM) Adaptive Genetic Parameter Estimation

Interior Permanent Magnet Synchronous Motor (IPMSM) Adaptive Genetic Parameter Estimation Interior Permanent Magnet Synchronous Motor (IPMSM) Aaptive Genetic Parameter Estimation Java Rezaie, Mehi Gholami, Reza Firouzi, Tohi Alizaeh, Karim Salashoor Abstract - Interior permanent magnet synchronous

More information

Bends, Jogs, And Wiggles for Railroad Tracks and Vehicle Guide Ways

Bends, Jogs, And Wiggles for Railroad Tracks and Vehicle Guide Ways Ben, Jogs, An Wiggles for Railroa Tracks an Vehicle Guie Ways Louis T. Klauer Jr., PhD, PE. Work Soft 833 Galer Dr. Newtown Square, PA 19073 lklauer@wsof.com Preprint, June 4, 00 Copyright 00 by Louis

More information

A Plane Tracker for AEC-automation Applications

A Plane Tracker for AEC-automation Applications A Plane Tracker for AEC-automation Applications Chen Feng *, an Vineet R. Kamat Department of Civil an Environmental Engineering, University of Michigan, Ann Arbor, USA * Corresponing author (cforrest@umich.eu)

More information

Compilers and Code Optimization EDOARDO FUSELLA

Compilers and Code Optimization EDOARDO FUSELLA Compilers and Code Optimization EDOARDO FUSELLA The course covers Compiler architecture Pre-requisite Front-end Strong programming background in C, C++ Back-end LLVM Code optimization A case study: nu+

More information

CS131: Programming Languages and Compilers. Spring 2017

CS131: Programming Languages and Compilers. Spring 2017 CS131: Programming Languages and Compilers Spring 2017 Course Information Instructor: Fu Song Office: Room 1A-504C, SIST Building Email: songfu@shanghaitech.edu.cn Class Hours : Tuesday and Thursday, 8:15--9:55

More information

Supporting Fully Adaptive Routing in InfiniBand Networks

Supporting Fully Adaptive Routing in InfiniBand Networks XIV JORNADAS DE PARALELISMO - LEGANES, SEPTIEMBRE 200 1 Supporting Fully Aaptive Routing in InfiniBan Networks J.C. Martínez, J. Flich, A. Robles, P. López an J. Duato Resumen InfiniBan is a new stanar

More information

Solution Representation for Job Shop Scheduling Problems in Ant Colony Optimisation

Solution Representation for Job Shop Scheduling Problems in Ant Colony Optimisation Solution Representation for Job Shop Scheuling Problems in Ant Colony Optimisation James Montgomery, Carole Faya 2, an Sana Petrovic 2 Faculty of Information & Communication Technologies, Swinburne University

More information

Structure of a compiler. More detailed overview of compiler front end. Today we ll take a quick look at typical parts of a compiler.

Structure of a compiler. More detailed overview of compiler front end. Today we ll take a quick look at typical parts of a compiler. More detailed overview of compiler front end Structure of a compiler Today we ll take a quick look at typical parts of a compiler. This is to give a feeling for the overall structure. source program lexical

More information

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Objective PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Explain what is meant by compiler. Explain how the compiler works. Describe various analysis of the source program. Describe the

More information

Experion PKS R500 Migration Planning Guide

Experion PKS R500 Migration Planning Guide Experion PKS R500 Migration Planning Guie EPDOC-XX70-en-500E May 2018 Release 500 Document Release Issue Date EPDOC-XX70- en-500e 500 0 May 2018 Disclaimer This ocument contains Honeywell proprietary information.

More information

SURVIVABLE IP OVER WDM: GUARANTEEEING MINIMUM NETWORK BANDWIDTH

SURVIVABLE IP OVER WDM: GUARANTEEEING MINIMUM NETWORK BANDWIDTH SURVIVABLE IP OVER WDM: GUARANTEEEING MINIMUM NETWORK BANDWIDTH Galen H Sasaki Dept Elec Engg, U Hawaii 2540 Dole Street Honolul HI 96822 USA Ching-Fong Su Fuitsu Laboratories of America 595 Lawrence Expressway

More information

9/5/17. The Design and Implementation of Programming Languages. Compilation. Interpretation. Compilation vs. Interpretation. Hybrid Implementation

9/5/17. The Design and Implementation of Programming Languages. Compilation. Interpretation. Compilation vs. Interpretation. Hybrid Implementation Language Implementation Methods The Design and Implementation of Programming Languages Compilation Interpretation Hybrid In Text: Chapter 1 2 Compilation Interpretation Translate high-level programs to

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Compiler Design

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Compiler Design i About the Tutorial A compiler translates the codes written in one language to some other language without changing the meaning of the program. It is also expected that a compiler should make the target

More information

Pioneering Compiler Design

Pioneering Compiler Design Pioneering Compiler Design NikhitaUpreti;Divya Bali&Aabha Sharma CSE,Dronacharya College of Engineering, Gurgaon, Haryana, India nikhita.upreti@gmail.comdivyabali16@gmail.com aabha6@gmail.com Abstract

More information

Considering bounds for approximation of 2 M to 3 N

Considering bounds for approximation of 2 M to 3 N Consiering bouns for approximation of to (version. Abstract: Estimating bouns of best approximations of to is iscusse. In the first part I evelop a powerseries, which shoul give practicable limits for

More information

Impact of cache interferences on usual numerical dense loop. nests. O. Temam C. Fricker W. Jalby. University of Leiden INRIA University of Versailles

Impact of cache interferences on usual numerical dense loop. nests. O. Temam C. Fricker W. Jalby. University of Leiden INRIA University of Versailles Impact of cache interferences on usual numerical ense loop nests O. Temam C. Fricker W. Jalby University of Leien INRIA University of Versailles Niels Bohrweg 1 Domaine e Voluceau MASI 2333 CA Leien 78153

More information

COMP 181 Compilers. Administrative. Last time. Prelude. Compilation strategy. Translation strategy. Lecture 2 Overview

COMP 181 Compilers. Administrative. Last time. Prelude. Compilation strategy. Translation strategy. Lecture 2 Overview COMP 181 Compilers Lecture 2 Overview September 7, 2006 Administrative Book? Hopefully: Compilers by Aho, Lam, Sethi, Ullman Mailing list Handouts? Programming assignments For next time, write a hello,

More information

Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful?

Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful? Chapter 1 :: Introduction Introduction Programming Language Pragmatics Michael L. Scott Why are there so many programming languages? evolution -- we've learned better ways of doing things over time socio-economic

More information

PART 5. Process Coordination And Synchronization

PART 5. Process Coordination And Synchronization PART 5 Process Coorination An Synchronization CS 503 - PART 5 1 2010 Location Of Process Coorination In The Xinu Hierarchy CS 503 - PART 5 2 2010 Coorination Of Processes Necessary in a concurrent system

More information

Software Reliability Modeling and Cost Estimation Incorporating Testing-Effort and Efficiency

Software Reliability Modeling and Cost Estimation Incorporating Testing-Effort and Efficiency Software Reliability Moeling an Cost Estimation Incorporating esting-effort an Efficiency Chin-Yu Huang, Jung-Hua Lo, Sy-Yen Kuo, an Michael R. Lyu -+ Department of Electrical Engineering Computer Science

More information

Change Patterns and Change Support Features in Process-Aware Information Systems

Change Patterns and Change Support Features in Process-Aware Information Systems hange Patterns an hange Support eatures in -Aware Information Systems arbara Weber 1,, Stefanie Rinerle 2, an Manfre Reichert 3 1 Quality ngineering Research Group, University of Innsbruck, Austria arbara.weber@uibk.ac.at

More information

Algorithm for Intermodal Optimal Multidestination Tour with Dynamic Travel Times

Algorithm for Intermodal Optimal Multidestination Tour with Dynamic Travel Times Algorithm for Intermoal Optimal Multiestination Tour with Dynamic Travel Times Neema Nassir, Alireza Khani, Mark Hickman, an Hyunsoo Noh This paper presents an efficient algorithm that fins the intermoal

More information

Introduction to Compiler Design

Introduction to Compiler Design Introduction to Compiler Design Lecture 1 Chapters 1 and 2 Robb T. Koether Hampden-Sydney College Wed, Jan 14, 2015 Robb T. Koether (Hampden-Sydney College) Introduction to Compiler Design Wed, Jan 14,

More information

Enabling Rollback Support in IT Change Management Systems

Enabling Rollback Support in IT Change Management Systems Enabling Rollback Support in IT Change Management Systems Guilherme Sperb Machao, Fábio Fabian Daitx, Weverton Luis a Costa Coreiro, Cristiano Bonato Both, Luciano Paschoal Gaspary, Lisanro Zambeneetti

More information

Backpressure-based Packet-by-Packet Adaptive Routing in Communication Networks

Backpressure-based Packet-by-Packet Adaptive Routing in Communication Networks 1 Backpressure-base Packet-by-Packet Aaptive Routing in Communication Networks Eleftheria Athanasopoulou, Loc Bui, Tianxiong Ji, R. Srikant, an Alexaner Stoylar arxiv:15.4984v1 [cs.ni] 27 May 21 Abstract

More information

MODULE II. Network Programming And Applications

MODULE II. Network Programming And Applications MODULE II Network Programming An Applications Computer Networks an Internets -- Moule 2 1 Spring, 2014 Copyright 2014. All rights reserve. Topics Internet services an communication paraigms Client-server

More information

Animated Surface Pasting

Animated Surface Pasting Animate Surface Pasting Clara Tsang an Stephen Mann Computing Science Department University of Waterloo 200 University Ave W. Waterloo, Ontario Canaa N2L 3G1 e-mail: clftsang@cgl.uwaterloo.ca, smann@cgl.uwaterloo.ca

More information

+ E. Bit-Alignment for Retargetable Code Generators * 1 Introduction A D T A T A A T D A A. Keen Schoofs Gert Goossens Hugo De Mant

+ E. Bit-Alignment for Retargetable Code Generators * 1 Introduction A D T A T A A T D A A. Keen Schoofs Gert Goossens Hugo De Mant Bit-lignment for Retargetable Coe Generators * Keen Schoofs Gert Goossens Hugo e Mant IMEC, Kapelreef 75, B-3001 Leuven, Belgium bstract When builing a bit-true retargetable compiler, every signal type

More information

INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM

INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM Charles S. Saxon, Eastern Michigan University, charles.saxon@emich.edu ABSTRACT Incorporating advanced programming

More information

Parsing II Top-down parsing. Comp 412

Parsing II Top-down parsing. Comp 412 COMP 412 FALL 2018 Parsing II Top-down parsing Comp 412 source code IR Front End Optimizer Back End IR target code Copyright 2018, Keith D. Cooper & Linda Torczon, all rights reserved. Students enrolled

More information

Finite Automata Implementations Considering CPU Cache J. Holub

Finite Automata Implementations Considering CPU Cache J. Holub Finite Automata Implementations Consiering CPU Cache J. Holub The finite automata are mathematical moels for finite state systems. More general finite automaton is the noneterministic finite automaton

More information

LECTURE NOTES ON COMPILER DESIGN P a g e 2

LECTURE NOTES ON COMPILER DESIGN P a g e 2 LECTURE NOTES ON COMPILER DESIGN P a g e 1 (PCCS4305) COMPILER DESIGN KISHORE KUMAR SAHU SR. LECTURER, DEPARTMENT OF INFORMATION TECHNOLOGY ROLAND INSTITUTE OF TECHNOLOGY, BERHAMPUR LECTURE NOTES ON COMPILER

More information

How to Link your Accounts at Morgan Stanley

How to Link your Accounts at Morgan Stanley How to Link your Accounts at Morgan Stanley This guie explains how to link your accounts at Morgan Stanley for streamline online access to your shares an cash. At Morgan Stanley, your shares an cash are

More information

MODULE V. Internetworking: Concepts, Addressing, Architecture, Protocols, Datagram Processing, Transport-Layer Protocols, And End-To-End Services

MODULE V. Internetworking: Concepts, Addressing, Architecture, Protocols, Datagram Processing, Transport-Layer Protocols, And End-To-End Services MODULE V Internetworking: Concepts, Aressing, Architecture, Protocols, Datagram Processing, Transport-Layer Protocols, An En-To-En Services Computer Networks an Internets -- Moule 5 1 Spring, 2014 Copyright

More information