A Teleo-Reactive Architecture for Fast, Reactive and Robust Control of Mobile Robots

Size: px
Start display at page:

Download "A Teleo-Reactive Architecture for Fast, Reactive and Robust Control of Mobile Robots"

Transcription

1 A Teleo-Reactive Architecture for Fast, Reactive and Robust Control of Mobile Robots Gerhard Gubisch, Gerald Steinbauer, Martin Weiglhofer, and Franz Wotawa Institute for Software Technology, Graz University of Technology Inffeldgasse 16b/II, A-8010 Graz, Austria Abstract. One of the elementary tasks of an autonomous mobile robot is the execution of different behavior patterns in order to fulfill a given task. The complexity of this problem is especially high if the robot operates in a dynamic, unpredictable environment and requires the parallel control of multiple actuators. In this paper we present a novel architecture for robust and fast mobile robot control. The architecture is based on Teleo-Reactive Programs. We discuss the benefits and drawbacks of such programs, extend the basic definition for the parallel control of multiple actuators, and propose a new language and a compiler for extended Teleo-Reactive Programs. These tools simplify the creation of new behavior patterns and increase the runtime performance. Finally, we discuss implementation issues of the architecture when applying it to RoboCup Middle-Size soccer robots. Key words: autonomous agents, control architecture, teleo-reactive programs, parallel actions, teleo-reactive program compilation 1 Introduction The execution of different behavior patterns in order to achieve a given task is one of the fundamental prerequisites of an autonomous mobile robot. Once a robot has derived a plan to achieve its task, some mechanism is needed to execute the plan. Such a mechanism has to be flexible in order to allow the execution of different plans, sub-plans or behavior patterns. This requires an appropriate description or programming language. In addition, the mechanism has to be robust against failure. Even in situations which are new to the robot, the execution of behavior patterns should not fail. There is a great number of proposed mechanisms to organize, structure and describe the task execution of autonomous robots. On the highest level these mechanisms can be divided into three major groups: (1) the reactive paradigm, (2) the deliberative paradigm and (3) the hybrid paradigm. Mechanisms of the first group commonly use sets of simple reactive behavior and setup more complex behavior patterns by blending these simple ones. The advantage of these Authors are listed in alphabetical order.

2 mechanisms is their quick response to changes in the sensory input. The second group uses planning and reasoning capabilities in order to derive sequential plans. Mechanisms of this group are able to handle very complex tasks but suffer from performance issues when deriving appropriate plans. The last group merges the advantages of the first two. It provides fast reaction on sensory input and the capability to plan in domains of greater complexity. In this paper we present a framework to organize and execute behavior patterns in a flexible and robust way using the hybrid paradigm. The organization of the reactive part is based on Teleo-Reactive (TR) Programs proposed by Nilsson [1]. TR-Programs are ordered lists of condition-action pairs, which ensure robustness in dynamic environments. Because basic TR-Programs are not able to deal with parallel actions, we introduce extended TR-Programs. Such TR-Programs serve as actions for a higher-level planning module. In order to improve the runtime performance and ease the use of extended TR-Programs we define a description language for the TR-Programs. Furthermore we show how a compiler can convert an extended TR-Program into native C++ code. This paper continues as follows: In the next section we discuss TR-Programs and introduce extended TR-Programs. In Section 3 we present the design of the proposed framework, our language for extended TR-Programs and a compiler for converting extended TR-Programs to C++. Section 4 discusses an implementation of the framework for our RoboCup Middle-Size soccer robots. Section 5 shows an overview of related research. Finally, we draw our conclusions in Section 6. 2 Teleo-Reactive Programs Teleo-Reactive Programs are a formalism to control mobile robots in dynamic environments. They address the problem of plan execution in a real world environment. In such dynamic environments the effect of an executed action may be changed or canceled by exogenous events. Thus, the execution of a plan will fail if the control software of the robot relies on the successful execution of an action. Teleo-Reactive Programs provide a solution to this problem. According to [1] a Teleo-Reactive Sequence is an ordered set of production rules, where K i denotes a first order logic condition and a i denotes an executable action: K 1 a 1,...,K i a i,...,k m a m. Formally a Teleo-Reactive Program can be defined as follows: Definition 1 (Teleo-Reactive Sequence) A Teleo-Reactive Sequence τ is a finite ordered list of m condition-action pairs (K i,a i ) with i {1,...,m} and a i A where A = A disc A dura T S is the union of the disjoint sets of discrete actions A disc, durative actions A dura and all Teleo-Reactive Sequences T S: τ = (K 1,a 1 ),...,(K i,a i ),...,(K m,a m )

