Drexel University Department of Electrical and Computer Engineering Open Design and Integration Environment.

Slides:



Advertisements
Similar presentations
Pointers.
Advertisements

Symbol Table.
Intermediate Code Generation
1/1/ / faculty of Electrical Engineering eindhoven university of technology Introduction Part 2: Data types and addressing modes dr.ir. A.C. Verschueren.
Chapter 4 : File Systems What is a file system?
PSUCS322 HM 1 Languages and Compiler Design II IR Code Generation I Material provided by Prof. Jingke Li Stolen with pride and modified by Herb Mayer PSU.
The University of Adelaide, School of Computer Science
The Assembly Language Level
The Functions and Purposes of Translators Code Generation (Intermediate Code, Optimisation, Final Code), Linkers & Loaders.
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
Chapter 2 - Problem Solving
Computer Programming Rattapoom Waranusast Department of Electrical and Computer Engineering Faculty of Engineering, Naresuan University.
COSC 120 Computer Programming
Intermediate code generation. Code Generation Create linear representation of program Result can be machine code, assembly code, code for an abstract.
Databases Chapter Distinguish between the physical and logical view of data Describe how data is organized: characters, fields, records, tables,
Chapter 9 Describing Process Specifications and Structured Decisions
12 CHAPTER DATABASES Databases are the key to accessing information throughout our lives. Used in hospitals, grocery stores, schools, department stores,
Run time vs. Compile time
1212 CHAPTER DATABASES. © 2005 The McGraw-Hill Companies, Inc. All Rights Reserved Competencies Distinguish between the physical and logical view.
Guide To UNIX Using Linux Third Edition
XML –Query Languages, Extracting from Relational Databases ADVANCED DATABASES Khawaja Mohiuddin Assistant Professor Department of Computer Sciences Bahria.
Chapter 1 Program Design
Attribute databases. GIS Definition Diagram Output Query Results.
Graphical Tree-Based Scientific Calculator: CalcuWiz Will Ryan Christian Braunlich.
C o n f i d e n t i a l Developed By Nitendra NextHome Subject Name: Data Structure Using C Title: Overview of Data Structure.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
XML files (with LINQ). Introduction to LINQ ( Language Integrated Query ) C#’s new LINQ capabilities allow you to write query expressions that retrieve.
CS102 Introduction to Computer Programming
Introduction to Databases A line manager asks, “If data unorganized is like matter unorganized and God created the heavens and earth in six days, how come.
MIPS coding. SPIM Some links can be found such as:
Principles of Programming Languages Asst. Prof. Dr. Ahmet Sayar Spring-2012 Kocaeli University Computer Engineering Department Introduction.
Electronic Commerce COMP3210 Session 4: Designing, Building and Evaluating e-Commerce Initiatives – Part II Dr. Paul Walcott Department of Computer Science,
Programming With C.
Chapter 1 Introduction 1.1 What is an operating system
Building a Modern Computer From First Principles
Chapter 6 Programming Languages (2) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Copyright © 2015 McGraw-Hill Education. All rights reserved. No reproduction or distribution without the prior written consent of McGraw-Hill Education.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
Lecture # 3 & 4 Chapter # 2 Database System Concepts and Architecture Muhammad Emran Database Systems 1.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
I Power Higher Computing Software Development High Level Language Constructs.
Chapter 1: Introduction 1 Compiler Designs and Constructions Chapter 1: Introduction Objectives: Course Objectives Introduction Dr. Mohsen Chitsaz.
CSC 8505 Compiler Construction Runtime Environments.
File Systems cs550 Operating Systems David Monismith.
DATABASES. -2 Competencies Distinguish between the physical and logical view of data Describe how data is organized Describe databases Describe the five.
Databases Chapter Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
Elements of Computing Systems, Nisan & Schocken, MIT Press, Chapter 6: Assembler slide 1www.nand2tetris.org Building a Modern Computer.
Compiler Construction CPCS302 Dr. Manal Abdulaziz.
1 Structure of a Compiler Source Language Target Language Semantic Analyzer Syntax Analyzer Lexical Analyzer Front End Code Optimizer Target Code Generator.
CS 153: Concepts of Compiler Design October 12 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak
LECTURE TWO Introduction to Databases: Data models Relational database concepts Introduction to DDL & DML.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
© 2017 by McGraw-Hill Education. This proprietary material solely for authorized instructor use. Not authorized for sale or distribution in any manner.
Mohammed I DAABO COURSE CODE: CSC 355 COURSE TITLE: Data Structures.
Lecture 9 Symbol Table and Attributed Grammars
Mehdi Kargar Department of Computer Science and Engineering
Programming Languages
Object-Oriented Analysis and Design
Ch. 7 Programming Languages
Organization of Programming Languages
Chapter 9 Structuring System Requirements: Logic Modeling
CMPE 152: Compiler Design August 23 Class Meeting
The Assembly Language Level
Chapter 11 Describing Process Specifications and Structured Decisions
CMPE 152: Compiler Design January 29 Class Meeting
Chapter 9 Structuring System Requirements: Logic Modeling
Computer Graphics Matrix Hierarchies / Animation
CHAPTER 69 NUMBER SYSTEMS AND CODES
Computing as Fast as an Engineer can Think
Presentation transcript:

