Bridging the Gap Between Theory and Hardware Mario D. Marino, G. Robins, K. Skadron and L. Wang {mdm9uw,robins,skadron,lw2aw}.cs.virginia.edu Department.

Slides:



Advertisements
Similar presentations
WATERLOO ELECTRICAL AND COMPUTER ENGINEERING 20s: Computer Hardware 1 WATERLOO ELECTRICAL AND COMPUTER ENGINEERING 20s Computer Hardware Department of.
Advertisements

CSE 202 – Formal Languages and Automata Theory 1 REGULAR LANGUAGE.
Evolution and History of Programming Languages Software/Hardware/System.
Systems Software.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
The Concept of Computer Architecture
Automata Based Programming Anatoly Shalyto, Fedor Tsarev Saint-Petersburg State University of Information Technologies, Mechanics and Optics.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
CIS105 Chapter 1 Theory Review. Page 2 Hardware and Software are the two major components o any computer system Hardware is the set of physical devices.
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT Lecture 1 Introduction Jan Maluszynski, IDA, 2007
Program Flow Charting How to tackle the beginning stage a program design.
Program Flow Charting How to tackle the beginning stage a program design.
FPGA BASED IMAGE PROCESSING Texas A&M University / Prairie View A&M University Over the past few decades, the improvements from machine language to objected.
OV-1.1 CSE244 CSE Short Historical Intro Aggelos Kiayias Computer Science & Engineering Department The University of Connecticut 371 Fairfield Road,
Chapter 16 Programming and Languages: Telling the Computer What to Do.
Costas Busch - RPI1 CSCI-2400 Models of Computation.
1.1 Introduction to Language Processor
Implementation of DSP Algorithm on SoC. Characterization presentation Student : Einat Tevel Supervisor : Isaschar Walter Accompany engineer : Emilia Burlak.
1414 CHAPTER PROGRAMMING AND LANGUAGES. © 2005 The McGraw-Hill Companies, Inc. All Rights Reserved Competencies Describe the six steps of programming.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Compiler Design Nai-Wei Lin Department of Computer Science National Chung Cheng University.
Tools make jobs easier to do -A computer is a tool used by many professions A computer can do many different jobs because they are programmable - Machine.
Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013.
Computer Architecture The Concept Ola Flygt V ä xj ö University
Trigger design engineering tools. Data flow analysis Data flow analysis through the entire Trigger Processor allow us to refine the optimal architecture.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
5. Alternative Approaches. Strategic Bahavior in Business and Econ 1. Introduction 2. Individual Decision Making 3. Basic Topics in Game Theory 4. The.
Department of Communication Engineering, NCTU
Hardware/Software Co-design Design of Hardware/Software Systems A Class Presentation for VLSI Course by : Akbar Sharifi Based on the work presented in.
Languages for HW and SW Development Ondrej Cevan.
Major Disciplines in Computer Science Ken Nguyen Department of Information Technology Clayton State University.
The Nature of Computing INEL 4206 – Microprocessors Lecture 3 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
Semantics In Text: Chapter 3.
Computing For Embedded System IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, Author : Edward A. Lee UC.
Computer Science 101 Theory of Computing. Computer Science is... The study of algorithms, with respect to –their formal properties –their linguistic realizations.
Models of Computation. Computation: Computation is a general term for any type of information processing information processing CPU memory.
Chapter 1: Introduction 1 Compiler Designs and Constructions Chapter 1: Introduction Objectives: Course Objectives Introduction Dr. Mohsen Chitsaz.
Iconic Programmer A Visualization Tool for Teaching Concepts without Context.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
CS 351/ IT 351 Modeling and Simulation Technologies Review ( ) Dr. Jim Holten.
SIGCSE 06: NSF Showcase A Visual & Interactive Computability Course Emphasizing Breadth of Automata Rakesh Verma Computer Science Department University.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Compilers and Interpreters
C Sc 132 Computing Theory Professor Meiliu Lu Computer Science Department.
Software. Introduction n A computer can’t do anything without a program of instructions. n A program is a set of instructions a computer carries out.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Prologue Sung-Dong Kim, Dept. of Computer Engineering, Hansung University.
CSCI 3130: Formal languages and automata theory Andrej Bogdanov The Chinese University of Hong Kong Decidable.
Introduction To Software Development Environment.
SUBJECT : DIGITAL ELECTRONICS CLASS : SEM 3(B) TOPIC : INTRODUCTION OF VHDL.
Sub-fields of computer science. Sub-fields of computer science.
Electrical Engineering
Digital System Design An Introduction to Verilog® HDL
Mechanical Certification of Loop Pipelining Transformations: A Preview
CSCI-235 Micro-Computer Applications
Turing Machines Space bounds Reductions Complexity classes
The Encoding of TM Motivation for encoding of TM
Principles of Computing – UFCFA Lecture-1
Software Engineering Rekayasa Perangkat Lunak
CSCI-2400 Models of Computation Costas Busch - RPI.
MDE based FPGA physical Design Fast prototyping with Smalltalk
Software Engineering Rekayasa Perangkat Lunak
More undecidable languages
P.V.G’s College of Engineering, Nashik
Principles of Computing – UFCFA Week 1
Lecture One: Automata Theory Amjad Ali
Software Engineering Rekayasa Perangkat Lunak
Overview of Computer system
Presentation transcript:

Bridging the Gap Between Theory and Hardware Mario D. Marino, G. Robins, K. Skadron and L. Wang {mdm9uw,robins,skadron,lw2aw}.cs.virginia.edu Department of Computer Science - UVa

2© 2010 Mario D. Marino2 Algorithm Language HW/Binary Theory Programmer's life Compiler

Outline 1.Motivation 2.Bridging the Gap Between Theory and Hardware 3.Example of Integration: translator JFLAP 2 VHDL and ghdl Simulation Validation 4.Prospective Contributions & Future Work

4© 2010 Mario D. Marino4 Algorithm Language HW/Binary Theory Programmer's life Compiler

Outline 1.Motivation 2.Bridging the Gap Between Theory and Hardware 3.Example of Integration: translator JFLAP 2 VHDL and ghdl Simulation Validation 4.Prospective Contributions

Integrating Theory and HW 1.Special-purpose hardware to reflect Theory 2.Reduce unnecessary code 3.Reduce language restrictions

Bridging the Gap Between Theory and Hardware 7© 2010 Mario D. Marino7 idea!? Behavioral description Theory TM, automata VHDL FPGA-specialized purpose processor translation Algorithm HW

Outline 1.Motivation 2.Bridging the Gap Between Theory and Hardware 3.Example of Feasibility: translator JFLAP 2 VHDL and ghdl simulation validation 4.Prospective Contributions & Future Work

Translator: JFLAP2VHDL Translator: – Source: theoretical models – Output: VHDL theoretical models: JFLAP (Duke)‏ – Graphical tool – Theoretical models description: Turing Machines, grammars – Output format xml VHDL: validation – ghdl Simulation

Example: translation input: Turing Machine

ghdl simulation validation – Turing Machine Generated TM VHDL code => ghdl VHDL simulator Correct results

Outline 1.Motivation 2.Bridging the Gap Between Theory and Hardware 3.Example of Integration: translator JFLAP 2 VHDL and ghdl simulation validation 4.Prospective Contributions & Future Work

Example: translation output – parallel Turing Machine

Prospective Contributions & Future Work 14© 2010 Mario D. Marino14 Better coupling Theory/HW/Alg/Lang./Comp Applications: “small” compiler, small programs Formal verification / debugging Compare to the traditional approach Compare to System C Education and Pedagogy: Theory x Engineering ‏

15© 2010 Mario D. Marino15 Questions? Thanks!

Example: translation output – ghdl - simulation validation