3 Definition 2 (Teleo-Reactive Program) A Teleo-Reactive Program is a Teleo- Reactive Sequence with variables. When the sequence is called, the variables are bound to either constant values or to entities that are computed continuously. The execution of such a sequence is simple. The interpreter scans the production rules from left to right. It chooses an action for execution if the according condition is the first one which is satisfied. TR-Sequences can be organized hierarchically, i.e. the actions a i of a TR-Sequence can be Teleo-Reactive Sequences themselves. The primitive actions of a TR-Sequence can be either discrete or durative. A durative action a i is executed continuously as long as K i remains the first true condition in the list. In contrast to that, a discrete action is called once, as soon as the first true condition in the list is the action s condition. Assume, that S holds the initial truth values of the predicates which are used to formulate the conditions. effect(a i ) returns the effect in terms of predicate truth values when executing action a i. A B = B {l l A l / B} represents a state update operator and Φ(K i,s) = ( j<i K j S) K i S represents the condition check. obs() denotes a function which returns the currently observed state. Then the formal semantics of a Teleo-Reactive Sequence τ = (K 1,a 1 ),...,(K i,a i ),...,(K m,a m ) is given as follows (where denotes the interpretation function): τ (S) = (K 1,a 1 ),...,(K m,a m ) ( (K i,a i ) (S)) if Φ(K i,s) a i (S) if a i T S (K i,a i ) (S) = a i disc (S) if a i A disc (K i,a i ) dura (S) if a i A dura { S if effect(a i ) S Φ(K i,s) (K i,a i ) dura (S) = (K i,a i ) dura ( a i dura ) otherwise a i disc (S) = S effect(a i ) a i dura (S) = S obs() The robustness of the execution of TR-Programs comes from two properties. The regression property ensures that the conditions in the list are regressive. That means, that each action a i should activate a condition K j with j < i. The regression property ensures that the agent proceeds towards the goal. A TR- Program is complete if the disjunction of all condition forms a tautology, which ensures, that there is always one action that can be executed. A TR-Program which has both properties is called a universal TR-Program. Beside the advantages of TR-Programs there is one major drawback that comes with the original formalism, which is the lack of support for simultaneous action execution. Assume the two scenarios illustrated in Figure 1. The appliance of TR-Programs will fail if an agent has to start action a i at time t while the currently active action a j should not be stopped before t with t > t. For example action a 2 runs simultaneously with action a 1 between t 1 and t 2 in Figure 1. One practical example of such a setting is a robot equipped with a gripper operating

4 Fig. 1. Example of the simultaneous action problem. in a ware-house environment. The task of the robot is to pick up packages from a moving conveyor belt. While the robot waits for the package it pre-positions its gripper (action a 1 ). If the package appears on the conveyor belt the robot starts moving parallel to the package (action a 2 ) and simultaneously grabbing the object of interest. When the packages has been taken, the gripper can be frozen (time t 2 ) while the robot drives towards it final position (action a 2 ). Another problematic setting is, if action a j should be started at time t 1 and stopped at t 2 while action a i is active all the time (e.g. a 3 and a 4 in Figure 1). That is, for example if a soccer robot should dribble (action a 3 ) and kick (action a 4 ). If the robot stops dribbling in order to prepare kicking, the ball will roll away from the robot. Thus, the robot has to kick while it concurrently dribbles. 2.1 Extended Teleo-Reactive Programs To address the problem of simultaneous action execution we extend the basic definition of a TR-Programs. Therefore, we introduce an additional operator that can be used within the action parts of a TR-Sequence. Definition 3 (Parallel Composition Operator) Given two actions a i and a j with i j, then the composition with the -operator a i a j is again a valid action denoting the parallel execution of the two actions. The parallel execution of actions a i and a j still has to satisfy the regression property. In the following we will write A i to denote either a single action a i or a parallel composition of n actions a i1 a i2... a in. We use lower case letters a i for single actions. A denotes the set of all actions. Definition 4 (Extended Teleo-Reactive Sequence) An extended Teleo-Reactive Sequence τ e is a finite ordered list of m condition-action pairs (K i,a i ) where A i = a i a i A or A i = a i1... a in with j=1...n a ij A. The semantics of an extended Teleo-Reactive Sequence is given by e. Definition 5 An extended Teleo-Reactive Program is an extended Teleo-Reactive Sequence with variables. When the sequence is called, the variables are bound to either constant values or to entities that are computed continuously.

5 The use of the -operator extends the semantics for a Teleo-Reactive Sequence τ e to the semantics e as follows: τ e e (S) = (K 1,A 1 ),...,(K m,a m ) e ( (K i,a i ) e (S)) if Φ(K i,s) (K i,a i ) e (S) = a i A i (K i,a i ) (S) Note, that any basic Teleo-Reactive Program can be interpreted by e. Thus, the set of all basic Teleo-Reactive Programs T RP is a subset of all extended Teleo-Reactive Programs T RP ext, i.e., T RP T RP ext. An extended Teleo-Reactive Program encoding the action sequence of Figure 1 looks like following: K e a 3, K d a 3 a 4, K c a 3, K b a 2, K a a 1 a 2, true a 1 Extended TR-Programs are appropriate for the description of the behavior of a robot for a wide range of tasks. But there are two issues that have to be solved when applying TR-Programs for mobile robot control. First, for complex high level tasks some deliberative component is needed in order to enable the robot to fulfil the task. TR-Programs are valuable for the execution of the behavior but the gap to the deliberative component has to be filled. Second, the execution of Teleo-Reactive Programs must be fast such that reactions to changes in the environment are taken into account immediately. We will now introduce a framework for mobile robot control, which addresses these two issues. 3 Organization and Specification of Behaviors Fig. 2. Schematic overview of the proposed framework. Figure 2 shows an overview of our architecture for robust control of mobile robots. The central elements within this architecture are extended Teleo-Reactive Programs that are translated to native C++ code. During the runtime a high

6 level planning module selects the currently best Teleo-Reactive Program for a given situation from a list of predefined TR-Programs. Thus, the Teleo-Reactive Programs are actions for a high level planning module. The Teleo-Reactive compiler uses predicates, actions and algorithms, and translates a given extended Teleo-Reactive Program into C++. This code is compiled by a standard C++-Compiler into executable object code and linked into the robot control software. The translation of extended TR-Programs from a native language to object code has two major advantages. First, it simplifies the process of writing a extended Teleo-Reactive Program where the programmer does not have to care about complex features of modern programming languages. Second, we have experienced a significant improvement in the run-time performance when executing compiled Teleo-Reactive Programs instead of interpreting Teleo-Reactive Programs. The reasoning within the TR-Program happens over values from the configuration, over data from the world model and over parameters retrieved from the planning module. Every durative action is implemented in a separate flow of control, i.e., a separate thread. The action-interfaces used by the TR compiler communicate with that thread by sending start commands and stop commands with parameters. Beside the advantage of having several actions executed simultaneously, this separation of actions has an additional benefit: Because there is only one instance of every action, the action can remember previous parameter values and can benefit from the history of parameters. 3.1 Teleo-Reactive Program/C++ Transformation Algorithm 3 translates any non-hierarchical extended Teleo-Reactive Program into a C++ program. An example is illustrated in Figure 4. As Figure 4 shows, function transform( (K 1, A 1),..., (K m, A m) ) A := S i=1,...,m Ai; writeln "void main() { while(true) evaluate(); }" writeln "void evaluate() {" for i = 1 to m do writeln "if (K i) {" for all a j A \ A i do writeln "a j.stop();" done for all a k A i do writeln "a k.start();" done writeln "return; }" done writeln "}" Fig. 3. Algorithm for the translation of extended Teleo-Reactive Programs into C++. the resulting C++ code consists of two functions. The main loop calls the evaluate function continuously. The evaluate function contains a list of if-then statements. Each condition-action pair corresponds to one if-then-statement.

7 The condition of a (K i,a i )-tuple forms the condition in the if-clause. The thenbranch is built by starting and stopping the actions of A i (functions start() and stop()). These functions start and stop durative actions in a separate thread. Note, that the functions are called multiple times, where the parameters to those functions may be changed. Thus, start functions should start the thread only if it is not running yet. If the thread is already running, the functions should only exchange the old parameters with the new ones. For discrete actions, the start function runs the action once and refuses execution if called multiple times until the stop function has been invoked. The resulting C++ program does not interrupt durative actions and start them immediately again, which would break a continuous execution. Thus the C++ program starts an action a i for a conditionaction pair (K i,a i ) if a i A i. An action a j is stopped in the then-branch of a condition-action pair (K k,a k ) iff a j A k.from the semantical point of view, Scored nil, InRange(Goal) DribbleTo(Goal) Kick(), true DribbleTo(Goal) void main() { while(true) evaluate(); } void evaluate() { if(scored.eval()){dribbleto.stop();kick.stop();return;} if(inrange.eval(goal)){dribbleto.start(goal);kick.start();return;} if(true){dribbleto.start(goal);kick.stop();return;} } Fig. 4. Translation of an extended Teleo-Reactive Program for a scoring behavior (top) into C++ code (bottom). the two versions of TR-Programs in Figure 4 are equivalent. Both versions of the TR-Program will execute A i if ( j<i K j ) K i. If the Teleo-Reactive Program is complete, i.e., K 1 K 2 K i K m is a tautology, there will be always one action that is selected for execution in both versions of the TR-Program. If the Teleo-Reactive Program satisfies the regression property, the C++ version will satisfy this property as well, because we do not change the order of the condition-action pairs. 3.2 Teleo-Reactive Language In this section we propose a programming language for TR-Programs, which is related to the imperative programming paradigm. According to the grammar of Figure 5, a TR-Program comprises two sections. One section contains the global variables, i.e., variables that are used as parameters in conditions or in more than one action block. The other section comprises the list of conditionaction pairs that forms the body of the TR-Program. Conditions are built by combining the predicates of the control framework with the boolean operators and, or and not. In contrast to the Teleo-Reactive Language defined in [2], this grammar provides a more flexible form of writing actions. Instead of having a single object which is called for execution, an action is built by a code block. This code block can either be the name of one of the basic actions, or it can be a

8 program ::= TR-PROGRAM : globals section tr stmt section globals section ::= GLOBAL : ( var decl+ ǫ ) var decl ::= type id = param expr ; param expr ::= float integer string param funcall var param ::= object(id) param(id) config(id(.id)*) random(paramlist) tr stmt section ::= TELEO-REACTIVE : tr stmt+ tr stmt ::= task name : condition : action* ; condition ::= predicate ((and or) predicate)* predicate ::= true false (! ǫ) funcall (! ǫ) ( condition ) action ::= var decl function call; funcall ::= id ( paramlist ǫ ) paramlist ::= param expr (, param expr )* Fig. 5. Grammar of the Teleo-Reactive language. code block that uses algorithms, local variables and action objects. An algorithm does not execute any action but calculates parameters needed by some action. This is, why we propose to split up actions and algorithms. Each action and each algorithm should provide an atomic piece of operation. In that way new behavior can be composed without adding new functionality to the framework. In addition, the modular action block allows to use more than one basic action within such a block. The given basic actions are executed in parallel using the semantics of extended Teleo-Reactive Programs. 4 Applying the Framework to Mobile Soccer Robots This section discusses an implementation of the proposed architecture for our RoboCup Middle-Size soccer robots. The planning module of Figure 2 is realized as a hierarchical state machine, which uses extended TR-Programs as actions. One extended TR-Program is mapped to one C++ class. The list of if-then statements is encoded in an execute method. The main loop which calls this execute method is located in a controller class. This controller is responsible for switching between TR-Programs selected by the hierarchical state machine. Our compiler 1 is implemented in C++ using of the Boost Spirit Library 2 for parsing, and implements simple type checking. For our mobile soccer robots, the framework is currently equipped with two predicates (IsAtPosition(pos) and IsAtScoringPosition()), two actions (GotoPosition(pos) and KickTheBall), and the four algorithms (Scanline: calculate a heading of the robot, where there is a maximum distance along the soccer field width between two obstacles, CalcKickerParams: determine currently optimal kick strength, CalcStrategicPosition: calculate a global position and a heading, which is strategically advantageous based on the work of [3], CalcGrabBallPosition: calculate position and heading for graping the ball such that the robot does not push the ball out of the field, CalcGoalBlockingPosition: calculates an intercept position for the goalkeeper if the ball rolls towards the goal)

9 Currently we use 15 different teleo-reactive programs for our RoboCup Middle- Size soccer robots. The average number of used condition-action pairs is 2.13 per TR-program. At maximum we use 4 condition-action pairs per TR-program. The smallest TR-program, which prevents the robot from doing anything (i.e. the idle TR-program) comprises only one condition-action pair. In four cases we make use of parallel actions. These TR-programs are basically all programs where some ball handling actions are involved. 5 Related Research Brooks proposed in [4] to blend simple behaviors, which provide a fast coupling of sensors and actuators, in order to get more complex behaviors. The basic behaviors are always active, receive their sensory input and immediately calculate their desired output for the actuators. An arbiter takes care about which output or which mixture of outputs are feed to the actuators. In difference to that, extended Teleo-Reactive programs only execute actions concurrently if required. Furthermore, the outcome of the actions are not merged by the use of an arbiter. The Miro robot software framework provides a so called BAP framework in order to organize and execute behaviors [5]. The framework allows to arrange continuous and event-driven behaviors into behavior patterns and to blend the individual behaviors trough the use of different arbiters. The authors of [6] presented an approach for robust plan execution in dynamic environments. The approach is based on a hybrid architecture and uses classical STRIPS planning. The behavioral level is organized using the framework of Miro. The robustness of the plan execution derives from the use of plan invariants, which are conditions that have to be true throughout the execution of the entire plan. Such condition can be used to monitor plan execution in order to detect infeasible or faulty plans. In [7] Beetz presented a control architecture for mobile robots, which comprises a plan-based high-level control. The controller monitors the execution of plans by the use of prediction models of the behavior of actions. In the case of a problem the controller can react by modifying plans on the fly. Furthermore, the controller is able to execute concurrent plans and may postpone the execution of plans until some conditions are satisfied again. In [8] Nilsson proposed the triple-tower architecture for the control of autonomous robots. The architecture is guided by the hybrid paradigm and comprises three towers for sensing, reasoning and acting. The acting tower is responsible for the execution of behaviors and comprises one or more TR-Programs. The higher level decision process is implemented by the reasoning tower which performs logical reasoning about the state of the world and the agents task. The Task Description Language (TDL) proposed by Simmons [9] is a tasklevel programming language for robots. It is a extension to the C++ language and supports task decomposition, synchronization and exception handling. The authors provide a compiler to convert the TDL program into a native C++ code.

10 6 Conclusion In this paper we have presented a novel architecture for fast, reactive and robust control of mobile robots. The architecture is based on an extension of TR- Programs. Beside the benefits of basic TR-Programs, extended TR-Programs allow the robust execution of concurrent actions. Furthermore, we introduced a description language for extended TR-Programs and showed how to transform extended TR-Programs to native C++ code. We have implemented the proposed architecture for our autonomous mobile soccer robots which led to promising results. By the use of this architecture our robots are able to react fast to changes in the environment. The main advantages of our architecture based on compiled extended TR-Programs can be summarized as: Fast and robust execution: Because of the indirect compilation to object code the time consumed by program management during the execution of TR-Programs is negligibly small. The execution is robust in highly dynamic environments, where exogenous events may cancel effects of actions. Simultaneous actions: Our approach is able to control multiple actuators in parallel by executing actions simultaneously. Simple behavior pattern creation By providing the user an intuitive language it is easy to create new behavior patterns. Further Research Currently, we require that parallel actions do not contradict with each other. We need to investigate in some technique that allows to detect such contradicting actions. References 1. Nilsson, N.J.: Teleo-reactive programs for agent control. JAIR 1 (1994) Nilsson, N.J.: Toward agent programs with circuit semantics. Technical Report STAN-CS , Standford University (1992) 3. Tews, A., Wyeth, G.: Thinking as one: Coordination of multiple mobile robots by shared representations. In: IROS. (2000) Brooks, R.A.: A robust layered control system for a mobile robot. IEEE Jornal of Robotics and Automation RA-2 (1986) Utz, H.: Advanced Software Concepts and Technologies for Autonomous Mobile Robotics. PhD thesis, University of Ulm, Neuroinformatics (2005) 6. Fraser, G., Steinbauer, G., Wotawa, F.: Plan execution in dynamic environments. In: 18th International Conference on Industrial and Engineering Applications of Artificial Intelligence and Expert Systems., Bari, Italy, Springer (2005) Beetz, M.: Plan-Based Control of Robotics Agents, Improving the Capabilities of Autonomous Robots. Volume 2554 of LNAI. Springer (2002) 8. Nilsson, N.J.: Teleo-reactive programs and the triple-tower architecture. Electronic Transactions on Artificial Intelligence 5 (2001) Simmons, R., Apfelbaum, D.: A task description language for robot control. In: Conference on Intelligent Robotics and Systems. (1998)

Evolving Hierarchical and Recursive Teleo-reactive Programs through Genetic Programming

Evolving Hierarchical and Recursive Teleo-reactive Programs through Genetic Programming Evolving Hierarchical and Recursive Teleo-reactive Programs through Genetic Programming Mykel J. Kochenderfer Department of Computer Science Stanford University Stanford, California 94305 mykel@cs.stanford.edu

More information

A multi-threaded architecture for cognitive robotics. Keith Clark Imperial College London

A multi-threaded architecture for cognitive robotics. Keith Clark Imperial College London A multi-threaded architecture for cognitive robotics Keith Clark Imperial College London Overview of talk Nilsson s Teleo-Reactive (TR) Procedures Simulation demo of TR controlled can collecting robot

More information

Behavior Programming Language and Automated Code Generation for Agent Behavior Control

Behavior Programming Language and Automated Code Generation for Agent Behavior Control Behavior Programming Language and Automated Code Generation for Agent Behavior Control Thuc Vu, Manuela Veloso tdv@andrew.cmu.edu, mmv@cs.cmu.edu Carnegie Mellon University 5000 Forbes Avenue Pittsburgh,

More information

3 No-Wait Job Shops with Variable Processing Times

3 No-Wait Job Shops with Variable Processing Times 3 No-Wait Job Shops with Variable Processing Times In this chapter we assume that, on top of the classical no-wait job shop setting, we are given a set of processing times for each operation. We may select

More information

Evolving Teleo-Reactive Programs for Block Stacking using Indexicals through Genetic Programming

Evolving Teleo-Reactive Programs for Block Stacking using Indexicals through Genetic Programming Evolving Teleo-Reactive Programs for Block Stacking using Indexicals through Genetic Programming Mykel J. Kochenderfer 6 Abrams Court, Apt. 6F Stanford, CA 95 65-97-75 mykel@cs.stanford.edu Abstract This

More information

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions) By the end of this course, students should CIS 1.5 Course Objectives a. Understand the concept of a program (i.e., a computer following a series of instructions) b. Understand the concept of a variable

