THE CONSTRUCTION OF AN ALGOL TRANSLATOR FOR A SMALL COMPUTER
|
|
- Evangeline Dickerson
- 5 years ago
- Views:
Transcription
1 i.i THE CONSTRUCTION OF AN ALGOL TRANSLATOR FOR A SMALL COMPUTER w. L. van der Poet Dr. Neher Laboratory PTT, Leidschendam, Netherlands For the computer Zebra we have undertaken a project of constructing an Algol translator with the aim of being as complete as possible (with the only exception of own variable arrays). As a few new concepts are used in this design, it is thought to be useful to communicate them in this form. Zebra is a two address machine with a very limited fast store and a reasonable drum store of 8192 words. The operation code is a rather peculiar one. Every bit of the 15 bits of the function part of an instruction is used separately for a different elementary function. The operations are in fact micro-operations and more complicated actions such as multiplication, division, list searching, etc. are not built in functions but can be readily programmed. This makes the code extremely powerful for just those operations which are required for an Algol translator. On the other hand it is not the appropriate object language for Algol. Therefore we decided to create a new object language within the machine which is used interpretatively. The structure of this object language (called Intermediate Code or IC) is fully adapted to the requirements of Algol. The analytic code of Zebra helps a great deal in making the interpreter fast and c0.npact. Another reason why an interpretive code is not such a drawback is that the machine has no built-in floating point operations so that these have to be programmed anyway. The system as a whole works on a load-and-go basis. First the translator is put into the machine, into the upper end of the store and the Algol program is then fed in, translated and built up in the lower part of the store. Then the interpreter overwrites the translator and the program can start working. We shall distinguish these phases by the names translate phase ~nd run phase. : i I 229
2 230 W. L. VAN DER POEL During translation the store is divided into three lists: (a) the program to be built-up, (b) the identifier list (I-list), (c) the L-list. The arrangement is as follows: program L-list I-list ----I translator The I-list starts at the high end of the store and has an extension reading into the translator for the fixed (pre-declared) identifier such as sin, read, etc. The program is built up in the lower part; the L-list is somewhere in between. The reason for making the I-list running backward is a very important one. For every occurrence of an identifier the I-list must be searched for this identifier and this searching process must of course be as fast as possible. In our analytic code this can be done by a repetition instruction, searching in ascending order through consecutive drum location. Thus a fully optimum timing is attained and the last identifier placed in the list is found first. This accounts for the local, non-local concept. For fast searching see (1). We shall call an Algol symbol an identifier, a number or a delimiter. It is silently understood that the read routine already composes the complete identifiers and numbers and also determines the correct delimiter expressed by a word such as procedure. The read routine also skips all comment situations.wedistinguish 3 such comment situations: (a) the situation after comment (b) the situation after end (c) the situation after ) followed by a letter. The third kind of comment also copes with the parameter delimiter but far more than that. It is permitted in our translator to have any string not containing (. All comments are skipped only
3 CONSTRUCTION OF AN ALGOL TRANSLATOR 231 i 0 I after treatment of the foregoing symbol by the translator thus obviating the difficulty of comment after the last end. Identifiers are read as numbers in radix 37. (26 letters, 10 figures and 1 spare). More than 6 characters give an overflow of the capacity of the word but this is allowed. Only a marking bit is kept which distinguishes an identifier of more than 6 characters from one with 6 or less. Hence there is a risk that two identifiers of more than 6 characters will be represented by the same word but we have taken that extremely remote chance thus being able to place no limitation on the number of characters in an identifier. The L-list serves many different purposes. In the first place it holds these Algol symbols which cannot be translated directly because of their order of occurrence. E.g. in a + b * c +... the read routine reads a, +, b* and on seeing * it knows that it has to go on reading until an operator of lower rank than * has been read. On reading the + it translates into take b, multiply c and only then remove a and + from the list by adding add a to the program. It will be clear from this example that we have only obeyed in our translator to the rules of precedence for operators and we have not adhered to any rule for the order of evaluation of the primaries. The change of order into inverse polish notation is now well known so that I can leave details about this process to be read elsewhere. In the second place the list L is used for string symbols like begin together with several stack pointers and variables as they were at the moment of reading begin. E.g. in the case of begin there are stored the address where the last instruction that has been translated has been stored, the last location of the identifier list and the last relative address given outside the block just being entered. Then after having translated the completed inside of the block everything what happened inside has disappeared from L and on finding end all pointers and variables are restored to their value before entering the block. When the program meets L or L meets I, the list L is shifted up or down wholesale. During run time the translated program is already built up in the store. The translator is now overwritten by the interpreter (or for smaller Algol programs both can be held in the store together). The remainder of the store is again used for two stacks. The Q-stack is used for all simple variables and simple intermediate results. These intermediate results are stored in the true
4 232 W. L. VAN DER POEL 1 program.. P-stack Q-stack interpreter stack fashion on top and are exactly used in the reverse order in which they are put in the stack. Intermediate results are stored in unpacked form. The P-stack is used for arrays, fixed and variable. The allocation is fully dynamic and is only determined during run time. Constants, own simple variables and own (constant bound) arrays are imbedded in the program itself. For a single constant the instruction using it automatically jumps over the constant placed consecutively. For own arrays the space for it is reserved at the time the declaration is translated. The greatest advantages from the two stack system come from the allocation system during translation. There are two kinds of locations which cannot be given an absolute address during translation time; one is the variable array, which is dynamically allocated during run time; the other one is the space for formals in procedures. As procedures.can be used recursively a single absolute address is not sufficient for all levels of activation. The mechanism for allocations therefore is staged as follows: Every instruction has an operation part, an address part and a rank. As long as the translator is not translating the inside of a procedure declaration and hence is not dealing with any formals, all simples can be given absolute addresses. They get a rank O. Also the entering of blocks does not necessitate other than absolute addresses. But as soon as a procedure is translated it is not known when or where or at what level this procedure is activated. Then all formals are given relative addresses, and the instruction referring to a formal gets an appropriate rank ;z!c O. The first translated procedure gets a rank 1. When inside that procedure again another procedure is declared, this gets rank 2 etc. Hence the system of ranks is a static picture of the level of a procedure, not a dynamic one during run time. The top of the stack at run time when calling a procedure is put into the stack together with the link and some other quantities. Then the called procedure starts work and formals within the body are using the relative addresses given during translation relative to the beginning point determined during run time. When for example in a procedure of rank 20 a non-local quantity of rank 5 is
5 !. CONSTRUCTION OF AN ALGOL TRANSLATOR 233 needed, the interpreter sees that the rank of the quantity needed is not the same as the present rank and then goes through the action of chain searching. The link of rank 20 contains the top of the stack at rank 19 and these quantities again contain the top of the stack at rank 18 etc. chain ~~~ Q stack IIII working space IIII working space IIII g, 5- of 2 g, 5- of proc. 1 link ~w ~w ~1 The reason for not fixing down the beginning points of the relative addresses in procedures is that it can happen very well that in a procedure at level 20 a non-local quantity of level 5 is called which appears to be a new parameter-less procedure call rising to level 30 in itself and building up a completely new chain of relative addresses in the top of the stack from 5 to 30. This does not interfere with the old chain which still remains in the stack lower down. When this last procedure has been evaluated, everything needed for the evaluation has disappeared again from the stack and the former level 20 proceeds. The process of chain searching is a very fast one in our computer as it can be done by underwater programming techniques. For a fuller account of this see (1). To give a better insight into the coding of a procedure we shall give here an abbreviated form of the structure. The procedure declaration is coded as: X Dl D2 : An instruction calling the displacer subroutine.' The displacer sets the link and makes the full formal actual correspondence. : A specification pattern giving information about type, value, etc. of the first formal parameter : Specification pattern of second parameter i,! I Dk : Specification pattern of last parameter. All D's are positive. -r : The rank of this procedure put there negatively so that the displacer can see the end.
6 234 W. L. VAN DER POEL body: Here follow all instructions of the procedure body in Ie or machine code. Y : The procedure body ends with a subroutine Y called the counter displacer which returns and restores the stack top pointers to their previous values in the calling program. The procedure call looks as follows: J s : A jump to the X of the procedure to be called : A link address to where the procedure must return, which at the same time gives an indication of the place where to find the key of the first actual Object progr. of Y 1: The object program for the evaluation of the first actual expression when this is not a simple variable. Absent when Yi is a simple Obj ect progr. of Y 2: etc. Object progr. of Yk: o A zero which signals the end of the retrogressive list of keys for actuals Key of Yk : The key of Yk gives information about the I kind of the actual, whether formal or actual. I It can be a simple, an expression, a proce- Key of Y 2 dure, a label or switch, an array, a string Key of Y 1 or a formal The displacer treats all actuals in turn and compares the pattern Dk with the keys, transpo;ts the quantities called by value and transforms type when the specified type is not the same as the type of the actual. In fact the type speciflcation and the value list is the only information extracted from the specification. Procedure, label, switch, array, string automatically are clear from the parameter keys. The structure of the instruction is worth reviewing for a while. The bits are numbered from left to right. Bit q = from the type of operation. When 10 = 0 the instruction is a real machine code instruction and is not interpreted. When 10 = 1 then q > 64. The operations 64 ~ q < 96 are the arithmetic, relational and Boolean operations such as add, equal, implies etc. Bit 16 serves
7 CONSTRUCTION OF AN ALGOL TRANSLATOR 235 the purpose of indicating whether a non-commutative operation is progressive or regressive i.e whether e.g. a subtraction has to form a-b or -a+b. Hence all operations such as division, implication, greater are only present in one version. The other version is produced by interchange of operands. The operations 96 ~ q < 104 are the extractive operations such as take, take negatively, take inverse). The operations 104 ~ q are called the non-extractive operations. They contain the storing operations of different kinds (store accu, store address, store factor, store procedure) and many organizational operations as test, jump, pass, adjust (for the dynamic block begin), restore (for the restoration of stack pointers on leaving a block) and verify. The last one is a very peculiar one and is inserted where during tra.nslation no information about the kind can be extracted from the quantity itself as for example a constant as an actual parameter of a procedure which is itself called by name. Or in the case that a non-specified actual is a subscripted variable but where it is not known whether this is a designational expression or an arithmetical expression. The verify order is then substituted and during run time when of course the kind is clear from the actual keys the true operation is executed. Some operations are true machine code operations such as X, calling the displacer and Y, calling the counter displacer, restore (for labeled places for restoring stack pointers as entrance from jump leaving from inner blocks), return (for returning from an evaluation of an actual which is an expression), several kinds of for instructions for doing the for, step and while elements. The bit hindicates the type of the operation. 17 = 0 indicated integer or Boolean type and 17 = 1 indicates real type. It has an advantage to have Booleans represented by the integers o -- 0 and In that case the logical operations of intersection etc. on binary numbers can then be very simply done by applying Boolean operators on integers. But of course this must be hidden in a machine code body procedure looking like Algol on the inside as this sort of tricks does not belong to Algol. The bit Is = 1 indicates in an extractive instruction that the type declared is not in correspondence with the type required. Then an automatic transfer of type takes place. For example in formal instructions the type bits 17 and Is are copied from the parameter keys during the formal actuat"correspondence.
8 236 W. L. VAN DER POEL At last the bit 19 = 0 indicates that a formal parameter is used, 19 = 1 indicates that the operation concerns an actual denote the rank of the instruction which initiates the chain searching when the rank of the instr, at hand is not in line with the rank of the procedure at hand is the absolute or relative address. We have thus created within a machine not made for Algol an operation code and address system which comply very admirably with the requirements of Algol. There is one further subject on which I should like to make some explanations. It is not required in our system to give procedure declarations or switch declarations in any prescribed order. It can very well happen that in a procedure A a procedure B is called while B has still to be declared, provided it is declared in the same block. Also a go to statement can lead to a label which is only declared latertn The block or even can be declared later or earlier outside the block. (A label followed by colon is considered to be the declaration of a label). The solution has been found as follows: every occurrence of an actual or a label in a go to statement is counter-declared and placed in the I-list, also when already a declaration outside the block has occurred. Only on finishing the translation of a block all counterdeclarations are treated and looked up whether they correspond with a normal declaration. They are then cancelled and all instructions concerned are adjusted accordirigly. If not, they are shifted down in the identifier list and incorporated in the identifier list of the enclosing block. When then the declaration comes in the outer block they are treated there. At last no counter declarations may be left over otherwise there is an error. It follows that as switches are fully treated in the same way as labels, a switch declaration may in principle be given anywhere in the block. Acknowledgement. A great many ideas for the realization of this translator have been contributed by Dr. G. v.d. Mey to whom I must express my warmest gratitude. Also to Mr. Mulders who coded a big part of the translator and brought the technique for underwater programming so peculiar for Zebra to a new height. REFERENCES 1. W. L. van der Poel, Microprogramming and trickology, in Digitale Informationswandler, ed. W. Hoffmann Vieweg 1962.
ZEBRA, a simple binary computer 1
Chapter 12 ZEBRA, a simple binary computer 1 W. L. van der Poel Summary The computer ZEBRA a computer based on the following ideas: and 1. The logical structure of the arithmetic control units of the machine
More informationUNIT-II. Part-2: CENTRAL PROCESSING UNIT
Page1 UNIT-II Part-2: CENTRAL PROCESSING UNIT Stack Organization Instruction Formats Addressing Modes Data Transfer And Manipulation Program Control Reduced Instruction Set Computer (RISC) Introduction:
More informationCOMPUTER ARCHITECTURE AND ORGANIZATION Register Transfer and Micro-operations 1. Introduction A digital system is an interconnection of digital
Register Transfer and Micro-operations 1. Introduction A digital system is an interconnection of digital hardware modules that accomplish a specific information-processing task. Digital systems vary in
More informationCSc 10200! Introduction to Computing. Lecture 2-3 Edgardo Molina Fall 2013 City College of New York
CSc 10200! Introduction to Computing Lecture 2-3 Edgardo Molina Fall 2013 City College of New York 1 C++ for Engineers and Scientists Third Edition Chapter 2 Problem Solving Using C++ 2 Objectives In this
More informationA.1 Numbers, Sets and Arithmetic
522 APPENDIX A. MATHEMATICS FOUNDATIONS A.1 Numbers, Sets and Arithmetic Numbers started as a conceptual way to quantify count objects. Later, numbers were used to measure quantities that were extensive,
More informationCOMPUTER ARCHITECTURE AND ORGANIZATION. Operation Add Magnitudes Subtract Magnitudes (+A) + ( B) + (A B) (B A) + (A B)
Computer Arithmetic Data is manipulated by using the arithmetic instructions in digital computers. Data is manipulated to produce results necessary to give solution for the computation problems. The Addition,
More informationNumber Systems CHAPTER Positional Number Systems
CHAPTER 2 Number Systems Inside computers, information is encoded as patterns of bits because it is easy to construct electronic circuits that exhibit the two alternative states, 0 and 1. The meaning of
More informationThunks. A Way of Compiling Procedure Statements with Some Comments on Procedure Declarations* P. Z. Ingerman
Reprinted from the~communications OF THE ASSOCIATION FOR COMPUTING MACHINERY Volume 4, Number 1, January 1961 Made in U.S.A. Thunks A Way of Compiling Procedure Statements with Some Comments on Procedure
More informationPrinciple of Complier Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore
Principle of Complier Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Lecture - 20 Intermediate code generation Part-4 Run-time environments
More informationDivide: Paper & Pencil
Divide: Paper & Pencil 1001 Quotient Divisor 1000 1001010 Dividend -1000 10 101 1010 1000 10 Remainder See how big a number can be subtracted, creating quotient bit on each step Binary => 1 * divisor or
More informationLab copy. Do not remove! Mathematics 152 Spring 1999 Notes on the course calculator. 1. The calculator VC. The web page
Mathematics 152 Spring 1999 Notes on the course calculator 1. The calculator VC The web page http://gamba.math.ubc.ca/coursedoc/math152/docs/ca.html contains a generic version of the calculator VC and
More informationThere are four numeric types: 1. Integers, represented as a 32 bit (or longer) quantity. Digits sequences (possibly) signed are integer literals:
Numeric Types There are four numeric types: 1. Integers, represented as a 32 bit (or longer) quantity. Digits sequences (possibly) signed are integer literals: 1-123 +456 2. Long integers, of unlimited
More informationCHAPTER TWO. Data Representation ( M.MORRIS MANO COMPUTER SYSTEM ARCHITECTURE THIRD EDITION ) IN THIS CHAPTER
1 CHAPTER TWO Data Representation ( M.MORRIS MANO COMPUTER SYSTEM ARCHITECTURE THIRD EDITION ) IN THIS CHAPTER 2-1 Data Types 2-2 Complements 2-3 Fixed-Point Representation 2-4 Floating-Point Representation
More informationSigned umbers. Sign/Magnitude otation
Signed umbers So far we have discussed unsigned number representations. In particular, we have looked at the binary number system and shorthand methods in representing binary codes. With m binary digits,
More informationComputer Organization & Assembly Language Programming. CSE 2312 Lecture 15 Addressing and Subroutine
Computer Organization & Assembly Language Programming CSE 2312 Lecture 15 Addressing and Subroutine 1 Sections in 8088 Code TEXT section, for the processor instructions. DATA section for the initialization
More information1. NUMBER SYSTEMS USED IN COMPUTING: THE BINARY NUMBER SYSTEM
1. NUMBER SYSTEMS USED IN COMPUTING: THE BINARY NUMBER SYSTEM 1.1 Introduction Given that digital logic and memory devices are based on two electrical states (on and off), it is natural to use a number
More informationCOMPUTER ARITHMETIC (Part 1)
Eastern Mediterranean University School of Computing and Technology ITEC255 Computer Organization & Architecture COMPUTER ARITHMETIC (Part 1) Introduction The two principal concerns for computer arithmetic
More informationIntroduction to Scientific Computing
Introduction to Scientific Computing Dr Hanno Rein Last updated: October 12, 2018 1 Computers A computer is a machine which can perform a set of calculations. The purpose of this course is to give you
More informationThe PCAT Programming Language Reference Manual
The PCAT Programming Language Reference Manual Andrew Tolmach and Jingke Li Dept. of Computer Science Portland State University September 27, 1995 (revised October 15, 2002) 1 Introduction The PCAT language
More informationThe SPL Programming Language Reference Manual
The SPL Programming Language Reference Manual Leonidas Fegaras University of Texas at Arlington Arlington, TX 76019 fegaras@cse.uta.edu February 27, 2018 1 Introduction The SPL language is a Small Programming
More informationCS401 - Computer Architecture and Assembly Language Programming Glossary By
CS401 - Computer Architecture and Assembly Language Programming Glossary By absolute address : A virtual (not physical) address within the process address space that is computed as an absolute number.
More informationDigital System Design Using Verilog. - Processing Unit Design
Digital System Design Using Verilog - Processing Unit Design 1.1 CPU BASICS A typical CPU has three major components: (1) Register set, (2) Arithmetic logic unit (ALU), and (3) Control unit (CU) The register
More informationChapter 5 : Computer Arithmetic
Chapter 5 Computer Arithmetic Integer Representation: (Fixedpoint representation): An eight bit word can be represented the numbers from zero to 255 including = 1 = 1 11111111 = 255 In general if an nbit
More information19 Much that I bound, I could not free; Much that I freed returned to me. Lee Wilson Dodd
19 Much that I bound, I could not free; Much that I freed returned to me. Lee Wilson Dodd Will you walk a little faster? said a whiting to a snail, There s a porpoise close behind us, and he s treading
More informationLecture 3 Tao Wang 1
Lecture 3 Tao Wang 1 Objectives In this chapter, you will learn about: Arithmetic operations Variables and declaration statements Program input using the cin object Common programming errors C++ for Engineers
More informationC Language Part 1 Digital Computer Concept and Practice Copyright 2012 by Jaejin Lee
C Language Part 1 (Minor modifications by the instructor) References C for Python Programmers, by Carl Burch, 2011. http://www.toves.org/books/cpy/ The C Programming Language. 2nd ed., Kernighan, Brian,
More informationExcerpt from: Stephen H. Unger, The Essence of Logic Circuits, Second Ed., Wiley, 1997
Excerpt from: Stephen H. Unger, The Essence of Logic Circuits, Second Ed., Wiley, 1997 APPENDIX A.1 Number systems and codes Since ten-fingered humans are addicted to the decimal system, and since computers
More informationAdvanced Parallel Architecture Lesson 3. Annalisa Massini /2015
Advanced Parallel Architecture Lesson 3 Annalisa Massini - 2014/2015 Von Neumann Architecture 2 Summary of the traditional computer architecture: Von Neumann architecture http://williamstallings.com/coa/coa7e.html
More informationComputer Organisation CS303
Computer Organisation CS303 Module Period Assignments 1 Day 1 to Day 6 1. Write a program to evaluate the arithmetic statement: X=(A-B + C * (D * E-F))/G + H*K a. Using a general register computer with
More informationProgramming 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 informationTHE LOGICAL STRUCTURE OF THE RC 4000 COMPUTER
THE LOGICAL STRUCTURE OF THE RC 4000 COMPUTER PER BRINCH HANSEN (1967) This paper describes the logical structure of the RC 4000, a 24-bit, binary computer designed for multiprogramming operation. The
More informationDIGITAL ARITHMETIC: OPERATIONS AND CIRCUITS
C H A P T E R 6 DIGITAL ARITHMETIC: OPERATIONS AND CIRCUITS OUTLINE 6- Binary Addition 6-2 Representing Signed Numbers 6-3 Addition in the 2 s- Complement System 6-4 Subtraction in the 2 s- Complement
More information(+A) + ( B) + (A B) (B A) + (A B) ( A) + (+ B) (A B) + (B A) + (A B) (+ A) (+ B) + (A - B) (B A) + (A B) ( A) ( B) (A B) + (B A) + (A B)
COMPUTER ARITHMETIC 1. Addition and Subtraction of Unsigned Numbers The direct method of subtraction taught in elementary schools uses the borrowconcept. In this method we borrow a 1 from a higher significant
More informationUNIT - I: COMPUTER ARITHMETIC, REGISTER TRANSFER LANGUAGE & MICROOPERATIONS
UNIT - I: COMPUTER ARITHMETIC, REGISTER TRANSFER LANGUAGE & MICROOPERATIONS (09 periods) Computer Arithmetic: Data Representation, Fixed Point Representation, Floating Point Representation, Addition and
More informationThis book is licensed under a Creative Commons Attribution 3.0 License
6. Syntax Learning objectives: syntax and semantics syntax diagrams and EBNF describe context-free grammars terminal and nonterminal symbols productions definition of EBNF by itself parse tree grammars
More information2 1 = 1; 1 1 = 0; 0 1 = 1; 1 1 = 2
Section 1: Integers MATH LESSON PLAN 8 INTEGERS 2015 Copyright Vinay Agarwala, Checked: 10/28/15 1. The following chart shows where integers fit in the scheme of Arithmetic. 2. Integers are numbers that
More informationComputer Architecture Prof. Smruti Ranjan Sarangi Department of Computer Science and Engineering Indian Institute of Technology, Delhi
Computer Architecture Prof. Smruti Ranjan Sarangi Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture - 11 X86 Assembly Language Part-II (Refer Slide Time: 00:25)
More informationDLD VIDYA SAGAR P. potharajuvidyasagar.wordpress.com. Vignana Bharathi Institute of Technology UNIT 1 DLD P VIDYA SAGAR
UNIT I Digital Systems: Binary Numbers, Octal, Hexa Decimal and other base numbers, Number base conversions, complements, signed binary numbers, Floating point number representation, binary codes, error
More informationLecture (01) Digital Systems and Binary Numbers By: Dr. Ahmed ElShafee
١ Lecture (01) Digital Systems and Binary Numbers By: Dr. Ahmed ElShafee Digital systems Digital systems are used in communication, business transactions, traffic control, spacecraft guidance, medical
More informationInteger Algorithms and Data Structures
Integer Algorithms and Data Structures and why we should care about them Vladimír Čunát Department of Theoretical Computer Science and Mathematical Logic Doctoral Seminar 2010/11 Outline Introduction Motivation
More information2 nd Week Lecture Notes
2 nd Week Lecture Notes Scope of variables All the variables that we intend to use in a program must have been declared with its type specifier in an earlier point in the code, like we did in the previous
More informationCGF Lecture 2 Numbers
CGF Lecture 2 Numbers Numbers A number is an abstract entity used originally to describe quantity. i.e. 80 Students etc The most familiar numbers are the natural numbers {0, 1, 2,...} or {1, 2, 3,...},
More informationChapter 2. Data Representation in Computer Systems
Chapter 2 Data Representation in Computer Systems Chapter 2 Objectives Understand the fundamentals of numerical data representation and manipulation in digital computers. Master the skill of converting
More informationWhen using computers, it should have a minimum number of easily identifiable states.
EET 3 Chapter Number Systems (B) /5/4 PAGE Number Systems (B) Number System Characteristics (Tinder) What s important in choosing a number system? Basically, there are four important characteristics desirable
More informationPLC AUTOMATION SYSTEM LABORATORY. Manual
MRS AVN COLLEGE POLYTECHNIC VISAKHAPATNAM DEPARTMENT OF ELECTRICAL ELECTRONICS ENGINEERING PLC AUTOMATION SYSTEM LABORATORY Manual PLC Automation System Laboratory Lab 1 : Getting familiar with Step 7-
More informationModule 5 - CPU Design
Module 5 - CPU Design Lecture 1 - Introduction to CPU The operation or task that must perform by CPU is: Fetch Instruction: The CPU reads an instruction from memory. Interpret Instruction: The instruction
More informationMACHINE INDEPENDENCE IN COMPILING*
MACHINE INDEPENDENCE IN COMPILING* Harry D. Huskey University of California Berkeley, California, USA Since 1958, there has been a substantial interest in the development of problem-oriented languages
More informationDC57 COMPUTER ORGANIZATION JUNE 2013
Q2 (a) How do various factors like Hardware design, Instruction set, Compiler related to the performance of a computer? The most important measure of a computer is how quickly it can execute programs.
More informationAny Integer Can Be Written as a Fraction
All fractions have three parts: a numerator, a denominator, and a division symbol. In the simple fraction, the numerator and the denominator are integers. Eample 1: Find the numerator, denominator, and
More informationOutput: For each size provided as input, a figure of that size is to appear, followed by a blank line.
Problem 1: Divisor Differences Develop a program that, given integers m and k satisfying m > k > 0, lists every pair of positive integers (i,j) such that j i = k and both i and j are divisors of m. Input:
More informationProgramming in C++ 5. Integral data types
Programming in C++ 5. Integral data types! Introduction! Type int! Integer multiplication & division! Increment & decrement operators! Associativity & precedence of operators! Some common operators! Long
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationCombinatorics Prof. Dr. L. Sunil Chandran Department of Computer Science and Automation Indian Institute of Science, Bangalore
Combinatorics Prof. Dr. L. Sunil Chandran Department of Computer Science and Automation Indian Institute of Science, Bangalore Lecture - 5 Elementary concepts and basic counting principles So, welcome
More informationIntel 8086: Instruction Set
IUST-EE (Chapter 6) Intel 8086: Instruction Set 1 Outline Instruction Set Data Transfer Instructions Arithmetic Instructions Bit Manipulation Instructions String Instructions Unconditional Transfer Instruction
More informationComputer Architecture Programming the Basic Computer
4. The Execution of the EXCHANGE Instruction The EXCHANGE routine reads the operand from the effective address and places it in DR. The contents of DR and AC are interchanged in the third microinstruction.
More informationChapter 4: Basic C Operators
Chapter 4: Basic C Operators In this chapter, you will learn about: Arithmetic operators Unary operators Binary operators Assignment operators Equalities and relational operators Logical operators Conditional
More informationCS321. Introduction to Numerical Methods
CS31 Introduction to Numerical Methods Lecture 1 Number Representations and Errors Professor Jun Zhang Department of Computer Science University of Kentucky Lexington, KY 40506 0633 August 5, 017 Number
More informationOur Strategy for Learning Fortran 90
Our Strategy for Learning Fortran 90 We want to consider some computational problems which build in complexity. evaluating an integral solving nonlinear equations vector/matrix operations fitting data
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationMultiway Blockwise In-place Merging
Multiway Blockwise In-place Merging Viliam Geffert and Jozef Gajdoš Institute of Computer Science, P.J.Šafárik University, Faculty of Science Jesenná 5, 041 54 Košice, Slovak Republic viliam.geffert@upjs.sk,
More informationAssessment of Programming Skills of First Year CS Students: Problem Set
Assessment of Programming Skills of First Year CS Students: Problem Set Notes to the working group participants. Enclosed in this file are the three problems. They are in ascending order of difficulty.
More informationData Representation 1
1 Data Representation Outline Binary Numbers Adding Binary Numbers Negative Integers Other Operations with Binary Numbers Floating Point Numbers Character Representation Image Representation Sound Representation
More informationFunctional programming with Common Lisp
Functional programming with Common Lisp Dr. C. Constantinides Department of Computer Science and Software Engineering Concordia University Montreal, Canada August 11, 2016 1 / 81 Expressions and functions
More informationELEMENTARY NUMBER THEORY AND METHODS OF PROOF
CHAPTER 4 ELEMENTARY NUMBER THEORY AND METHODS OF PROOF Copyright Cengage Learning. All rights reserved. SECTION 4.3 Direct Proof and Counterexample III: Divisibility Copyright Cengage Learning. All rights
More informationBasic Processing Unit: Some Fundamental Concepts, Execution of a. Complete Instruction, Multiple Bus Organization, Hard-wired Control,
UNIT - 7 Basic Processing Unit: Some Fundamental Concepts, Execution of a Complete Instruction, Multiple Bus Organization, Hard-wired Control, Microprogrammed Control Page 178 UNIT - 7 BASIC PROCESSING
More informationWednesday, February 4, Chapter 4
Wednesday, February 4, 2015 Topics for today Introduction to Computer Systems Static overview Operation Cycle Introduction to Pep/8 Features of the system Operational cycle Program trace Categories of
More information8051 Overview and Instruction Set
8051 Overview and Instruction Set Curtis A. Nelson Engr 355 1 Microprocessors vs. Microcontrollers Microprocessors are single-chip CPUs used in microcomputers Microcontrollers and microprocessors are different
More information3.5 Practical Issues PRACTICAL ISSUES Error Recovery
3.5 Practical Issues 141 3.5 PRACTICAL ISSUES Even with automatic parser generators, the compiler writer must manage several issues to produce a robust, efficient parser for a real programming language.
More information9/3/2015. Data Representation II. 2.4 Signed Integer Representation. 2.4 Signed Integer Representation
Data Representation II CMSC 313 Sections 01, 02 The conversions we have so far presented have involved only unsigned numbers. To represent signed integers, computer systems allocate the high-order bit
More informationELEMENTARY NUMBER THEORY AND METHODS OF PROOF
CHAPTER 4 ELEMENTARY NUMBER THEORY AND METHODS OF PROOF Copyright Cengage Learning. All rights reserved. SECTION 4.3 Direct Proof and Counterexample III: Divisibility Copyright Cengage Learning. All rights
More informationAt the ith stage: Input: ci is the carry-in Output: si is the sum ci+1 carry-out to (i+1)st state
Chapter 4 xi yi Carry in ci Sum s i Carry out c i+ At the ith stage: Input: ci is the carry-in Output: si is the sum ci+ carry-out to (i+)st state si = xi yi ci + xi yi ci + xi yi ci + xi yi ci = x i yi
More informationProgramming Model 2 A. Introduction
Programming Model 2 A. Introduction Objectives At the end of this lab you should be able to: Use direct and indirect addressing modes of accessing data in memory Create an iterative loop of instructions
More informationOperations On Data CHAPTER 4. (Solutions to Odd-Numbered Problems) Review Questions
CHAPTER 4 Operations On Data (Solutions to Odd-Numbered Problems) Review Questions 1. Arithmetic operations interpret bit patterns as numbers. Logical operations interpret each bit as a logical values
More informationPESIT Bangalore South Campus
INTERNAL ASSESSMENT TEST III Date : 21/11/2017 Max Marks : 40 Subject & Code : Computer Organization (15CS34) Semester : III (A & B) Name of the faculty: Mrs. Sharmila Banu Time : 11.30 am 1.00 pm Answer
More informationChapter 4. Operations on Data
Chapter 4 Operations on Data 1 OBJECTIVES After reading this chapter, the reader should be able to: List the three categories of operations performed on data. Perform unary and binary logic operations
More informationProject 3: RPN Calculator
ECE267 @ UIC, Spring 2012, Wenjing Rao Project 3: RPN Calculator What to do: Ask the user to input a string of expression in RPN form (+ - * / ), use a stack to evaluate the result and display the result
More informationChapter 03: Computer Arithmetic. Lesson 09: Arithmetic using floating point numbers
Chapter 03: Computer Arithmetic Lesson 09: Arithmetic using floating point numbers Objective To understand arithmetic operations in case of floating point numbers 2 Multiplication of Floating Point Numbers
More informationIn this chapter you ll learn:
Much that I bound, I could not free; Much that I freed returned to me. Lee Wilson Dodd Will you walk a little faster? said a whiting to a snail, There s a porpoise close behind us, and he s treading on
More informationCS Summer 2013
CS 1110 - Summer 2013 intro to programming -- how to think like a robot :) we use the Python* language (www.python.org) programming environments (many choices): Eclipse (free from www.eclipse.org), or
More informationChapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines.
Chapter 1 Summary Comments are indicated by a hash sign # (also known as the pound or number sign). Text to the right of the hash sign is ignored. (But, hash loses its special meaning if it is part of
More information(Refer Slide Time: 00:02:02)
Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 20 Clipping: Lines and Polygons Hello and welcome everybody to the lecture
More informationNumber System. Introduction. Natural Numbers (N) Whole Numbers (W) Integers (Z) Prime Numbers (P) Face Value. Place Value
1 Number System Introduction In this chapter, we will study about the number system and number line. We will also learn about the four fundamental operations on whole numbers and their properties. Natural
More informationDDS Dynamic Search Trees
DDS Dynamic Search Trees 1 Data structures l A data structure models some abstract object. It implements a number of operations on this object, which usually can be classified into l creation and deletion
More informationBLITZ I 128. A BASIC Compiler. for. Commodore 128. from. Skyles Electric Works. Instruction Manual. Bob Skyles
Skyles Electric ~rks BLITZ I 128 A BASIC Compiler for Commodore 128 from Skyles Electric Works Instruction Manual by Bob Skyles Table of Contents Subject 1. INTRODUCTION Restrictions Special Instructions
More information±M R ±E, S M CHARACTERISTIC MANTISSA 1 k j
ENEE 350 c C. B. Silio, Jan., 2010 FLOATING POINT REPRESENTATIONS It is assumed that the student is familiar with the discussion in Appendix B of the text by A. Tanenbaum, Structured Computer Organization,
More informationASSEMBLY LANGUAGE MACHINE ORGANIZATION
ASSEMBLY LANGUAGE MACHINE ORGANIZATION CHAPTER 3 1 Sub-topics The topic will cover: Microprocessor architecture CPU processing methods Pipelining Superscalar RISC Multiprocessing Instruction Cycle Instruction
More informationLecture Notes on Ints
Lecture Notes on Ints 15-122: Principles of Imperative Computation Frank Pfenning Lecture 2 August 26, 2010 1 Introduction Two fundamental types in almost any programming language are booleans and integers.
More informationMIPS Architecture and Assembly Language Overview
MIPS Architecture and Assembly Language Overview Adapted from: http://edge.mcs.dre.g.el.edu/gicl/people/sevy/architecture/mipsref(spim).html [Register Description] [I/O Description] Data Types and Literals
More informationLecture 12 Integers. Computer and Network Security 19th of December Computer Science and Engineering Department
Lecture 12 Integers Computer and Network Security 19th of December 2016 Computer Science and Engineering Department CSE Dep, ACS, UPB Lecture 12, Integers 1/40 Outline Data Types Representation Conversions
More informationGO - OPERATORS. This tutorial will explain the arithmetic, relational, logical, bitwise, assignment and other operators one by one.
http://www.tutorialspoint.com/go/go_operators.htm GO - OPERATORS Copyright tutorialspoint.com An operator is a symbol that tells the compiler to perform specific mathematical or logical manipulations.
More informationSection 1.4 Mathematics on the Computer: Floating Point Arithmetic
Section 1.4 Mathematics on the Computer: Floating Point Arithmetic Key terms Floating point arithmetic IEE Standard Mantissa Exponent Roundoff error Pitfalls of floating point arithmetic Structuring computations
More informationRegister Transfer and Micro-operations
Register Transfer Language Register Transfer Bus Memory Transfer Micro-operations Some Application of Logic Micro Operations Register Transfer and Micro-operations Learning Objectives After reading this
More informationAlgorithms & Data Structures
GATE- 2016-17 Postal Correspondence 1 Algorithms & Data Structures Computer Science & Information Technology (CS) 20 Rank under AIR 100 Postal Correspondence Examination Oriented Theory, Practice Set Key
More informationSpecial Section: Building Your Own Compiler
cshtp6_19_datastructures_compiler.fm Page 1 Tuesday, February 14, 2017 10:31 AM 1 Chapter 19 Special Section: Building Your Own Compiler In Exercises8.31 8.33, we introduced Simpletron Machine Language
More informationRadix Conversion in an Unnormalized. Arithmetic System. By N. Metropolis and R. L. Ashenhurst
Radix Conversion in an Unnormalized Arithmetic System By N. Metropolis and R. L. Ashenhurst Introduction. The question of radix conversion of variable-precision binary numbers arises naturally in the context
More informationComputer Organization
Register Transfer Logic Department of Computer Science Missouri University of Science & Technology hurson@mst.edu 1 Note, this unit will be covered in three lectures. In case you finish it earlier, then
More informationAlgorithms and Data Structures
Algorithms and Data Structures PD Dr. rer. nat. habil. Ralf Peter Mundani Computation in Engineering / BGU Scientific Computing in Computer Science / INF Summer Term 2018 Part 2: Data Structures PD Dr.
More informationInternal Data Representation
Appendices This part consists of seven appendices, which provide a wealth of reference material. Appendix A primarily discusses the number systems and their internal representation. Appendix B gives information
More informationA macro- generator for ALGOL
A macro- generator for ALGOL byh.leroy Compagnie Bull-General Electric Paris, France INTRODUCfION The concept of macro-facility is ambiguous, when applied to higher level languages. For some authorsl,2,
More informationSMPL - A Simplified Modeling Language for Mathematical Programming
SMPL - A Simplified Modeling Language for Mathematical Programming Mihály Csaba Markót November 3, 2008 1 Purpose and Scope This working paper describes SMPL, an initiative of a Simplified Modeling Language
More information