(12) United States Patent (10) Patent No.: US 6,212,672 B1 Keller Et Al

Total Page:16

File Type:pdf, Size:1020Kb

(12) United States Patent (10) Patent No.: US 6,212,672 B1 Keller Et Al USOO6212672B1 (12) United States Patent (10) Patent No.: US 6,212,672 B1 Keller et al. (45) Date of Patent: *Apr. 3, 2001 (54) SOFTWARE DEVELOPMENT SYSTEM OTHER PUBLICATIONS WITH AN EXECUTABLE WORKING MODEL IN AN INTERPRETABLE INTERMEDIATE Compilers Principles, Techniques and Tools Aho et al. MODELING LANGUAGE Chapter 8 Intermediate Code Generation, pp. 463-465, Sep. 1985.* (75) Inventors: Steven Keller, Hampstead, NH (US); Teach Yourself Visual Basic for Applications in 21 Days, pp. Richard Gorzela, Lawrence, MA (US); 28-36, Dec. 1994.* Daniel Strom, North Andover, MA Object-Oriented Modeling and Design, James Rumbaugh et (US); David Hughes, Arlington, MA al. pp. 57-62, Nov. 14, 1990.* (US); James Holt, Needham, MA (US) Template Software Inc. “User's Guide to the SNAP Devel opment Environment” version 7.0, 1995.* (73) Assignee: Dynamics Research Corporation, Template Softweare Inc. “User’s Guide to the Development Wilmington, MA (US) Process' version 7.0, 1995.* Template Software, “Using the SNAP Development Envi (*) Notice: This patent issued on a continued pros- ronment SNAP Foundation Environment Chpts 1-3, ecution application filed under 37 CFR 1998.* 1.53(d), and is subject to the twenty year patent term provisions of 35 U.S.C. “Template Software Strenthens . ”, Newswire, Product 154(a)(2). release information for version 8.0, 1998.* - 0 (List continued on next page.) Subject to any disclaimer, the term of this patent is extended or adjusted under 35 Primary Examiner Mark R. Powell U.S.C. 154(b) by 0 days. Assistant Examiner Todd Ingberg (74) Attorney, Agent, or Firm Weingarten, Schurgin, (21) Appl. No.: 08/813,487 Gagnebin & Hayes LLP (57) ABSTRACT (22)22) FileFilled: Mar.ar, 7,f, 1997 A Software development tool utilizes an intermediate object 7 modeling language. The Structure of the desired program is (51) Int. Cl.? .… G06F 9/44 first described graphically by generating rule diagrams, State diagrams, and object diagrams Such as user interface (52) U.S. C. SL LSSLLSSLLSL LSSLLSSLLSSLLSSL LSLLSLLSL LSSLLSSLLSSL LSLLSLLSL LSSLLSSLLSSL LSLLSLLSL LSSLLSSLLSSLLSSL LSLLSLLSL LSSLLSSLLSSL LSLLSLLSL LSSLLSSLLSL LSSLLSSLLSSLLSSL LSLLSLLSL LSSLLSSLLSSL LSLLSLLSL LSSLLSSLLSSL LSLLSLLSL LSSLLSSLLSSLLSSL LSLLSLLSL LSSLLS 717/1 diagrams, eVent diagrams and other object diagrams. The development tool employs the diagrams to generate a work (58) Field of Sea???/703,704,705,706, }A. : ing model of the program expressed in the object modeling 717/1, 2 language. The working model of the program can be executed without lengthy compiling, and hence program (56) References Cited behavior can be quickly observed and tested. Further, the behavior of the working model can be quickly and easily U.S. PATENT DOCUMENTS changed by modifying the diagrams until the desired result 5,487,141 1/1996 Cain et al. ........................... 395/135 is achieved. Source code is then generated from the object 5.537,630 7/1996 Berry et al. ... ... 395/155 modeling language and compiled to create the final program. 5,720,018 * 2/1998 Muller et al. ... 395/702 5,742,828 * 4/1998 Canady et al. ... 395/702 5,764,241 6/1998 Elliot et al. .......................... 395/702 92 Claims, 36 Drawing Sheets 12 OBJECTDAGRAMS 16 14 18 UEDAGRAMS ? RULE STATE DIAGRAMS) 20-EVENTDAGRAMS--THEREENS DIAGRAMS OMML -wa 31> | GENERATOR SOURCE - DISPLAY? DAABASE 26 CODE 28 TERMINAL FINAL PROGRAM N-10 US 6,212,672 B1 Page 2 OTHER PUBLICATIONS Computer Language "Smelling Like a Rose’ Tom Bragg, Mar. 1993. Template Software Product release version 6.0, Sep. 1994. * “Principles of Object-Oriented Analysis and Design” James Data Based Advisor “A Rose is a Rose’ D. Goddard, Mar. Martin Text Book, Oct. 1992.* 1995.* Visual Object Oriented Programming Concepts and Envi Rational Software Corporation-Using Rational Rose C++ roments: M. Burnett et al Text Book, Dec. 1994.* version 4.0, 1996. * Windows Tech Journal “The Seet Smell of C++” KWeeks, Sep.1994.* * cited by examiner U.S. Patent Apr. 3, 2001 Sheet 1 of 36 US 6,212,672 B1 OBJECT DIAGRAMS 16 12 14 UDAGRAMS RULE STATE EVENT DIAGRAMS DAGRAMS DIAGRAMS OTHERDAGRAMS OML INTERPRETER G / ENERATOR SOURCE DISPLAYI DATABASE CODE TERMINAL FINAL PROGRAM FIG. I. U.S. Patent Apr. 3, 2001 Sheet 2 of 36 US 6,212,672 B1 Z'OIH U.S. Patent Apr. 3, 2001 Sheet 3 of 36 US 6,212,672 B1 dA/pJBMJO ?IEMIOJ 08 9(9.I.H. #"SOIAI U.S. Patent Apr. 3, 2001 Sheet 4 of 36 US 6,212,672 B1 EXIT 94 ??tr? 88 State A time-Out State B entrylcallhome do: time-out(2000) e?callhome 90 92 FIG. 6 90 An Event Diagram 90 FIG. 7 Purchase Requisitio SourceEntity ...Total/Cost Vice President largeCOst - aDDrOVal/ largeCostPrologue f . " : large0COst ?TotalCOst ARULE DAGRAM ENIG 8 U.S. Patent Apr. 3, 2001 Sheet 5 of 36 US 6,212,672 B1 ?98 o TurnKey(Clutchy on FIG 9 NewCausePrologue NeWCause NewCause NewCauseEpilogue ASSOciation Arity ArgNo Satisfied AddtoMenu ----- 100 - 102 - 104 FIG 10A Object 440 Causename(object effect) Causename(object effect) Effectname{Object Rule Action,…) : 446 s 448 FIG. I (OB U.S. Patent Apr. 3, 2001 Sheet 6 of 36 US 6,212,672 B1 SomeCause ThirdEffect FOurthEffect ThirdEffect RuleAction? RuleACtion8 FourthEffect RuleAction.9 RuleAction 10 SeCOndEffect ThirdEffect FirstEffect RuleAction1 RuleAction3 RuleACtion5 SeCOndEffect RuleACtion2 RuleAction4 RuleAction6 SomeCauSe en ." >138 ArgNo y ?~134 Satisfied a. AdiroMenu (c.138 136 FIG. I2 FIG. 13 U.S. Patent Apr. 3, 2001 Sheet 7 of 36 US 6,212,672 B1 backackgroung d green A Planned ASSOCiation FIG. I.5 DoSomething - employs Define ... I DefineFrOmReS DefineWithinh . Compare . Call o?somevariable Unit FIG. 20 U.S. Patent Apr. 3, 2001 Sheet 8 of 36 US 6,212,672 B1 178 182 180 Arguments (SomeUni184 I. 186 Load DeleteUnit . 188 . SomeUnit -N175 FIG 21 DoSomething Pop Push Push FIG. 22 204 200 Somethi DoSomething 206 Rename H. <> ???" AnotherUnit ... I <> "" 08 . 210 202 `???mess??? FIG. 23 U.S. Patent Apr. 3, 2001 Sheet 9 of 36 US 6,212,672 B1 218 DoSomething " 1?? | | <><> * a 220 216 FIG. 24 * FIG. 25 230 234 228 || DoSomething -- SomeUnit SetLocation || C> ". ?csomepathunitfilefil236 240 "SomeUnit DoSomething [TRUE] SetOrdered || ...“ ASSert ... owns 258 ASSert "...... ASSert ?? "........ ASSert . employs 246 244 FIG. 27 U.S. Patent Apr. 3, 2001 Sheet 10 Of 36 US 6,212,672 B1 DoSomething 268 DoSomething Unload || "Someunit - 270 266 FIG. 28 FIG. 29 DOSomething TimedCalCause - 4000 SideEffect || ". PayEmployee . 276 272 FIG. 30 280 282 . Color(Carred) 284 doit = (- Define . 286 FIG. 31 U.S. Patent Apr. 3, 2001 Sheet 11 of 36 US 6,212,672 B1 300 FIG. 32 . doit Define 302 "Color(Carred) 304 Term 306 TermArgNo FIG. 33 Define '. 308 doit Arguments "| drives ASSert H. Car FIG. 34 U.S. Patent Apr. 3, 2001 Sheet 12 of 36 US 6,212,672 B1 314 doit " PayEmployee Call 320 . 322 FIG. 35 314 312 320 doit - PayEmployee Cal|| || . || ||Cause ||||||| ". 322 316 324 FIG. 36 326 Cat (Via <> 328 KI> “. 330 FIG, 37 doit a ????? Define . U.S. Patent Apr. 3, 2001 Sheet 13 of 36 US 6,212,672 B1 XmPUShButton 338 - labelString 336 PlabelValue Define FrOm ReSOUrce i. 340 Define 334 renas. FIG 38 348 ??emp]~36 FIG. 39 354 doit Function p?? SideEffect. ... Name<> - “... VisualMagic FIG. 40 U.S. Patent Apr. 3, 2001 Sheet 14 Of 36 US 6,212,672 B1 358 360 362 "Button 364 IsSubclaSS Subclass … Coit |Superclass || -....XmPushButton Define * FIG. 42 Color(car, red) 37 368 FIG. 43 U.S. Patent Apr. 3, 2001 Sheet 16 of 36 US 6,212,672 B1 390 doit (Ptemp)- Y392 ... Bob FIG. 48 398 400 r4000 COit ?? PayEmployee Side Effect Interval . 402 ... Cause Object . 404 . 2temp FIG. 49 406 UnitLOCation 408? Unit .......??? 412 doit . Define . LSL itemp}\to FIG. 504 U.S. Patent Apr. 3, 2001 Sheet 17 of 36 US 6,212,672 B1 414 416 <> |5| FIG. 50B 702 704 706 FIG. 5IB FIG 51A U.S. Patent Apr. 3, 2001 Sheet 18 of 36 US 6,212,672 B1 Translating Diagrams To OML Models 426?? 424 OWns Building Cashier Station Owns (Bank,CashierStation) Owns (Bank, Building) FIG. 52 isA (Station1,CashierStation) 430 isA (Station2,CashierStation) 428 FIG. 53 432 434 Supervises Employee Supervises (Supervisor,Employee) Supervises (Fido,Buttons) isA (Fido,Dog) isA (Buttons,Cat) FIG. 54 U.S. Patent Apr. 3, 2001 Sheet 19 Of 36 US 6,212,672 B1 MAP Display 29 Disk Storage Event -drawing Map.dat rdb, dat 454?? 45 6 User Interface Initial Incremental Loading Load/UnloadUnits sssr callback 0>DB 450 Or terms ?????????? Rule Action OML Interpreter Call Relational C++ Function Database 470 468 U.S. Patent Apr. 3, 2001 Sheet 21 of 36 US 6,212,672 B1 Active entrylightOn1 530 ????exitfightOff 532 change entrylchange(3000) SourceEntity 500 Object s 506 lightOnPrologue 504 lightOfPrologue Define Define Define Put FIG. 62 U.S. Patent Apr. 3, 2001 Sheet 22 of 36 US 6,212,672 B1 U.S. Patent Apr. 3, 2001 Sheet 23 of 36 US 6,212,672 B1 909 U.S. Patent US 6,212,672 B1 U.S. Patent Apr. 3, 2001 Sheet 25 of 36 US 6,212,672 B1 U.S. Patent Apr. 3, 2001 Sheet 26 of 36 US 6,212,672 B1 |799(5)IAI U.S. Patent 189 U.S. Patent Apr. 3, 2001 Sheet 28 of 36 US 6,212,672 B1 999 799999 019 Z/9 ) 789 U.S. Patent Apr. 3, 2001 Sheet 29 Of 36 US 6,212,672 B1 Z9%)IH U.S. Patent Apr. 3, 2001 Sheet 31 of 36 US 6,212,672 B1 09/ $799(9IAI 89/99/ U.S. Patent Apr. 3, 2001 Sheet 32 of 36 US 6,212,672 B1 Generate 748 Generate Causes for each wiMHaS CauSe 750 756 752 G t 754 Generate GS8G CauSe Function Cause Prologue Generate CauSeS Epilogue -Call to Prologue -Call to iterator for(same prologue) as -Call to Epilogue 762 758 Generate Cause ??????????????????" Effects Alternatives Calls 9 764 for each Handles Calls to Alternative superclass functions 76C if this function fails Generate Cause Alternative Call FIG.
Recommended publications
  • Frequently Asked Questions in Mathematics
    Frequently Asked Questions in Mathematics The Sci.Math FAQ Team. Editor: Alex L´opez-Ortiz e-mail: [email protected] Contents 1 Introduction 4 1.1 Why a list of Frequently Asked Questions? . 4 1.2 Frequently Asked Questions in Mathematics? . 4 2 Fundamentals 5 2.1 Algebraic structures . 5 2.1.1 Monoids and Groups . 6 2.1.2 Rings . 7 2.1.3 Fields . 7 2.1.4 Ordering . 8 2.2 What are numbers? . 9 2.2.1 Introduction . 9 2.2.2 Construction of the Number System . 9 2.2.3 Construction of N ............................... 10 2.2.4 Construction of Z ................................ 10 2.2.5 Construction of Q ............................... 11 2.2.6 Construction of R ............................... 11 2.2.7 Construction of C ............................... 12 2.2.8 Rounding things up . 12 2.2.9 What’s next? . 12 3 Number Theory 14 3.1 Fermat’s Last Theorem . 14 3.1.1 History of Fermat’s Last Theorem . 14 3.1.2 What is the current status of FLT? . 14 3.1.3 Related Conjectures . 15 3.1.4 Did Fermat prove this theorem? . 16 3.2 Prime Numbers . 17 3.2.1 Largest known Mersenne prime . 17 3.2.2 Largest known prime . 17 3.2.3 Largest known twin primes . 18 3.2.4 Largest Fermat number with known factorization . 18 3.2.5 Algorithms to factor integer numbers . 18 3.2.6 Primality Testing . 19 3.2.7 List of record numbers . 20 3.2.8 What is the current status on Mersenne primes? .
    [Show full text]
  • Chapter 7 Expressions and Assignment Statements
    Chapter 7 Expressions and Assignment Statements Chapter 7 Topics Introduction Arithmetic Expressions Overloaded Operators Type Conversions Relational and Boolean Expressions Short-Circuit Evaluation Assignment Statements Mixed-Mode Assignment Chapter 7 Expressions and Assignment Statements Introduction Expressions are the fundamental means of specifying computations in a programming language. To understand expression evaluation, need to be familiar with the orders of operator and operand evaluation. Essence of imperative languages is dominant role of assignment statements. Arithmetic Expressions Their evaluation was one of the motivations for the development of the first programming languages. Most of the characteristics of arithmetic expressions in programming languages were inherited from conventions that had evolved in math. Arithmetic expressions consist of operators, operands, parentheses, and function calls. The operators can be unary, or binary. C-based languages include a ternary operator, which has three operands (conditional expression). The purpose of an arithmetic expression is to specify an arithmetic computation. An implementation of such a computation must cause two actions: o Fetching the operands from memory o Executing the arithmetic operations on those operands. Design issues for arithmetic expressions: 1. What are the operator precedence rules? 2. What are the operator associativity rules? 3. What is the order of operand evaluation? 4. Are there restrictions on operand evaluation side effects? 5. Does the language allow user-defined operator overloading? 6. What mode mixing is allowed in expressions? Operator Evaluation Order 1. Precedence The operator precedence rules for expression evaluation define the order in which “adjacent” operators of different precedence levels are evaluated (“adjacent” means they are separated by at most one operand).
    [Show full text]
  • Operators and Expressions
    UNIT – 3 OPERATORS AND EXPRESSIONS Lesson Structure 3.0 Objectives 3.1 Introduction 3.2 Arithmetic Operators 3.3 Relational Operators 3.4 Logical Operators 3.5 Assignment Operators 3.6 Increment and Decrement Operators 3.7 Conditional Operator 3.8 Bitwise Operators 3.9 Special Operators 3.10 Arithmetic Expressions 3.11 Evaluation of Expressions 3.12 Precedence of Arithmetic Operators 3.13 Type Conversions in Expressions 3.14 Operator Precedence and Associability 3.15 Mathematical Functions 3.16 Summary 3.17 Questions 3.18 Suggested Readings 3.0 Objectives After going through this unit you will be able to: Define and use different types of operators in Java programming Understand how to evaluate expressions? Understand the operator precedence and type conversion And write mathematical functions. 3.1 Introduction Java supports a rich set of operators. We have already used several of them, such as =, +, –, and *. An operator is a symbol that tells the computer to perform certain mathematical or logical manipulations. Operators are used in programs to manipulate data and variables. They usually form a part of mathematical or logical expressions. Java operators can be classified into a number of related categories as below: 1. Arithmetic operators 2. Relational operators 1 3. Logical operators 4. Assignment operators 5. Increment and decrement operators 6. Conditional operators 7. Bitwise operators 8. Special operators 3.2 Arithmetic Operators Arithmetic operators are used to construct mathematical expressions as in algebra. Java provides all the basic arithmetic operators. They are listed in Tabled 3.1. The operators +, –, *, and / all works the same way as they do in other languages.
    [Show full text]
  • ARM Instruction Set
    4 ARM Instruction Set This chapter describes the ARM instruction set. 4.1 Instruction Set Summary 4-2 4.2 The Condition Field 4-5 4.3 Branch and Exchange (BX) 4-6 4.4 Branch and Branch with Link (B, BL) 4-8 4.5 Data Processing 4-10 4.6 PSR Transfer (MRS, MSR) 4-17 4.7 Multiply and Multiply-Accumulate (MUL, MLA) 4-22 4.8 Multiply Long and Multiply-Accumulate Long (MULL,MLAL) 4-24 4.9 Single Data Transfer (LDR, STR) 4-26 4.10 Halfword and Signed Data Transfer 4-32 4.11 Block Data Transfer (LDM, STM) 4-37 4.12 Single Data Swap (SWP) 4-43 4.13 Software Interrupt (SWI) 4-45 4.14 Coprocessor Data Operations (CDP) 4-47 4.15 Coprocessor Data Transfers (LDC, STC) 4-49 4.16 Coprocessor Register Transfers (MRC, MCR) 4-53 4.17 Undefined Instruction 4-55 4.18 Instruction Set Examples 4-56 ARM7TDMI-S Data Sheet 4-1 ARM DDI 0084D Final - Open Access ARM Instruction Set 4.1 Instruction Set Summary 4.1.1 Format summary The ARM instruction set formats are shown below. 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 9876543210 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Cond 0 0 I Opcode S Rn Rd Operand 2 Data Processing / PSR Transfer Cond 0 0 0 0 0 0 A S Rd Rn Rs 1 0 0 1 Rm Multiply Cond 0 0 0 0 1 U A S RdHi RdLo Rn 1 0 0 1 Rm Multiply Long Cond 0 0 0 1 0 B 0 0 Rn Rd 0 0 0 0 1 0 0 1 Rm Single Data Swap Cond 0 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 Rn Branch and Exchange Cond 0 0 0 P U 0 W L Rn Rd 0 0 0 0 1 S H 1 Rm Halfword Data Transfer: register offset Cond 0 0 0 P U 1 W L Rn Rd Offset 1 S H 1 Offset Halfword Data Transfer: immediate offset Cond 0
    [Show full text]
  • PYTHON BASIC OPERATORS Rialspo Int.Co M/Pytho N/Pytho N Basic O Perato Rs.Htm Copyrig Ht © Tutorialspoint.Com
    PYTHON BASIC OPERATORS http://www.tuto rialspo int.co m/pytho n/pytho n_basic_o perato rs.htm Copyrig ht © tutorialspoint.com What is an operator? Simple answer can be g iven using expression 4 + 5 is equal to 9. Here, 4 and 5 are called operands and + is called operator. Python lang uag e supports the following types of operators. Arithmetic Operators Comparison (i.e., Relational) Operators Assig nment Operators Log ical Operators Bitwise Operators Membership Operators Identity Operators Let's have a look on all operators one by one. Python Arithmetic Operators: Assume variable a holds 10 and variable b holds 20, then: [ Show Example ] Operator Description Example + Addition - Adds values on either side of the a + b will g ive 30 operator - Subtraction - Subtracts rig ht hand operand a - b will g ive -10 from left hand operand * Multiplication - Multiplies values on either side a * b will g ive 200 of the operator / Division - Divides left hand operand by rig ht b / a will g ive 2 hand operand % Modulus - Divides left hand operand by rig ht b % a will g ive 0 hand operand and returns remainder ** Exponent - Performs exponential (power) a**b will g ive 10 to the power 20 calculation on operators // Floor Division - The division of operands 9//2 is equal to 4 and 9.0//2.0 is equal to where the result is the quotient in which the 4.0 dig its after the decimal point are removed. Python Comparison Operators: Assume variable a holds 10 and variable b holds 20, then: [ Show Example ] Operator Description Example == Checks if the value of two operands are equal (a == b) is not true.
    [Show full text]
  • Multiplication and Division Instructions
    MultiplicationMultiplication andand DivisionDivision InstructionsInstructions • MUL Instruction • IMUL Instruction • DIV Instruction • Signed Integer Division • Implementing Arithmetic Expressions Irvine, Kip R. Assembly Language for Intel-Based Computers, 2003. 1 MULMUL InstructionInstruction • The MUL (unsigned multiply) instruction multiplies an 8-, 16-, or 32-bit operand by either AL, AX, or EAX. • The instruction formats are: MUL r/m8 MUL r/m16 MUL r/m32 Implied operands: Irvine, Kip R. Assembly Language for Intel-Based Computers, 2003. 2 MULMUL ExamplesExamples 100h * 2000h, using 16-bit operands: .data val1 WORD 2000h The Carry flag indicates whether or val2 WORD 100h not the upper half of .code the product contains mov ax,val1 significant digits. mul val2 ; DX:AX = 00200000h, CF=1 12345h * 1000h, using 32-bit operands: mov eax,12345h mov ebx,1000h mul ebx ; EDX:EAX = 0000000012345000h, CF=0 Irvine, Kip R. Assembly Language for Intel-Based Computers, 2003. 3 YourYour turnturn .. .. .. What will be the hexadecimal values of DX, AX, and the Carry flag after the following instructions execute? mov ax,1234h mov bx,100h mul bx DX = 0012h, AX = 3400h, CF = 1 Irvine, Kip R. Assembly Language for Intel-Based Computers, 2003. 4 YourYour turnturn .. .. .. What will be the hexadecimal values of EDX, EAX, and the Carry flag after the following instructions execute? mov eax,00128765h mov ecx,10000h mul ecx EDX = 00000012h, EAX = 87650000h, CF = 1 Irvine, Kip R. Assembly Language for Intel-Based Computers, 2003. 5 IMULIMUL InstructionInstruction • IMUL (signed integer multiply ) multiplies an 8-, 16-, or 32-bit signed operand by either AL, AX, or EAX • Preserves the sign of the product by sign-extending it into the upper half of the destination register Example: multiply 48 * 4, using 8-bit operands: mov al,48 mov bl,4 imul bl ; AX = 00C0h, OF=1 OF=1 because AH is not a sign extension of AL.
    [Show full text]
  • Mathematics Learning
    1 Key understandings in mathematics learning Paper 1: Overview By Terezinha Nunes, Peter Bryant and Anne Watson, University of Oxford A review commissioned by the Nuffield Foundation 2 PaperSUMMARY 1: Overview – PAPER 2: Understanding whole numbers About this review In 2007, the Nuffield Foundation commissioned a Contents team from the University of Oxford to review the available research literature on how children learn Summary of findings 3 mathematics. The resulting review is presented in a series of eight papers: Overview 10 Paper 1: Overview References 36 Paper 2: Understanding extensive quantities and whole numbers Paper 3: Understanding rational numbers and intensive quantities About the authors Paper 4: Understanding relations and their graphical Terezinha Nunes is Professor of Educational representation Studies at the University of Oxford. Paper 5: Understanding space and its representation Peter Bryant is Senior Research Fellow in the in mathematics Department of Education, University of Oxford. Paper 6: Algebraic reasoning Anne Watson is Professor of Mathematics Paper 7: Modelling, problem-solving and integrating Education at the University of Oxford. concepts Paper 8: Methodological appendix About the Nuffield Foundation Papers 2 to 5 focus mainly on mathematics relevant The Nuffield Foundation is an endowed to primary schools (pupils to age 11 y ears), while charitable trust established in 1943 by William papers 6 and 7 consider aspects of mathematics Morris (Lord Nuffield), the founder of Morris in secondary schools. Motors, with the aim of advancing social w ell being. We fund research and pr actical Paper 1 includes a summar y of the review, which experiment and the development of capacity has been published separately as Introduction and to undertake them; working across education, summary of findings.
    [Show full text]
  • V850e/Ms1 , V850e/Ms2
    User’s Manual V850E/MS1TM, V850E/MS2TM 32-Bit Single-Chip Microcontrollers Architecture V850E/MS1: V850E/MS2: µPD703100 µPD703130 µPD703100A µPD703101 µPD703101A µPD703102 µPD703102A µPD70F3102 µPD70F3102A Document No. U12197EJ6V0UM00 (6th edition) Date Published November 2002 N CP(K) 1996 Printed in Japan [MEMO] 2 User’s Manual U12197EJ6V0UM NOTES FOR CMOS DEVICES 1 PRECAUTION AGAINST ESD FOR SEMICONDUCTORS Note: Strong electric field, when exposed to a MOS device, can cause destruction of the gate oxide and ultimately degrade the device operation. Steps must be taken to stop generation of static electricity as much as possible, and quickly dissipate it once, when it has occurred. Environmental control must be adequate. When it is dry, humidifier should be used. It is recommended to avoid using insulators that easily build static electricity. Semiconductor devices must be stored and transported in an anti-static container, static shielding bag or conductive material. All test and measurement tools including work bench and floor should be grounded. The operator should be grounded using wrist strap. Semiconductor devices must not be touched with bare hands. Similar precautions need to be taken for PW boards with semiconductor devices on it. 2 HANDLING OF UNUSED INPUT PINS FOR CMOS Note: No connection for CMOS device inputs can be cause of malfunction. If no connection is provided to the input pins, it is possible that an internal input level may be generated due to noise, etc., hence causing malfunction. CMOS devices behave differently than Bipolar or NMOS devices. Input levels of CMOS devices must be fixed high or low by using a pull-up or pull-down circuitry.
    [Show full text]
  • High-Speed Multi Operand Addition Utilizing Flag Bits
    HIGH-SPEED MULTI OPERAND ADDITION UTILIZING FLAG BITS BY VIBHUTI DAVE DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer Engineering in the Graduate College of the Illinois Institute of Technology Approved _________________________ Adviser _________________________ Co – Adviser Chicago, Illinois May 2007 ACKNOWLEDGEMENT I would like to thank my mentor Dr. Erdal Oruklu for his constant support and undue faith in me. I highly appreciate the time he has invested during my research and for the completion of this dissertation. This dissertation would not have been possible without Dr. Jafar Saniie, my advisor and his attempts to challenge me throughout my academic program, encouraging me when I was successful and pushing me to do better when I fell short. I would also like to thank Dr. Dimitrios Velenis and Dr. James Stine for their constructive criticism about my work and helping me to perform better. A special thanks to the committee members for their support and time. iii TABLE OF CONTENTS Page ACKNOWLEDGEMENT ....................................................................................... iii LIST OF TABLES ................................................................................................... vi LIST OF FIGURES ................................................................................................. vii ABSTRACT ............................................................................................................
    [Show full text]
  • 10 Instruction Sets: Characteristics and Functions Instruction Set = the Complete Collection of Instructions That Are Recognized by a CPU
    William Stallings Computer Organization and Architecture 8th Edition Chapter 10 Instruction Sets: Characteristics and Functions Instruction Set = The complete collection of instructions that are recognized by a CPU. Representations: • Machine code (Binary/Hex) • Assembly code (Mnemonics) Example (IAS – see ch.2): 00000101 0000000011 ADD M(3) Elements of an Instruction • Operation code (opcode) —Do this • Source operand(s) reference(s) —To this • Result operand reference —Put the answer here • Next instruction reference —When you’ve finished, go here to find out what to do next... 00000101 0000000011 ADD M(3) Where are the operands stored? • In the instruction itself —immediate addressing • Main memory —or virtual memory or caches, but this is transparent to the CPU • CPU register • I/O device —If memory-mapped, it’s just another address 00000101 0000000011 ADD M(3) Instruction Cycle State Diagram (ch.3) Instruction Representation • In machine code each instruction (incl. operands!) has a unique bit pattern • In assembly code: —ADD M(3) —ADD A,B —etc. High-level language and assembly language X = X + Y compiles into: • Load register A with contents of memory address 513 • Add reg. A w/contents of mem. addr. 514 • Store reg. A into mem. addr. 513 Conclusion: assembly is closer to the hardware. Instruction Types • Data processing (ALU) • Data storage (main memory) • Data movement (I/O) • Program flow control Number of Addresses (a) • 3 addresses —Operand 1, Operand 2, Result —a = b + c; —There may be a forth – the next instruction! (usually
    [Show full text]
  • Assembly Language
    Chapter 2 Instructions: Assembly Language Reading: The corresponding chapter in the 2nd edition is Chapter 3, in the 3rd edition it is Chapter 2 and Appendix A and in the 4th edition it is Chapter 2 and Appendix B. 2.1 Instructions and Instruction set The language to command a computer architecture is comprised of instructions and the vocabulary of that language is called the instruction set. The only way computers can rep- resent information is based on high or low electric signals, i.e., transistors (electric switches) being turned on or off. Being limited to those 2 alternatives, we represent information in com- puters using bits (binary digits), which can have one of two values: 0 or 1. So, instructions will be stored in and read by computers as sequences of bits. This is called machine language. To make sure we don't need to read and write programs using bits, every instruction will also have a "natural language" equivalent, called the assembly language notation. For example, in C, we can use the expression c = a + b; or, in assembly language, we can use add c; a; b and these instructions will be represented by a sequence of bits 000000 010001001 in the computer. Groups of bits are named as follows: ··· bit 0 or 1 byte 8 bits half word 16 bits word 32 bits double word 64 bits Since every bit can only be 0 or 1, with a group of n bits, we can generate 2n different combinations of bits. For example, we can make 28 combinations with one byte (8 bits), 216 with one half word (16 bits), and 232 with one word (32 bits).
    [Show full text]
  • Assembly Language: Part 1
    Assembly Language: Part 1 1 Context of this Lecture First half lectures: “Programming in the large” Second half lectures: “Under the hood” Starting Now Afterward C Language Application Program language service levels Assembly Language levels Operating System tour tour Machine Language Hardware 2 Goals of this Lecture Help you learn: • Language levels • The basics of x86-64 architecture • Enough to understand x86-64 assembly language • The basics of x86-64 assembly language • Instructions to define global data • Instructions to transfer data and perform arithmetic 3 Lectures vs. Precepts Approach to studying assembly language: Precepts Lectures Study complete pgms Study partial pgms Begin with small pgms; Begin with simple proceed to large ones constructs; proceed to complex ones Emphasis on writing Emphasis on reading code code 4 Agenda Language Levels Architecture Assembly Language: Defining Global Data Assembly Language: Performing Arithmetic 5 High-Level Languages Characteristics • Portable count = 0; • To varying degrees while (n>1) • Complex { count++; • One statement can do if (n&1) much work n = n*3+1; • Expressive else • To varying degrees n = n/2; } • Good (code functionality / code size) ratio • Human readable 6 Machine Languages Characteristics • Not portable 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 • Specific to hardware 9222 9120 1121 A120 1121 A121 7211 0000 0000 0001 0002 0003 0004 0005 0006 0007 • Simple 0008 0009 000A 000B 000C 000D 000E 000F • Each instruction does 0000 0000 0000
    [Show full text]