More information

Intermediate Code Generation

Intermediate Code Generation Intermediate Code Generation In the analysis-synthesis model of a compiler, the front end analyzes a source program and creates an intermediate representation, from which the back end generates target

More information

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered

More information

CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square)

CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) Introduction This semester, through a project split into 3 phases, we are going

More information

2.2 Syntax Definition

2.2 Syntax Definition 42 CHAPTER 2. A SIMPLE SYNTAX-DIRECTED TRANSLATOR sequence of "three-address" instructions; a more complete example appears in Fig. 2.2. This form of intermediate code takes its name from instructions

More information

State Machine Diagrams

State Machine Diagrams State Machine Diagrams Introduction A state machine diagram, models the dynamic aspects of the system by showing the flow of control from state to state for a particular class. 2 Introduction Whereas an

More information

Propositional Logic. Part I

Propositional Logic. Part I Part I Propositional Logic 1 Classical Logic and the Material Conditional 1.1 Introduction 1.1.1 The first purpose of this chapter is to review classical propositional logic, including semantic tableaux.

More information

Lexical Considerations

Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Fall 2005 Handout 6 Decaf Language Wednesday, September 7 The project for the course is to write a

More information

Decaf Language Reference Manual

Decaf Language Reference Manual Decaf Language Reference Manual C. R. Ramakrishnan Department of Computer Science SUNY at Stony Brook Stony Brook, NY 11794-4400 cram@cs.stonybrook.edu February 12, 2012 Decaf is a small object oriented