Drexel University Department of Electrical and Computer Engineering Open Design and Integration Environment

Developed by: Sean Woods Under the direction of: Dr. Prawat Nagvajara With assistance by: Ronald DeLoach Vy Ho David Romig, Jr.

YGGDRASIL Shared data structure for distributed environments

The name Yggdrasil is taken from the is the “World Tree” of Nordic legend. Its roots bound together heaven and earth, and all life lived in its branches.

Yggdrasil borrows it’s structure from organic molecules. The only formal data structure is the node. All else is handled by links between nodes. Name Data I Child J Child Next Parent

Nesting a tree within a tree, within a tree, within a tree allows yggdrasil to process many representations of data within the same database.

A tree begins with one node, the root, which has no parent. All others are descendants, possessing none, one, or many links. Not shown are the upward links all nodes have back to their parent.

/object.subordinate/attribute.adjective.descriptor In yggdrasil nodes can posses two types of links, i and j. Human interfaces to yggdrasil represent this links as different delimiters within a string for the address. I is a link to the beginning of a different hierarchy. I links are represented with a forward slash (/) J is a link to a descendant within the same hierarchy. J links are represented with a dot (.)

Data files often need to address groups of nodes. It is often shorter to use a finite state machine notation. We begin with an absolute node. All other references are local to that node, giving the relation and data stored. /example.item < {I attribute} < {j subattribute value} {j anotherattribute anothervalue} >

Complex databases are constructed by using a symbolic links. A node, instead of containing data actually contains a pointer to another node.When an address is resolved, the parser is redirected to another part of the tree.

cat See felis domesticus felis domesticus Known as the common housecat, these mammals are kept as pets by humans. They eat mice, drink milk, and love to have their fur stroked. An example would be a “see instead” link in an encyclopedia. Instead of containing an entry, it contains where the entry will be found.

Real-time process manager for distributed tasks ODIN

Odin was the king of the Nordic gods. He gave one eye for wisdom, and is said to have hung himself from the Yggdrasil to see the whole universe.

Odin is a special purpose real-time task management system. Tasks are broken into processes which operate in parallel. A process consists of a short code segment, called at either a fixed interval of time, or in response to an event within the system. They can alter the piece of code that is called, sleep for events, and alter the period at which they are called.

Odin uses a unique finite state machine style of multitasking. With the proper compiler, conventional procedural languages can be represented as fsm tasks. for(x=0;x<10;x++) { do_something(); } for(x=10;x<20;x++) { do_somethingelse(); } Do_something Do_somethingelse

Processes return several different control codes to the process manager: Break- Suspend the task Continue- Call the task again in period time Done- Task completed, remove from system Error - Task generated an error

Data stored in yggdrasil is shared between processes in a distributed task. Yggdrasil PhysicsGraphics Logic

Physics Position Control Signals Velocity Inertia Forces Graphics Position Internal State Screen Position Representation Logic Position Internal State Control Signals Goals Elements in blue are items that are modified by other processes, but read internally by the process. Odin processes use the yggdrasil to represent complex structures as simple elements. These elements can be manipulated to perform complex tasks.

Yggdrasil can store code to be executed within a process state, as well as branching logic an process control. In Yggdrasil /tasks.test/states {j start} < {I code {x=0}} {I next {counter}} > {j counter} < {I code {x++ ; printf(“%d”,x)} {I branch} < {j condition {x < 1000}} {j goto counter} > {I next {}} > In C Code for(x=0;x<1000;x++) { printf(“%d”,x) }

Start Counter Code x=0; Code x++; printf(“%d”,x); Exit Condition x<1000