A System for Genera/ng Sta/c Analyzers for Machine Instruc/ons (TSL)
|
|
- Adrian George
- 5 years ago
- Views:
Transcription
1 Seminar on A System for Genera/ng Sta/c Analyzers for Machine Instruc/ons (TSL) Junghee Lim, Univ. of Wisconsin Madison, USA and Thomas Reps, GrammaTech, USA Presenter : Anand Ramkumar S Universitat des Saarlandes
2 Why Low Level Analysis? High level analysis does not account for behaviors of compiler! memset(password, \0, len); free(password);
3 Why Low Level Analysis? memset(password, \0, len); Op/miza/on free(password); Unpredicted Result! Leaving password in Memory.
4 Why Low Level Analysis? Use of libraries Not available in source code DLL Dynamic Libraries
5 Why Low Level Analysis? More than One Programming Language P C PERKLJASDKF E R L JAVA
6 Why Low Level Analysis? The en/re program can be analyzed including libraries linked to program. Source programs can be in many languages States of processor pipeline can be analyzed So[ware security issues can be iden/fied Instruc/ons inserted / removed By Op/miza/on, Instrumenta/on are handled
7 High Level Analysis Finding memory leaks Finding dereferences of dangling pointers Finding array out of bounds errors Checking type state proper/es ensuring that a file is open() before it is read() Both Low level and High Level analysis are required for comprehensive verifica/on.
8 Analysis of Executables Analysis of set of machine states Register Values Flag States Memory Contents that can be reached at each point in executable
9 Transformer Specifica/on Language TSL Widen Join Meet Update TSL ENGINE
10 Transformer Specifica/on Language TSL The TSL system provides a systema/c way to create analyzers for machine instruc/ons. Automa/cally generates analysis components from a specifica/on.
11 Analyses Overview Value Set Analysis Def Use Analysis
12 VSA (Value Set Analysis) VSA determines a safe approxima/on of set of numeric values and addresses In each register and memory loca/on at each program point
13 VSA (Value Set Analysis) To represent a set of numeric values and addresses VSA uses value set s
14 VSA (Value State Analysis) Code 1. start (0x100): 2. mov eax, 1 3. mov ebx, start 4. add eax, ebx Value Sets: 2. {eax = {1}; ebx = {*} } 3. { eax = {1}; ebx = {0x100} } 4. { eax = {0x101}; ebx = {0x100} }
15 Def Use Analysis (DUA) Match variable defini/ons (assignments) and uses. Example x = 5; if (x > 0)... def use
16 Def Use Analysis (DUA) Analyze by using def use pair. A def use pair is variable's Value and Use [x=5, x>0]
17 Problems solved by TSL Automa/cally Generates Analysis components Common Intermediate Representa/ons Transformers Supports wide range of Analysis Compa/ble with various Architectures
18 Problems solved by TSL τ 1 # τ 1 #2... τ 1 #6 Analyzers τ 2 # τ 2 #2... τ 2 #6 τ 600 # τ 600 #2... τ 600 #6 6 analyses x 600 instructions 3600 transformers
19 Problems solved by TSL Other Systems TSL System A 1 // transformer for A 1 switch(i) { case ADD:... case SUB:... ~600. } A 1 A 2 A 1 A 2 A 2... // transformer for A 2 switch(i) { case ADD:... case SUB:... ~600. } with(i) { ADD(): SUB():... } A 6 // transformer for A 6 switch(i) { case ADD:... case SUB:... ~600. } A 6 A 6
20 Problems solved by TSL ARM Power PC Intel Architecture TSL System SPARC Blackfin.
21 TSL TSL SYSTEM CIR CIR CIR CIR TSL LANGUAGE ISS ISS ISS ISS INTEL SPARC PPC ARM
22 What is in TSL? TSL Language Formal language for specifying seman/cs of machine instruc/ons. TSL System Analysis framework generated automa/cally from specifica/on.
23 Classes of Users for TSL Analysis 1 Analysis 2 Analysis 3... TSL SYSTEM ARM IS1 INTEL IS2 PowerPC IS3
24 Classes of Users for TSL Instruc/on Set Specifica/on (ISS) developers Specifying seman/cs of different instruc/on sets Analysis developers involved in extending the analysis framework
25 ISS Development TSL SYSTEM CIR CIR CIR CIR TSL LANGUAGE ISS ISS ISS ISS INTEL SPARC PPC ARM
26 Transformer Specifica/on Language TSL strongly typed has a data type defini/on mechanism allows defining recursive data types
27 Transformer Specifica/on Language Operators Bit manipula/on operators (, &,, ˆ,, ) Rela/onal operators (<, <=, >, >=, ==,!=)
28 Transformer Specifica/on Language Operators Arithme/c/logical operators (+,,, /,!, &&,, xor) Condi/onal expression operator (? : )
29 Transformer Specifica/on Language TSL base types INT8 INT16 INT32 INT64 BOOL
30 Transformer Specifica/on Language TSL Map base types MEMMAP32_8_LE : maps from 32 bit values (addresses) to 8 bit values MEMMAP32_16_LE : maps from 32 bit values (addresses) to 16 bit values VAR32MAP : 32 bit values, also similarly VAR16MAP, VAR8MAP VARBOOLMAP from var bool to Boolean values
31 ISS Development An ISS developer specifies the abstract syntax grammar by defining the constructors for a language of instruc/ons a concrete state type the concrete seman/cs of each instruc/on
32 ADD Example Intel 32A TSL SYSTEM CIR CIR CIR CIR TSL LANGUAGE ISS ISS ISS ISS INTEL SPARC PPC ARM
33 ADD Example Intel 32A add ebx, eax instruction ADD32_32 operand32 DirectReg32 operand32 DirectReg32 reg32 EBX reg32 EAX
34 ADD Example Concrete Seman/cs ADD DEST DEST + SRC SF, ZF, OF, CF, AF, PF are set according to the result
35 ISS Development Define every op/on available for instruc/on set in TSL The concrete seman/cs is specified by wri/ng a func/on named interpinstr. Abstract opera/ons are defined at the meta level
36 TSL Specifica/on Example [1] // User defined abstract syntax [2] reg32: EAX() EBX()... ; [3] flag: ZF() SF()... ; [4] operand32: Indirect32(reg32 reg32 INT8 INT32) [5] DirectReg32(reg32) Immediate32(INT32)...; [6] operand16:... ; [7]...
37 TSL Specifica/on Example [8] instruc/on [9] : ADD32 32(operand32 operand32) [10] ADD16 16(operand16 operand16)... ; [11] var32: Reg32(reg32); [12] var bool: Flag(flag); [13] state: State(MEMMAP32 8 LE // memory map [14] VAR32MAP // register map [15] VARBOOLMAP); // flag map
38 [16] // User defined func/ons [17] state updateflag(state S,... ) {... } :... [23] state interpinstr(instruc/on I, state S) { [24] with(i) ( [25] ADD32 32(dstOp, srcop): [26] let dstval = interpop(s, dstop); [27] srcval = interpop(s, srcop); [28] res = dstval + srcval; [29] S2 = updateflag(s, dstval, srcval, res); [30] in ( updatestate( S2, dstop, res ) ), [31]...) [32] } TSL Specifica/on Example
39 ADD Example TSL SYSTEM ISS INTEL 32 IS2 IS3
40 Opera/on of TSL System TSL SYSTEM CIR CIR CIR CIR TSL LANGUAGE ISS ISS ISS ISS INTEL SPARC PPC ARM
41 Opera/on of TSL System Translates the TSL specifica/on of each instruc/on set to a Common Intermediate Representa/on (CIR). CIR that can be used to create mul/ple analyzers.
42 Common Intermediate Representa/on CIR is specific to a given instruc/on set CIR is common across analysis Each generated CIR is a template class
43 Common Intermediate Representa/on The user defined abstract syntax is translated to a set of abstract syntax classes. The user defined types, such as reg32, operand32, and instruc/on, are translated to abstract C++ classes
44 Common Intermediate Representa/on [1] template <typename INTERP> [2] class CIR { [3] class reg32 {... }; [4] class EAX: public reg32 {... }; [5]... [6] class operand32 {... }; [7] class Indirect32: public operand32 {... }; [8]... [9] class instruc/on {... };
45 Common Intermediate Representa/on [10] class ADD32 32: public instruc/on {... [11] enum TSL ID id; [12] operand32 op1; [13] operand32 op2; [14] }; [15]... [16] class state {... }; [17] class State: public state {...
46 Common Intermediate Representa/on [24]... [23] sta/c state interpinstr#(instruc/on I, state S) { [24] state ans; [25] switch(i.id) { [26] case ID ADD32 32: { [27] operand32 dstop = I.op1; [28] operand32 srcop = I.op2; [29] INTERP::INT32 dstval = interpop(s, dstop); [30] INTERP::INT32 srcval = interpop(s, srcop); [31] INTERP::INT32 res = INTERP::Add(dstVal,srcVal); [32] state S2 = updateflag(s, dstval, srcval, res); [33] ans = updatestate(s2, dstop, res); [34] } break; [37] return ans; [38] } [39]};
47 Analysis Developer + + 1#, + + 2#, CIR is instan/ated with interpreta/on (INTERP) by analysis developer.
48 Value Set Analysis [1] class VSA INTERP { [2] // basetype [3] typedef ValueSet32 INT32; [4]... [5] // basetype operators [6] INT32 Add(INT32 a, INT32 b) { [7] return a.addvalueset(b); [8] } [9]... [10] // map basetypes
49 Value Set Analysis Widen Join Meet Update interpinstr TSL ENGINE
50 Opera/on of TSL System INTE RP TSL SYSTEM CIR CIR CIR CIR TSL LANGUAGE ISS ISS ISS ISS INTEL SPARC PPC ARM
51 Analysis Developer 1 interpinstr # For each analysis the analysis engine shall call interpinstr #
52 Analysis Developer Analysis Engine in C++ while(worklist φ) { select an edge n->m from worklist... new_s = interpinstr # (instr(n), S)... }
53 Analysis Developer For Analysis Engine in other languages Obtains a transformer for an instruc/on being processed from TSL
54 Generated Transformers for add ebx,eax 1.VSA (Value Set Analysis) S.S[ebx S(ebx)+vsaS(eax)] [ZF (S(ebx) +vsas(eax) = 0)][more flag updates] 2.DUA [ ebx {eax, ebx}, ZF {eax, ebx},... ]
55 Value Set Analysis Transformer S.S[ebx S(ebx)+vsaS(eax)] [ZF (S(ebx) +vsas(eax) = 0)][more flag updates] VSA uses transformer evaluator to create an output abstract state. VSA returns a new abstract state in which ebx is updated with sum of ebx and eax. The flags are updated appropriately.
56 Opera/on of TSL System INTE RP TSL SYSTEM CIR CIR CIR CIR TSL LANGUAGE ISS ISS ISS ISS INTEL SPARC PPC ARM
57 Related Work Systems sharing some same goals as TSL LISAS Instruc/on set specifica/on language Lambda RTL Seman/cs of an instruc/on set and to support mul/ple analysis
58 Summary The TSL system provides a systema/c way to create analyzers for machine instruc/ons. Low Level Analysis for each processor family. It separates the abstract seman/cs of each analysis from the instruc/on sets to be analyzed. All analysis frameworks are generated from the same seman/cs.
59 Thank You!
A System for Generating Static Analyzers for Machine Instructions
A System for Generating Static Analyzers for Machine Instructions Junghee Lim 1 and Thomas Reps 1,2 1 Comp. Sci. Dep., Univ. of Wisconsin-Madison, WI; USA. 2 GrammaTech, Inc.; Ithaca, NY; USA {junghee,reps}@cs.wisc.edu
More informationTSL: A System for Generating Abstract Interpreters and its Application to Machine-Code Analysis
TSL: A System for Generating Abstract Interpreters and its Application to Machine-Code Analysis JUNGHEE LIM University of Wisconsin and THOMAS REPS University of Wisconsin and GrammaTech, Inc. This paper
More informationFounda'ons of So,ware Engineering. Sta$c analysis (1/2) Claire Le Goues
Founda'ons of So,ware Engineering Sta$c analysis (1/2) Claire Le Goues 1 Two fundamental concepts Abstrac'on. Elide details of a specific implementa$on. Capture seman$cally relevant details; ignore the
More informationInstructor: Randy H. Katz hap://inst.eecs.berkeley.edu/~cs61c/fa13. Fall Lecture #7. Warehouse Scale Computer
CS 61C: Great Ideas in Computer Architecture Everything is a Number Instructor: Randy H. Katz hap://inst.eecs.berkeley.edu/~cs61c/fa13 9/19/13 Fall 2013 - - Lecture #7 1 New- School Machine Structures
More informationWays to implement a language
Interpreters Implemen+ng PLs Most of the course is learning fundamental concepts for using PLs Syntax vs. seman+cs vs. idioms Powerful constructs like closures, first- class objects, iterators (streams),
More informationCode Genera*on for Control Flow Constructs
Code Genera*on for Control Flow Constructs 1 Roadmap Last *me: Got the basics of MIPS CodeGen for some AST node types This *me: Do the rest of the AST nodes Introduce control flow graphs Scanner Parser
More informationPrinciples of Programming Languages
Principles of Programming Languages h"p://www.di.unipi.it/~andrea/dida2ca/plp- 14/ Prof. Andrea Corradini Department of Computer Science, Pisa Lesson 18! Bootstrapping Names in programming languages Binding
More informationReading assignment. Chapter 3.1, 3.2 Chapter 4.1, 4.3
Reading assignment Chapter 3.1, 3.2 Chapter 4.1, 4.3 1 Outline Introduc5on to assembly programing Introduc5on to Y86 Y86 instruc5ons, encoding and execu5on 2 Assembly The CPU uses machine language to perform
More informationCompila(on /15a Lecture 6. Seman(c Analysis Noam Rinetzky
Compila(on 0368-3133 2014/15a Lecture 6 Seman(c Analysis Noam Rinetzky 1 You are here Source text txt Process text input characters Lexical Analysis tokens Annotated AST Syntax Analysis AST Seman(c Analysis
More informationCSE Compilers. Reminders/ Announcements. Lecture 15: Seman9c Analysis, Part III Michael Ringenburg Winter 2013
CSE 401 - Compilers Lecture 15: Seman9c Analysis, Part III Michael Ringenburg Winter 2013 Winter 2013 UW CSE 401 (Michael Ringenburg) Reminders/ Announcements Project Part 2 due Wednesday Midterm Friday
More informationVulnerability Analysis (III): Sta8c Analysis
Computer Security Course. Vulnerability Analysis (III): Sta8c Analysis Slide credit: Vijay D Silva 1 Efficiency of Symbolic Execu8on 2 A Sta8c Analysis Analogy 3 Syntac8c Analysis 4 Seman8cs- Based Analysis
More informationMachine- Level Representa2on: Procedure
Machine- Level Representa2on: Procedure CSCI 2021: Machine Architecture and Organiza2on Pen- Chung Yew Department Computer Science and Engineering University of Minnesota With Slides from Bryant, O Hallaron
More informationHomework 1 Simple code genera/on. Luca Della Toffola Compiler Design HS15
Homework 1 Simple code genera/on Luca Della Toffola Compiler Design HS15 1 Administra1ve issues Has everyone found a team- mate? Mailing- list: cd1@lists.inf.ethz.ch Please subscribe if we forgot you 2
More informationPractical Malware Analysis
Practical Malware Analysis Ch 4: A Crash Course in x86 Disassembly Revised 1-16-7 Basic Techniques Basic static analysis Looks at malware from the outside Basic dynamic analysis Only shows you how the
More informationObjec+ves. Review. Basics of Java Syntax Java fundamentals. What are quali+es of good sooware? What is Java? How do you compile a Java program?
Objec+ves Basics of Java Syntax Java fundamentals Ø Primi+ve data types Ø Sta+c typing Ø Arithme+c operators Ø Rela+onal operators 1 Review What are quali+es of good sooware? What is Java? Ø Benefits to
More informationSec$on 2: Specifica)on, ADTs, RI WITH MATERIAL FROM MANY
Sec$on 2: Specifica)on, ADTs, RI WITH MATERIAL FROM MANY Agenda Announcements HW1: due today at 23:59 pm Don t forget to commit/push your changes THIS INCLUDES TAGGING YOUR FINAL VERSION Abstract data
More informationRegion of memory managed with stack discipline Grows toward lower addresses. Register %esp contains lowest stack address = address of top element
Machine Representa/on of Programs: Procedures Instructors: Sanjeev Se(a 1 IA32 Stack Region of memory managed with stack discipline Grows toward lower addresses Stack BoGom Increasing Addresses Register
More informationTopic 6: Code Generation
Compilers 2008 Topic 6: 6.4 Conditional Instructions Status Flags Conditionals A special register exists called the FLAGS register Consists of a sequence of bits, which are set (1) or unset (0). These
More informationSQLite with a Fine-Toothed Comb. John Regehr Trust-in-So1 / University of Utah
SQLite with a Fine-Toothed Comb John Regehr Trust-in-So1 / University of Utah Feasible states for a system we care about No execu
More informationPrinciples of Programming Languages
Principles of Programming Languages h"p://www.di.unipi.it/~andrea/dida2ca/plp- 14/ Prof. Andrea Corradini Department of Computer Science, Pisa Lesson 14! Sta:c versus Dynamic Checking Type checking Type
More informationEDA180: Compiler Construc6on Context- free grammars. Görel Hedin Revised:
EDA180: Compiler Construc6on Context- free grammars Görel Hedin Revised: 2013-01- 28 Compiler phases and program representa6ons source code Lexical analysis (scanning) Intermediate code genera6on tokens
More informationLecture 1 Introduc-on
Lecture 1 Introduc-on What would you get out of this course? Structure of a Compiler Op9miza9on Example 15-745: Introduc9on 1 What Do Compilers Do? 1. Translate one language into another e.g., convert
More informationEqua%onal Reasoning of x86 Assembly Code. Kevin Coogan and Saumya Debray University of Arizona, Tucson, AZ
Equa%onal Reasoning of x86 Assembly Code Kevin Coogan and Saumya Debray University of Arizona, Tucson, AZ Assembly Code is Source Code Commercial libraries oeen do not come with source code, but there
More informationHigh-Level Synthesis Creating Custom Circuits from High-Level Code
High-Level Synthesis Creating Custom Circuits from High-Level Code Hao Zheng Comp Sci & Eng University of South Florida Exis%ng Design Flow Register-transfer (RT) synthesis - Specify RT structure (muxes,
More informationRelated Course Objec6ves
Syntax 9/18/17 1 Related Course Objec6ves Develop grammars and parsers of programming languages 9/18/17 2 Syntax And Seman6cs Programming language syntax: how programs look, their form and structure Syntax
More informationFix- point engine in Z3. Krystof Hoder Nikolaj Bjorner Leonardo de Moura
μz Fix- point engine in Z3 Krystof Hoder Nikolaj Bjorner Leonardo de Moura Mo?va?on Horn EPR applica?ons (Datalog) Points- to analysis Security analysis Deduc?ve data- bases and knowledge bases (Yago)
More informationFaculty of Engineering Computer Engineering Department Islamic University of Gaza Assembly Language Lab # 2 Assembly Language Fundamentals
Faculty of Engineering Computer Engineering Department Islamic University of Gaza 2011 Assembly Language Lab # 2 Assembly Language Fundamentals Assembly Language Lab # 2 Assembly Language Fundamentals
More informationSta$c Single Assignment (SSA) Form
Sta$c Single Assignment (SSA) Form SSA form Sta$c single assignment form Intermediate representa$on of program in which every use of a variable is reached by exactly one defini$on Most programs do not
More informationCS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 32: Pipeline Parallelism 3
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 32: Pipeline Parallelism 3 Instructor: Dan Garcia inst.eecs.berkeley.edu/~cs61c! Compu@ng in the News At a laboratory in São Paulo,
More informationCOSC 111: Computer Programming I. Dr. Bowen Hui University of Bri>sh Columbia Okanagan
COSC 111: Computer Programming I Dr. Bowen Hui University of Bri>sh Columbia Okanagan 1 First half of course SoEware examples From English to Java Template for building small programs Exposure to Java
More informationRegister Alloca.on Deconstructed. David Ryan Koes Seth Copen Goldstein
Register Alloca.on Deconstructed David Ryan Koes Seth Copen Goldstein 12th Interna+onal Workshop on So3ware and Compilers for Embedded Systems April 24, 12009 Register Alloca:on Problem unbounded number
More informationMacro Assembler. Defini3on from h6p://www.computeruser.com
The Macro Assembler Macro Assembler Defini3on from h6p://www.computeruser.com A program that translates assembly language instruc3ons into machine code and which the programmer can use to define macro
More informationmith College Computer Science CSC231 Assembly Week #9 Spring 2017 Dominique Thiébaut
mith College Computer Science CSC231 Assembly Week #9 Spring 2017 Dominique Thiébaut dthiebaut@smith.edu 2 Videos to Watch at a Later Time https://www.youtube.com/watch?v=fdmzngwchdk https://www.youtube.com/watch?v=k2iz1qsx4cm
More informationProject: Embedded SMC
Project: Embedded SMC What is Secure Computa1on [SMC] A Compute f(a, B) Without revealing A to Bob and B to Alice B 2 Using a Trusted Third Party A B f(a, B) f(a, B) A Compute f(a, B) Without revealing
More informationCSC 2400: Computer Systems. Towards the Hardware: Machine-Level Representation of Programs
CSC 2400: Computer Systems Towards the Hardware: Machine-Level Representation of Programs Towards the Hardware High-level language (Java) High-level language (C) assembly language machine language (IA-32)
More informationBasic Assembly SYSC-3006
Basic Assembly Program Development Problem: convert ideas into executing program (binary image in memory) Program Development Process: tools to provide people-friendly way to do it. Tool chain: 1. Programming
More informationAdvanced Topics in MNIT. Lecture 1 (27 Aug 2015) CADSL
Compiler Construction Virendra Singh Computer Architecture and Dependable Systems Lab Department of Electrical Engineering Indian Institute of Technology Bombay http://www.ee.iitb.ac.in/~viren/ E-mail:
More informationCS 31: Intro to Systems ISAs and Assembly. Martin Gagné Swarthmore College February 7, 2017
CS 31: Intro to Systems ISAs and Assembly Martin Gagné Swarthmore College February 7, 2017 ANNOUNCEMENT All labs will meet in SCI 252 (the robot lab) tomorrow. Overview How to directly interact with hardware
More informationDesign Principles & Prac4ces
Design Principles & Prac4ces Robert France Robert B. France 1 Understanding complexity Accidental versus Essen4al complexity Essen%al complexity: Complexity that is inherent in the problem or the solu4on
More informationCSC 8400: Computer Systems. Machine-Level Representation of Programs
CSC 8400: Computer Systems Machine-Level Representation of Programs Towards the Hardware High-level language (Java) High-level language (C) assembly language machine language (IA-32) 1 Compilation Stages
More informationComputer Architecture: Mul1ple Issue. Berk Sunar and Thomas Eisenbarth ECE 505
Computer Architecture: Mul1ple Issue Berk Sunar and Thomas Eisenbarth ECE 505 Outline 5 stages of RISC Type of hazards Sta@c and Dynamic Branch Predic@on Pipelining with Excep@ons Pipelining with Floa@ng-
More informationCS 267: Automated Verification. Lecture 18, Part 2: Data Model Analysis for Web Applications. Instructor: Tevfik Bultan
CS 267: Automated Verification Lecture 18, Part 2: Data Model Analysis for Web Applications Instructor: Tevfik Bultan Web Application Depability 2 Web Application Depability 3 Web Application Depability
More informationLISP: LISt Processing
Introduc)on to Racket, a dialect of LISP: Expressions and Declara)ons LISP: designed by John McCarthy, 1958 published 1960 CS251 Programming Languages Spring 2017, Lyn Turbak Department of Computer Science
More informationA Func'onal Introduc'on. COS 326 David Walker Princeton University
A Func'onal Introduc'on COS 326 David Walker Princeton University Thinking Func'onally In Java or C, you get (most) work done by changing something temp = pair.x; pair.x = pair.y; pair.y = temp; commands
More informationCS 61C: Great Ideas in Computer Architecture Func%ons and Numbers
CS 61C: Great Ideas in Computer Architecture Func%ons and Numbers 9/11/12 Instructor: Krste Asanovic, Randy H. Katz hcp://inst.eecs.berkeley.edu/~cs61c/sp12 Fall 2012 - - Lecture #8 1 New- School Machine
More informationProgram Exploitation Intro
Program Exploitation Intro x86 Assembly 04//2018 Security 1 Univeristà Ca Foscari, Venezia What is Program Exploitation "Making a program do something unexpected and not planned" The right bugs can be
More informationComputer Systems and Networks. ECPE 170 Jeff Shafer University of the Pacific. Introduc>on to MARIE
ECPE 170 Jeff Shafer University of the Pacific Introduc>on to MARIE 2 Schedule Today Introduce MARIE Wed 15 th and Fri 17 th Assembly programming tutorial 3 Recap MARIE Overview How does the MARIE architecture
More informationSemantics of C++ Hauptseminar im Wintersemester 2009/10 Templates
Semantics of C++ Hauptseminar im Wintersemester 2009/10 Templates Sebastian Wild Technische Universität München 11.01.2010 Abstract In this work we will discuss about templates in C++, especially their
More informationThe x86 Architecture
The x86 Architecture Lecture 24 Intel Manual, Vol. 1, Chapter 3 Robb T. Koether Hampden-Sydney College Fri, Mar 20, 2015 Robb T. Koether (Hampden-Sydney College) The x86 Architecture Fri, Mar 20, 2015
More informationThe plan. Racket will return! Lecture will not recount every single feature of Java. Final project will be wri)ng a Racket interpreter in Java.
Introduc)on to Java The plan Racket will return! Final project will be wri)ng a Racket interpreter in Java. Lecture will not recount every single feature of Java. You may need to do some digging on your
More informationCISC327 - So*ware Quality Assurance
CISC327 - So*ware Quality Assurance Lecture 8 Introduc
More informationPrinciples of Programming Languages
Principles of Programming Languages h"p://www.di.unipi.it/~andrea/dida2ca/plp- 14/ Prof. Andrea Corradini Department of Computer Science, Pisa Lesson 11! Syntax- Directed Transla>on The Structure of the
More informationSummary: Direct Code Generation
Summary: Direct Code Generation 1 Direct Code Generation Code generation involves the generation of the target representation (object code) from the annotated parse tree (or Abstract Syntactic Tree, AST)
More informationLecture 15 Intel Manual, Vol. 1, Chapter 3. Fri, Mar 6, Hampden-Sydney College. The x86 Architecture. Robb T. Koether. Overview of the x86
Lecture 15 Intel Manual, Vol. 1, Chapter 3 Hampden-Sydney College Fri, Mar 6, 2009 Outline 1 2 Overview See the reference IA-32 Intel Software Developer s Manual Volume 1: Basic, Chapter 3. Instructions
More informationCSE Lecture 10: Modules and separate compila5on 18 Feb Nate Nystrom University of Texas at Arlington
CSE 5317 Lecture 10: Modules and separate compila5on 18 Feb 2010 Nate Nystrom University of Texas at Arlington Modules Key to building large sodware systems is ability to organize the program into modules
More informationX86 Addressing Modes Chapter 3" Review: Instructions to Recognize"
X86 Addressing Modes Chapter 3" Review: Instructions to Recognize" 1 Arithmetic Instructions (1)! Two Operand Instructions" ADD Dest, Src Dest = Dest + Src SUB Dest, Src Dest = Dest - Src MUL Dest, Src
More informationCompiler Optimization Intermediate Representation
Compiler Optimization Intermediate Representation Virendra Singh Associate Professor Computer Architecture and Dependable Systems Lab Department of Electrical Engineering Indian Institute of Technology
More informationAssembly Language Lab # 4 Data Transfer & Arithmetic (1)
Faculty of Engineering Computer Engineering Department Islamic University of Gaza 2011 Assembly Language Lab # 4 Data Transfer & Arithmetic (1) Eng. Mohammad Elhindi Assembly Language Lab # 4 Data Transfer
More informationRISC-V, Rocket, and RoCC Spring 2017 James Mar2n
RISC-V, Rocket, and RoCC Spring 2017 James Mar2n What s new in Lab 2: In lab 1, you built a SHA3 unit that operates in isola2on We would like Sha3Accel to act as an accelerator for a processor Lab 2 introduces
More informationEffec%ve So*ware. Lecture 9: JVM - Memory Analysis, Data Structures, Object Alloca=on. David Šišlák
Effec%ve So*ware Lecture 9: JVM - Memory Analysis, Data Structures, Object Alloca=on David Šišlák david.sislak@fel.cvut.cz JVM Performance Factors and Memory Analysis» applica=on performance factors total
More informationComputer Architecture. CSE 1019Y Week 16. Introduc>on to MARIE
Computer Architecture CSE 1019Y Week 16 Introduc>on to MARIE MARIE Simple model computer used in this class MARIE Machine Architecture that is Really Intui>ve and Easy Designed for educa>on only While
More informationCS 33. Architecture and Optimization (2) CS33 Intro to Computer Systems XV 1 Copyright 2016 Thomas W. Doeppner. All rights reserved.
CS 33 Architecture and Optimization (2) CS33 Intro to Computer Systems XV 1 Copyright 2016 Thomas W. Doeppner. All rights reserved. Modern CPU Design Instruc&on Control Re%rement Unit Register File Fetch
More informationPrinciples of Programming Languages
Principles of Programming Languages h"p://www.di.unipi.it/~andrea/dida2ca/plp-16/ Prof. Andrea Corradini Department of Computer Science, Pisa Control Flow Iterators Recursion Con>nua>ons Lesson 25! 1 Iterators
More informationAssembly Language LAB
Assembly Language LAB Islamic University Gaza Engineering Faculty Department of Computer Engineering 2013 ECOM 2125: Assembly Language LAB Created by: Eng. Ahmed M. Ayash Modified and Presented By: Eihab
More informationObjec0ves. Gain understanding of what IDA Pro is and what it can do. Expose students to the tool GUI
Intro to IDA Pro 31/15 Objec0ves Gain understanding of what IDA Pro is and what it can do Expose students to the tool GUI Discuss some of the important func
More informationSecond Part of the Course
CSC 2400: Computer Systems Towards the Hardware 1 Second Part of the Course Toward the hardware High-level language (C) assembly language machine language (IA-32) 2 High-Level Language g Make programming
More informationThe Instruction Set. Chapter 5
The Instruction Set Architecture Level(ISA) Chapter 5 1 ISA Level The ISA level l is the interface between the compilers and the hardware. (ISA level code is what a compiler outputs) 2 Memory Models An
More informationType Checking. Outline. General properties of type systems. Types in programming languages. Notation for type rules.
Outline Type Checking General properties of type systems Types in programming languages Notation for type rules Logical rules of inference Common type rules 2 Static Checking Refers to the compile-time
More informationSynthesizing Data- Structure Manipula5ons with Natural Proofs
Synthesizing Data- Structure Manipula5ons with Natural Proofs Xiaokang Qiu (Joint work with Armando Solar- Lezama) Program Synthesis Building Reliable SoHware Program Verification Constraint Solving (Verifica5on
More informationRela+onal Algebra. Rela+onal Query Languages. CISC437/637, Lecture #6 Ben Cartere?e
Rela+onal Algebra CISC437/637, Lecture #6 Ben Cartere?e Copyright Ben Cartere?e 1 Rela+onal Query Languages A query language allows manipula+on and retrieval of data from a database The rela+onal model
More informationReview addressing modes
Review addressing modes Op Src Dst Comments movl $0, %rax Register movl $0, 0x605428 Direct address movl $0, (%rcx) Indirect address movl $0, 20(%rsp) Indirect with displacement movl $0, -8(%rdi, %rax,
More informationOutline. General properties of type systems. Types in programming languages. Notation for type rules. Common type rules. Logical rules of inference
Type Checking Outline General properties of type systems Types in programming languages Notation for type rules Logical rules of inference Common type rules 2 Static Checking Refers to the compile-time
More informationCNIT 127: Exploit Development. Ch 1: Before you begin. Updated
CNIT 127: Exploit Development Ch 1: Before you begin Updated 1-14-16 Basic Concepts Vulnerability A flaw in a system that allows an attacker to do something the designer did not intend, such as Denial
More informationEmulation. Michael Jantz
Emulation Michael Jantz Acknowledgements Slides adapted from Chapter 2 in Virtual Machines: Versatile Platforms for Systems and Processes by James E. Smith and Ravi Nair Credit to Prasad A. Kulkarni some
More informationCS101: Fundamentals of Computer Programming. Dr. Tejada www-bcf.usc.edu/~stejada Week 1 Basic Elements of C++
CS101: Fundamentals of Computer Programming Dr. Tejada stejada@usc.edu www-bcf.usc.edu/~stejada Week 1 Basic Elements of C++ 10 Stacks of Coins You have 10 stacks with 10 coins each that look and feel
More informationMachine- Level Programming II: Arithme6c & Control
Machine- Level Programming II: Arithme6c & Control 15-213: Introduc0on to Computer Systems 5 th Lecture, Sep. 7, 2010 Instructors: Randy Bryant and Dave O Hallaron Modified by Karen L. Karavanic 2015 1
More informationAssembly Language LAB
Assembly Language LAB Islamic University Gaza Engineering Faculty Department of Computer Engineering 2013 ECOM 2125: Assembly Language LAB Eng. Ahmed M. Ayash Lab # 3 Data Transfer & Arithmetic February
More informationChapter 12. Selected Pentium Instructions
Chapter 12 Selected Pentium Instructions 1 2 Chapter 12 12 1 Carry flag indicates out-of-range error for unsigned operations. Chapter 12 3 12 2 Overflow flag indicates out-of-range error for signed operations.
More informationReview. Asser%ons. Some Per%nent Ques%ons. Asser%ons. Page 1. Automated Tes%ng. Path- Based Tes%ng. But s%ll need to look at execu%on results
Review Asser%ons Computer Science 521-621 Fall 2011 Prof. L. J. Osterweil Material adapted from slides originally prepared by Prof. L. A. Clarke Dynamic Tes%ng Execute program on real data and compare
More informationCSE Opera,ng System Principles
CSE 30341 Opera,ng System Principles Lecture 5 Processes / Threads Recap Processes What is a process? What is in a process control bloc? Contrast stac, heap, data, text. What are process states? Which
More informationModel Transforma.on. Krzysztof Czarnecki Genera.ve So:ware Development Lab University of Waterloo, Canada gsd.uwaterloo.ca
Model Transforma.on Krzysztof Czarnecki Genera.ve So:ware Development Lab University of Waterloo, Canada gsd.uwaterloo.ca Modeling Wizards Summer School, Oct. 1, 2010, Oslo, Norway What is model transforma.on?
More information(Func&onal (Programming (in (Scheme)))) Jianguo Lu
(Func&onal (Programming (in (Scheme)))) Jianguo Lu 1 Programming paradigms Func&onal No assignment statement No side effect Use recursion Logic OOP AOP 2 What is func&onal programming It is NOT what you
More informationEfficient JIT to 32-bit Arches
Efficient JIT to 32-bit Arches Jiong Wang Linux Plumbers Conference Vancouver, Nov, 2018 1 Background ISA specification and impact on JIT compiler Default code-gen use 64-bit register, ALU64, JMP64 test_l4lb_noinline.c
More informationFlorian Florob Zeitz
esign Goals Florian Zeitz 2017-06-07 1 / 48 1 esign Goals 2 3 esign Goals 4 5 6 2 / 48 1 esign Goals 2 3 esign Goals 4 5 6 3 / 48 esign Goals 4 / 48 esign Goals low-level control config registers hardware
More informationGCC Internals: A Conceptual View Part II
: A Conceptual View Part II Abhijat Vichare CFDVS, Indian Institute of Technology, Bombay January 2008 Plan Part I GCC: Conceptual Structure C Program through GCC Building GCC Part II Gimple The MD-RTL
More informationOutline. Review: Assembly/Machine Code View. Processor State (x86-64, Par2al) Condi2on Codes (Explicit Se^ng: Compare) Condi2on Codes (Implicit Se^ng)
Outline Machine- Level Representa2on: Control CSCI 2021: Machine Architecture and Organiza2on Pen- Chung Yew Department Computer Science and Engineering University of Minnesota Control: Condi2on codes
More informationIntroduc)on to C++ CS 16: Solving Problems with Computers I Lecture #2
Introduc)on to C++ CS 16: Solving Problems with Computers I Lecture #2 Ziad Matni Dept. of Computer Science, UCSB A Word About Registra>on for CS16 FOR THOSE OF YOU NOT YET REGISTERED: There s a LONG waitlist
More informationCompiler Construction D7011E
Compiler Construction D7011E Lecture 8: Introduction to code generation Viktor Leijon Slides largely by Johan Nordlander with material generously provided by Mark P. Jones. 1 What is a Compiler? Compilers
More informationAssembly II: Control Flow. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Assembly II: Control Flow Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Processor State (x86-64) RAX 63 31 EAX 0 RBX EBX RCX RDX ECX EDX General-purpose
More informationSta$c Analysis Dataflow Analysis
Sta$c Analysis Dataflow Analysis Roadmap Overview. Four Analysis Examples. Analysis Framework Soot. Theore>cal Abstrac>on of Dataflow Analysis. Inter- procedure Analysis. Taint Analysis. Overview Sta>c
More informationBBM 101 Introduc/on to Programming I Fall 2014, Lecture 3. Aykut Erdem, Erkut Erdem, Fuat Akal
BBM 101 Introduc/on to Programming I Fall 2014, Lecture 3 Aykut Erdem, Erkut Erdem, Fuat Akal 1 Today Introduc/on to Programming Basic Concepts Developing Algorithms Crea
More informationPrinciples of Programming Languages
Principles of Programming Languages h"p://www.di.unipi.it/~andrea/dida2ca/plp- 14/ Prof. Andrea Corradini Department of Computer Science, Pisa Lesson 10! Con:nua:on of the course Syntax- Directed Transla:on
More informationData Representa/ons: IA32 + x86-64
X86-64 Instruc/on Set Architecture Instructor: Sanjeev Se(a 1 Data Representa/ons: IA32 + x86-64 Sizes of C Objects (in Bytes) C Data Type Typical 32- bit Intel IA32 x86-64 unsigned 4 4 4 int 4 4 4 long
More informationStatic Program Analysis
Static Program Analysis Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ws-1617/spa/ Recap: Taking Conditional Branches into Account Extending
More informationTowards the Hardware"
CSC 2400: Computer Systems Towards the Hardware Chapter 2 Towards the Hardware High-level language (Java) High-level language (C) assembly language machine language (IA-32) 1 High-Level Language Make programming
More informationW1005 Intro to CS and Programming in MATLAB. Brief History of Compu?ng. Fall 2014 Instructor: Ilia Vovsha. hip://www.cs.columbia.
W1005 Intro to CS and Programming in MATLAB Brief History of Compu?ng Fall 2014 Instructor: Ilia Vovsha hip://www.cs.columbia.edu/~vovsha/w1005 Computer Philosophy Computer is a (electronic digital) device
More informationCS 31: Intro to Systems ISAs and Assembly. Kevin Webb Swarthmore College February 9, 2016
CS 31: Intro to Systems ISAs and Assembly Kevin Webb Swarthmore College February 9, 2016 Reading Quiz Overview How to directly interact with hardware Instruction set architecture (ISA) Interface between
More information10/7/15. MediaItem tostring Method. Objec,ves. Using booleans in if statements. Review. Javadoc Guidelines
Objec,ves Excep,ons Ø Wrap up Files Streams MediaItem tostring Method public String tostring() { String classname = getclass().tostring(); StringBuilder rep = new StringBuilder(classname); return rep.tostring();
More informationAssembly II: Control Flow
Assembly II: Control Flow Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu)
More informationCS 31: Intro to Systems ISAs and Assembly. Kevin Webb Swarthmore College September 25, 2018
CS 31: Intro to Systems ISAs and Assembly Kevin Webb Swarthmore College September 25, 2018 Overview How to directly interact with hardware Instruction set architecture (ISA) Interface between programmer
More information