More information

Complex behavior emergent from simpler ones

Complex behavior emergent from simpler ones Reactive Paradigm: Basics Based on ethology Vertical decomposition, as opposed to horizontal decomposition of hierarchical model Primitive behaviors at bottom Higher behaviors at top Each layer has independent

More information

Movement Prediction from real-world Images using a Liquid State Machine

Movement Prediction from real-world Images using a Liquid State Machine Movement Prediction from real-world Images using a Liquid State Machine Harald Burgsteiner 1, Mark Kröll 2, Alexander Leopold 2, and Gerald Steinbauer 3 1 InfoMed / Health Care Engineering, Graz University

More information

Robotics Programming Laboratory

Robotics Programming Laboratory Chair of Software Engineering Robotics Programming Laboratory Bertrand Meyer Jiwon Shin Lecture 9: Software Architecture in Robotics Control and navigation architecture Serial architecture action Module

More information

ANSI C CODE SYNTHESIS FOR MLDESIGNER FINITE STATE MACHINES

ANSI C CODE SYNTHESIS FOR MLDESIGNER FINITE STATE MACHINES 49. Internationales Wissenschaftliches Kolloquium Technische Universität Ilmenau 27.-30. September 2004 Holger Rath / Horst Salzwedel ANSI C CODE SYNTHESIS FOR MLDESIGNER FINITE STATE MACHINES Abstract

More information

CAMBADA 2016: Team Description Paper

CAMBADA 2016: Team Description Paper CAMBADA 2016: Team Description Paper R. Dias, F. Amaral, J. L. Azevedo, B. Cunha, P. Dias, N. Lau, A. J. R. Neves, E. Pedrosa, A. Pereira, J. Silva and A. Trifan Intelligent Robotics and Intelligent Systems

More information

1 Lexical Considerations

1 Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Decaf Language Thursday, Feb 7 The project for the course is to write a compiler

More information

Software Architecture--Continued. Another Software Architecture Example

Software Architecture--Continued. Another Software Architecture Example Software Architecture--Continued References for Software Architecture examples: Software Architecture, Perspectives on an Emerging Discipline, by Mary Shaw and David Garlin, Prentice Hall, 1996. B. Hayes-Roth,

More information

Lecture 3: Recursion; Structural Induction

Lecture 3: Recursion; Structural Induction 15-150 Lecture 3: Recursion; Structural Induction Lecture by Dan Licata January 24, 2012 Today, we are going to talk about one of the most important ideas in functional programming, structural recursion

More information

Com S 541. Programming Languages I

Com S 541. Programming Languages I Programming Languages I Lecturer: TA: Markus Lumpe Department of Computer Science 113 Atanasoff Hall http://www.cs.iastate.edu/~lumpe/coms541.html TR 12:40-2, W 5 Pramod Bhanu Rama Rao Office hours: TR

More information

Debugging Program Slicing

Debugging Program Slicing Debugging Franz Wotawa Institut für Informationssysteme, Database and Artificial Intelligence Group, Technische Universität Wien Email: wotawa@dbai.tuwien.ac.at 1 What is a Slice? A Slice is a reduced

More information

Automating Test Driven Development with Grammatical Evolution

Automating Test Driven Development with Grammatical Evolution http://excel.fit.vutbr.cz Automating Test Driven Development with Grammatical Evolution Jan Svoboda* Abstract Test driven development is a widely used process of creating software products with automated

More information

Control Structures. Lecture 4 COP 3014 Fall September 18, 2017

Control Structures. Lecture 4 COP 3014 Fall September 18, 2017 Control Structures Lecture 4 COP 3014 Fall 2017 September 18, 2017 Control Flow Control flow refers to the specification of the order in which the individual statements, instructions or function calls

More information

Analysis and Design with the Universal Design Pattern

Analysis and Design with the Universal Design Pattern Analysis and Design with the Universal Design Pattern by Koni Buhrer Software Engineering Specialist Rational Software Developing large software systems is notoriously difficult and unpredictable. Software

More information

NuBot Team Description Paper 2013

NuBot Team Description Paper 2013 NuBot Team Description Paper 2013 Zhiwen Zeng, Dan Xiong, Qinghua Yu, Kaihong Huang, Shuai Cheng, Huimin Lu, Xiangke Wang, Hui Zhang, Xun Li, Zhiqiang Zheng College of Mechatronics and Automation, National

More information

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements. Contemporary Design We have been talking about design process Let s now take next steps into examining in some detail Increasing complexities of contemporary systems Demand the use of increasingly powerful

More information

Mobile robots control architectures

Mobile robots control architectures 1 Mobile robots control architectures Dimitri Popov Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Department Informatik Integriertes Seminar Intelligent Robotics 10 1.

More information

Multi Domain Logic and its Applications to SAT

Multi Domain Logic and its Applications to SAT Multi Domain Logic and its Applications to SAT Tudor Jebelean RISC Linz, Austria Tudor.Jebelean@risc.uni-linz.ac.at Gábor Kusper Eszterházy Károly College gkusper@aries.ektf.hu Abstract We describe a new

More information

CS4514 Real-Time Systems and Modeling

CS4514 Real-Time Systems and Modeling CS4514 Real-Time Systems and Modeling Fall 2015 José M. Garrido Department of Computer Science College of Computing and Software Engineering Kennesaw State University Real-Time Systems RTS are computer

More information

Defining Program Syntax. Chapter Two Modern Programming Languages, 2nd ed. 1

Defining Program Syntax. Chapter Two Modern Programming Languages, 2nd ed. 1 Defining Program Syntax Chapter Two Modern Programming Languages, 2nd ed. 1 Syntax And Semantics Programming language syntax: how programs look, their form and structure Syntax is defined using a kind

More information

Lexical Considerations

Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2010 Handout Decaf Language Tuesday, Feb 2 The project for the course is to write a compiler

More information

LESSON 13: LANGUAGE TRANSLATION

LESSON 13: LANGUAGE TRANSLATION LESSON 13: LANGUAGE TRANSLATION Objective Interpreters and Compilers. Language Translation Phases. Interpreters and Compilers A COMPILER is a program that translates a complete source program into machine

More information

THE CONCEPT OF OBJECT

THE CONCEPT OF OBJECT THE CONCEPT OF OBJECT An object may be defined as a service center equipped with a visible part (interface) and an hidden part Operation A Operation B Operation C Service center Hidden part Visible part

More information

Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer

Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer Mariano Tucat 1 Alejandro J. García 2 Artificial Intelligence Research and Development Laboratory Department

More information

Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer

Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer Mariano Tucat Alejandro J. García mt@cs.uns.edu.ar ajg@cs.uns.edu.ar Consejo Nacional de Investigaciones

More information

CSCI 445 Amin Atrash. Control Architectures. Introduction to Robotics L. Itti, M. J. Mataric

CSCI 445 Amin Atrash. Control Architectures. Introduction to Robotics L. Itti, M. J. Mataric Introduction to Robotics CSCI 445 Amin Atrash Control Architectures The Story So Far Definitions and history Locomotion and manipulation Sensors and actuators Control => Essential building blocks Today

More information

AI-Planning in a Mobile Autonomous Robot with Degraded Software Capabilities

AI-Planning in a Mobile Autonomous Robot with Degraded Software Capabilities AI-Planning in a Mobile Autonomous Robot with Degraded Software Capabilities Jörg Weber and Franz Wotawa Technische Universität Graz Institute for Software Technology 8010 Graz, Inffeldgasse 16b/2, Austria

More information

: Principles of Automated Reasoning and Decision Making Midterm

: Principles of Automated Reasoning and Decision Making Midterm 16.410-13: Principles of Automated Reasoning and Decision Making Midterm October 20 th, 2003 Name E-mail Note: Budget your time wisely. Some parts of this quiz could take you much longer than others. Move

More information

Propositional Calculus: Boolean Functions and Expressions. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

Propositional Calculus: Boolean Functions and Expressions. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus: Boolean Functions and Expressions CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Objective: To provide students with the concepts and

More information

ASML Language Reference Manual

ASML Language Reference Manual ASML Language Reference Manual Tim Favorite (tuf1) & Frank Smith (fas2114) - Team SoundHammer Columbia University COMS W4115 - Programming Languages & Translators 1. Introduction The purpose of Atomic

More information

Triadic Formal Concept Analysis within Multi Agent Systems

Triadic Formal Concept Analysis within Multi Agent Systems Triadic Formal Concept Analysis within Multi Agent Systems Petr Gajdoš, Pavel Děrgel Department of Computer Science, VŠB - Technical University of Ostrava, tř. 17. listopadu 15, 708 33 Ostrava-Poruba Czech

More information

Chapter 8: Data Abstractions

Chapter 8: Data Abstractions Chapter 8: Data Abstractions Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Presentation files modified by Farn Wang Copyright 28 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

More information

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS 6403 - SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS 1. Explain iterative waterfall and spiral model for software life cycle and various activities

More information

Simulation of LET Models in Simulink and Ptolemy

Simulation of LET Models in Simulink and Ptolemy Simulation of LET Models in Simulink and Ptolemy P. Derler, A. Naderlinger, W. Pree, S. Resmerita, J. Templ Monterey Workshop 2008, Budapest, Sept. 24-26, 2008 C. Doppler Laboratory Embedded Software Systems

More information

Programming Languages Third Edition

Programming Languages Third Edition Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand

More information

CYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms

CYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms CYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms Raju Pandey J. C. Browne Department of Computer Sciences The University of Texas at Austin Austin, TX 78712 fraju, browneg@cs.utexas.edu

More information

SIR C R REDDY COLLEGE OF ENGINEERING

SIR C R REDDY COLLEGE OF ENGINEERING SIR C R REDDY COLLEGE OF ENGINEERING DEPARTMENT OF INFORMATION TECHNOLOGY Course Outcomes II YEAR 1 st SEMESTER Subject: Data Structures (CSE 2.1.1) 1. Describe how arrays, records, linked structures,

More information

COMS 1003 Fall Introduction to Computer Programming in C. Bits, Boolean Logic & Discrete Math. September 13 th

COMS 1003 Fall Introduction to Computer Programming in C. Bits, Boolean Logic & Discrete Math. September 13 th COMS 1003 Fall 2005 Introduction to Computer Programming in C Bits, Boolean Logic & Discrete Math September 13 th Hello World! Logistics See the website: http://www.cs.columbia.edu/~locasto/ Course Web

More information

DISCRETE-event dynamic systems (DEDS) are dynamic

DISCRETE-event dynamic systems (DEDS) are dynamic IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY, VOL. 7, NO. 2, MARCH 1999 175 The Supervised Control of Discrete-Event Dynamic Systems François Charbonnier, Hassane Alla, and René David Abstract The supervisory

More information

M/s. Managing distributed workloads. Language Reference Manual. Miranda Li (mjl2206) Benjamin Hanser (bwh2124) Mengdi Lin (ml3567)

M/s. Managing distributed workloads. Language Reference Manual. Miranda Li (mjl2206) Benjamin Hanser (bwh2124) Mengdi Lin (ml3567) 1 M/s Managing distributed workloads Language Reference Manual Miranda Li (mjl2206) Benjamin Hanser (bwh2124) Mengdi Lin (ml3567) Table of Contents 1. Introduction 2. Lexical elements 2.1 Comments 2.2

More information

Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1

Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1 Natural Semantics Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1 1 Natural deduction is an instance of first-order logic; that is, it is the formal

More information

Symbol Tables Symbol Table: In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is

More information

Mobile robots and appliances to support the elderly people

Mobile robots and appliances to support the elderly people Microsoft Research Embedded Systems Invitation for Proposal Mobile robots and appliances to support the elderly people Luca Iocchi, Daniele Nardi Dipartimento di Informatica e Sistemistica Università di

More information

Reactive and Hybrid Agents. Based on An Introduction to MultiAgent Systems and slides by Michael Wooldridge

Reactive and Hybrid Agents. Based on An Introduction to MultiAgent Systems and slides by Michael Wooldridge Reactive and Hybrid Agents Based on An Introduction to MultiAgent Systems and slides by Michael Wooldridge Reactive Architectures Problems with symbolic/logical approaches (transduction, computational

More information

Handout 9: Imperative Programs and State

Handout 9: Imperative Programs and State 06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 9: Imperative Programs and State Imperative

More information

AGENT-BASED SOFTWARE ARCHITECTURE FOR MULTI-ROBOT TEAMS. João Frazão, Pedro Lima

AGENT-BASED SOFTWARE ARCHITECTURE FOR MULTI-ROBOT TEAMS. João Frazão, Pedro Lima AGENT-BASED SOFTWARE ARCHITECTURE FOR MULTI-ROBOT TEAMS João Frazão, Pedro Lima Institute for Systems and Robotics Instituto Superior Técnico, Av. Rovisco Pais, 1049-001 Lisboa, Portugal {jfrazao,pal}@isr.ist.utl.pt

More information

CSC 501 Semantics of Programming Languages

CSC 501 Semantics of Programming Languages CSC 501 Semantics of Programming Languages Subtitle: An Introduction to Formal Methods. Instructor: Dr. Lutz Hamel Email: hamel@cs.uri.edu Office: Tyler, Rm 251 Books There are no required books in this

More information

Programming Safe Agents in Blueprint. Alex Muscar University of Craiova

Programming Safe Agents in Blueprint. Alex Muscar University of Craiova Programming Safe Agents in Blueprint Alex Muscar University of Craiova Programmers are craftsmen, and, as such, they are only as productive as theirs tools allow them to be Introduction Agent Oriented

More information

Shared Variables and Interference

Shared Variables and Interference Illinois Institute of Technology Lecture 24 Shared Variables and Interference CS 536: Science of Programming, Spring 2018 A. Why Parallel programs can coordinate their work using shared variables, but

More information

ESL: A Language for Supporting Robust Plan Execution in Embedded Autonomous Agents

ESL: A Language for Supporting Robust Plan Execution in Embedded Autonomous Agents From: AAAI Technical Report FS-96-01. Compilation copyright 1996, AAAI (www.aaai.org). All rights reserved. ESL: A Language for Supporting Robust Plan Execution in Embedded Autonomous Agents Erann Gat

More information

Driving Vision Systems by Communication

Driving Vision Systems by Communication Driving Vision Systems by Communication Thorsten Graf and Alois Knoll University of Bielefeld, Faculty of Technology P.O.Box 10 01 31, D-33501 Bielefeld, Germany E-mail: fgraf,knollg@techfak.uni-bielefeld.de

More information

Reflection in the Chomsky Hierarchy

Reflection in the Chomsky Hierarchy Reflection in the Chomsky Hierarchy Henk Barendregt Venanzio Capretta Dexter Kozen 1 Introduction We investigate which classes of formal languages in the Chomsky hierarchy are reflexive, that is, contain

More information

«Computer Science» Requirements for applicants by Innopolis University

«Computer Science» Requirements for applicants by Innopolis University «Computer Science» Requirements for applicants by Innopolis University Contents Architecture and Organization... 2 Digital Logic and Digital Systems... 2 Machine Level Representation of Data... 2 Assembly

More information

Crafting a Compiler with C (II) Compiler V. S. Interpreter

Crafting a Compiler with C (II) Compiler V. S. Interpreter Crafting a Compiler with C (II) 資科系 林偉川 Compiler V S Interpreter Compilation - Translate high-level program to machine code Lexical Analyzer, Syntax Analyzer, Intermediate code generator(semantics Analyzer),

More information

Automating Unpredictable Processes:

Automating Unpredictable Processes: Automating Unpredictable Processes: Building Responsive Apps using Business Rules By Carl Hewitt, Chief Architect, Decisions and Heath Oderman, CTO, Decisions Copyright 2016 Building Responsive Apps: Comparing

More information

Problem Solving Agents Solving Problems through Search CIS 32

Problem Solving Agents Solving Problems through Search CIS 32 Problem Solving Agents Solving Problems through Search CIS 32 Today: Behavior Based AI Functionally Next Class - In 2 Wednesdays (Could Meet on Tuesday Next Week) No Thursday Office Hours (any more) -

More information

Symbolic Execution and Proof of Properties

Symbolic Execution and Proof of Properties Chapter 7 Symbolic Execution and Proof of Properties Symbolic execution builds predicates that characterize the conditions under which execution paths can be taken and the effect of the execution on program

More information

Research Collection. Overapproximating the Cost of Loops. Master Thesis. ETH Library. Author(s): Schweizer, Daniel. Publication Date: 2013

Research Collection. Overapproximating the Cost of Loops. Master Thesis. ETH Library. Author(s): Schweizer, Daniel. Publication Date: 2013 Research Collection Master Thesis Overapproximating the Cost of Loops Author(s): Schweizer, Daniel Publication Date: 2013 Permanent Link: https://doi.org/10.3929/ethz-a-009767769 Rights / License: In Copyright

More information

11. a b c d e. 12. a b c d e. 13. a b c d e. 14. a b c d e. 15. a b c d e

11. a b c d e. 12. a b c d e. 13. a b c d e. 14. a b c d e. 15. a b c d e CS-3160 Concepts of Programming Languages Spring 2015 EXAM #1 (Chapters 1-6) Name: SCORES MC: /75 PROB #1: /15 PROB #2: /10 TOTAL: /100 Multiple Choice Responses Each multiple choice question in the separate

More information

Towards a formal model of object-oriented hyperslices

Towards a formal model of object-oriented hyperslices Towards a formal model of object-oriented hyperslices Torsten Nelson, Donald Cowan, Paulo Alencar Computer Systems Group, University of Waterloo {torsten,dcowan,alencar}@csg.uwaterloo.ca Abstract This

More information

Programming Lecture 3

Programming Lecture 3 Programming Lecture 3 Expressions (Chapter 3) Primitive types Aside: Context Free Grammars Constants, variables Identifiers Variable declarations Arithmetic expressions Operator precedence Assignment statements

More information

Module 5. Function-Oriented Software Design. Version 2 CSE IIT, Kharagpur

Module 5. Function-Oriented Software Design. Version 2 CSE IIT, Kharagpur Module 5 Function-Oriented Software Design Lesson 12 Structured Design Specific Instructional Objectives At the end of this lesson the student will be able to: Identify the aim of structured design. Explain

More information

Syntax Analysis Check syntax and construct abstract syntax tree

Syntax Analysis Check syntax and construct abstract syntax tree Syntax Analysis Check syntax and construct abstract syntax tree if == = ; b 0 a b Error reporting and recovery Model using context free grammars Recognize using Push down automata/table Driven Parsers

More information

Fall 2018 Discussion 8: October 24, 2018 Solutions. 1 Introduction. 2 Primitives

Fall 2018 Discussion 8: October 24, 2018 Solutions. 1 Introduction. 2 Primitives CS 6A Scheme Fall 208 Discussion 8: October 24, 208 Solutions Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write

More information

Programming Languages Third Edition. Chapter 7 Basic Semantics

Programming Languages Third Edition. Chapter 7 Basic Semantics Programming Languages Third Edition Chapter 7 Basic Semantics Objectives Understand attributes, binding, and semantic functions Understand declarations, blocks, and scope Learn how to construct a symbol

More information

Robotic Behaviors. Potential Field Methods

Robotic Behaviors. Potential Field Methods Robotic Behaviors Potential field techniques - trajectory generation - closed feedback-loop control Design of variety of behaviors - motivated by potential field based approach steering behaviors Closed

More information

Programming Language Concepts, cs2104 Lecture 04 ( )

Programming Language Concepts, cs2104 Lecture 04 ( ) Programming Language Concepts, cs2104 Lecture 04 (2003-08-29) Seif Haridi Department of Computer Science, NUS haridi@comp.nus.edu.sg 2003-09-05 S. Haridi, CS2104, L04 (slides: C. Schulte, S. Haridi) 1

More information

Spring 2018 Discussion 7: March 21, Introduction. 2 Primitives

Spring 2018 Discussion 7: March 21, Introduction. 2 Primitives CS 61A Scheme Spring 2018 Discussion 7: March 21, 2018 1 Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme

More information

for (i=1; i<=100000; i++) { x = sqrt (y); // square root function cout << x+i << endl; }

for (i=1; i<=100000; i++) { x = sqrt (y); // square root function cout << x+i << endl; } Ex: The difference between Compiler and Interpreter The interpreter actually carries out the computations specified in the source program. In other words, the output of a compiler is a program, whereas

More information

Programming Languages, Summary CSC419; Odelia Schwartz

Programming Languages, Summary CSC419; Odelia Schwartz Programming Languages, Summary CSC419; Odelia Schwartz Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design

More information

Conceptual Modeling of Dynamic Interactive Systems Using the Equivalent Transformation Framework

Conceptual Modeling of Dynamic Interactive Systems Using the Equivalent Transformation Framework 7th WSEAS International Conference on APPLIED COMPUTER SCIENCE, Venice, Italy, November 21-23, 2007 253 Conceptual Modeling of Dynamic Interactive Systems Using the Equivalent Transformation Framework

More information

Shared Variables and Interference

Shared Variables and Interference Solved Shared Variables and Interference CS 536: Science of Programming, Fall 2018 A. Why Parallel programs can coordinate their work using shared variables, but it s important for threads to not interfere

More information

Actor-Oriented Design: Concurrent Models as Programs

Actor-Oriented Design: Concurrent Models as Programs Actor-Oriented Design: Concurrent Models as Programs Edward A. Lee Professor, UC Berkeley Director, Center for Hybrid and Embedded Software Systems (CHESS) Parc Forum Palo Alto, CA May 13, 2004 Abstract

More information

2 Background: Service Oriented Network Architectures

2 Background: Service Oriented Network Architectures 2 Background: Service Oriented Network Architectures Most of the issues in the Internet arise because of inflexibility and rigidness attributes of the network architecture, which is built upon a protocol

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

ESL: A Language for Supporting Robust Plan Execution in Embedded Autonomous Agents

ESL: A Language for Supporting Robust Plan Execution in Embedded Autonomous Agents ESL: A Language for Supporting Robust Plan Execution in Embedded Autonomous Agents Erann Gat Jet Propulsion Laboratory California Institute of Technology 4800 Oak Grove Drive Pasadena, CA 91109 gat@jpl.nasa.gov

More information

10/18/18. Outline. Semantic Analysis. Two types of semantic rules. Syntax vs. Semantics. Static Semantics. Static Semantics.

10/18/18. Outline. Semantic Analysis. Two types of semantic rules. Syntax vs. Semantics. Static Semantics. Static Semantics. Outline Semantic Analysis In Text: Chapter 3 Static semantics Attribute grammars Dynamic semantics Operational semantics Denotational semantics N. Meng, S. Arthur 2 Syntax vs. Semantics Syntax concerns

More information

Chapter 3: Propositional Languages

Chapter 3: Propositional Languages Chapter 3: Propositional Languages We define here a general notion of a propositional language. We show how to obtain, as specific cases, various languages for propositional classical logic and some non-classical

More information

A Type-2 Fuzzy Planner with Semi Qualitative World Model for Robocup Domain

A Type-2 Fuzzy Planner with Semi Qualitative World Model for Robocup Domain Proceedings of the 3rd Annual IEEE Conference on Automation Science and Engineering Scottsdale, AZ, USA, Sept 22-25, 2007 MoRP-B06.6 A Type-2 Fuzzy Planner with Semi Qualitative World Model for Robocup

More information

Semantic Analysis Type Checking

Semantic Analysis Type Checking Semantic Analysis Type Checking Maryam Siahbani CMPT 379 * Slides are modified version of Schwarz s compiler course at Stanford 4/8/2016 1 Type Checking Type errors arise when operations are performed

More information

Note that in this definition, n + m denotes the syntactic expression with three symbols n, +, and m, not to the number that is the sum of n and m.

Note that in this definition, n + m denotes the syntactic expression with three symbols n, +, and m, not to the number that is the sum of n and m. CS 6110 S18 Lecture 8 Structural Operational Semantics and IMP Today we introduce a very simple imperative language, IMP, along with two systems of rules for evaluation called small-step and big-step semantics.

More information

Interprocess Communication By: Kaushik Vaghani

Interprocess Communication By: Kaushik Vaghani Interprocess Communication By: Kaushik Vaghani Background Race Condition: A situation where several processes access and manipulate the same data concurrently and the outcome of execution depends on the

More information

A Short Summary of Javali

A Short Summary of Javali A Short Summary of Javali October 15, 2015 1 Introduction Javali is a simple language based on ideas found in languages like C++ or Java. Its purpose is to serve as the source language for a simple compiler

More information

InterprocStack analyzer for recursive programs with finite-type and numerical variables

InterprocStack analyzer for recursive programs with finite-type and numerical variables InterprocStack analyzer for recursive programs with finite-type and numerical variables Bertrand Jeannet Contents 1 Invoking InterprocStack 1 2 The Simple language 2 2.1 Syntax and informal semantics.........................

More information

Safety SPL/2010 SPL/20 1

Safety SPL/2010 SPL/20 1 Safety 1 system designing for concurrent execution environments system: collection of objects and their interactions system properties: Safety - nothing bad ever happens Liveness - anything ever happens

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 3 Thomas Wies New York University Review Last week Names and Bindings Lifetimes and Allocation Garbage Collection Scope Outline Control Flow Sequencing

More information

The Object Model Overview. Contents. Section Title

The Object Model Overview. Contents. Section Title The Object Model 1 This chapter describes the concrete object model that underlies the CORBA architecture. The model is derived from the abstract Core Object Model defined by the Object Management Group

More information