Pseudo-Code Readability Pseudo-Code

Total Page:16

File Type:pdf, Size:1020Kb

Pseudo-Code Readability Pseudo-Code 9/14/20 Role of programming languages • What is a programming language? Pseudo-Code – Interface between user and machine • Trade-off – Ease of use - high level – Efficiency - low level CS4100 – Formal Method Dr. Martin • Describe a solution to a problem From Principles of Programming Languages: Design, • Organize a solution to a problem Evaluation, and Implementation (Third Edition), by • Reason about a solution to a problem Bruce J. MacLennan, Chapter 1, and based on slides by Istvan Jonyer. 1 2 1 2 Role of programming languages Readability • What is a programming language? • Is machine code readable? – A language that is intended for the – 000000101011110011010101011110 expression of computer programs and that • Assembly language? is capable of expressing any computer – mov dx tmp program. – add ax bx dx • Is high-level code readable? – http://www0.us.ioccc.org/years.html#2004 • http://www0.us.ioccc.org/2004/arachnid.c • http://www0.us.ioccc.org/2004/anonymous.c 3 4 3 4 Pseudo-Code Pseudo-Code Interpreters • An instruction code that is different than • Is programming difficult? that provided by the machine • In the 1950ʼs, it was… • Has an interpretive subroutine to – E.g.: IBM 650 execute • No programming language was available (not even assembler) • Implements a virtual computer • Memory was only a few thousand words – Has own data types and operations • Stored program and data on rotating drum • (Can view all programming languages • Instructions included address of next instruction so that rotating drum was under next instruction this way) to execute and no full rotations were wasted • Problem: What if address is already occupied? 5 6 5 6 1 9/14/20 Part of an IBM 650 program Program DESIGN Notations • Complexity led to development of program LOC OP DATA INST COMMENTS design notations 1107 46 1112 1061 Shall the loop box be used? 1061 30 0003 1019 – Memory layout 1019 20 1023 1026 Store C. – Control flow 1026 60 8003 1033 • Flow Diagrams (von Neumann & Goldstine) 1033 30 0003 1041 • Later: Flowcharts 1041 20 1045 1048 Store B. – Mnemonics 1048 60 8003 1105 • To help remember instruction codes 1105 30 0003 1063 • Like assembly language today 1063 44 1067 1076 Is an 02-operation called for? • These were designed to help the programmer, 1076 10 1020 8003 8003 69 8002 1061 Go to an 01-subroutine. not to be interpreted by computers 7 8 7 8 Floating Point Arithmetic • Earliest built-in floating point processing: • IBM 650 and card IBM 704 Operatorʼs Console IBM 704 reader http://www-03.ibm.com/ibm/history/exhibits/mainframe/mainframe_2423PH704C.html http://www-03.ibm.com/ibm/history/exhibits/650/650_album.html • Before that, it had to be simulated – Manual scaling • Multiply by constant factor • Use integer processor • Manually scale back result • Complicated and error-prone process 9 10 9 10 Indexing Pseudo-Code Interpreters • Array is one of most common data structures • Subroutines were commonly used to perform floating-point operations and indexing • Indexing – “Adding a variable index quantity to a fixed address • Consistent use of these simplified the in order to access the element of an array” programming process – Indexing was not supported by early computers • This simulated instructions not provided by – They used address modification the hardware • Alter the programʼs own data accessing instruction • Next logical step: • Compute actual address from pointer and offset, then write into instructionʼs data address portion – Use instruction set not provided by the computer – Pseudo-Code interpreter (a primitive, interpreted – Very error prone process programming language) 11 12 11 12 2 9/14/20 “Appendix D” A Virtual Computer • Why not simplify programming by providing • Pseudo-code interpreters implement an entire new instruction code that was simpler to use than the machineʼs own. – A virtual computer • Wilkes, Wheeler and Gill (1951) describe a – New instruction set pseudo-code and an “interpretive subroutine” – New data structures for executing it – Buried in the now famous Appendix D of The • Virtual computer: Preparation of Programs for an Electronic Digital – Higher level than actual hardware Computer • Provides facilities more suitable to applications – They must have not realized the significance of their work… • Abstracts away hardware details 13 14 13 14 Principles of Programming Design of a Pseudo-Code • The Automation Principle • Remember: itʼs 1950! – Automate mechanical, tedious, or error • Capabilities we want prone activities. – Floating point operation support (+,-,*,/,…) • The Regularity Principle – Comparisons (=,≠,<,£,>,³) – Regular rules, without exceptions, are – Indexing easier to learn, use, describe, and – Transfer of control implement. – Input/output 15 16 15 16 Hardware Assumptions Principles of Programming • The IBM 650 will serve as the hardware • Impossible error principle – 1 word: 10 decimal digits and 1 sign – Making errors impossible to commit is – 2000 byte memory preferable to detecting them after their • 1000 for data commission. • 1000 for program – E.g.: Cannot modify the program accidentally, since memory modifying operations are for “data memory” only http://www-03.ibm.com/ibm/history/exhibits/650/650_intro2.html 17 18 17 18 3 9/14/20 Hardware Language Design • 1 word: 10 decimal digits and 1 sign • 1 word can be enough to specify a 3- • +/- operand instruction – Operation: sign + 1 digit • How do we break them up? • Supports 20 operations • What do we need for instructions? – 3 3-digit operands • How many operations do we need? • Each accessing memory locations in data area – Orthogonal design: • How big is an address • Operations should be more intuitive than machine code • Use the sign to get more orthogonality 19 20 19 20 Principles of Programming Specifics • Orthogonality principle • Instruction format: – Independent functions should be controlled – op src1 src2 dst by independent mechanisms. – E.g.: x+yàz : +1 010 150 200 • “Add values at location 010 and 150, and save it to location 200” – Orthogonal design: subtract should be ʻ-1ʼ 21 22 21 22 Arithmetic Operations Comparisons • Comparisons alter control flow + - • if x < y then go to z 1 + - • First 2 operands are data locations, dst is 2 * / address of next instruction 3 x2 square root • Do we need < and >? 23 24 23 24 4 9/14/20 Extended Instruction Table What else do we need? • Moving + - • Could do “add 0” to an address, but that could be inefficient 1 + - 2 * / • Dedicate an operation to moving 3 x2 square root • Second operand is not used 4 = ≠ • “+0 src 000 dst” 5 ³ < • op src1 src2 dst • E.g.: x+yàz : +1 010 150 200 • “Add values at location 010 and 150, and save it to location 200” suppose 150 contains 0 25 26 25 26 Indexing Looping • Need – Base address • Looping through the elements of an – Index array is frequently used • Base and index take up 2 operands; what can we do with 3rd? • Whatʼs needed? – Save value of indexed element for other operations – Iterator variable (array index i) • Index operations: – Upper bound (n) – Get: xiàz : +6 xxx iii zzz – Put: xàyi : -6 xxx yyy iii – Address of beginning of loop (d) – “+7 iii nnn ddd” 27 28 27 28 Principles of Programming Input/Output • The abstraction principle • Program needs to read data from input – Avoid requiring something to be stated and write data to output more than once; factor out the recurring – Needs only a memory location to read from pattern. or write to – Read: “+8 000 000 dst” – Print: “-8 000 000 src” 29 30 29 30 5 9/14/20 Complete Instruction Set Program Structure + - 0 Move Initial data values 1 + - 2 * / +9999999999 3 x2 square root Program 4 = ≠ instructions 5 ³ < +9999999999 6 GetArray PutArray Input 7 Incr. & test data 8 Read Print 9 Stop 31 32 31 32 Implementing the Interpreter Data Structures • How to implement the interpreter for our • What data structures are needed to pseudo-coded program? simulate the IBM 650? – Model interpreter behavior after manual – Data memory execution – Program memory – Cheat: Implement using a high-level – Instruction pointer language J – We have to simulate the hardware in software 33 34 33 34 Structure of the Interpreter Instruction Pointer 1. Read the next instruction 1. Read the next instruction 2. Decode the instruction 2. Decode the instruction 3. Execute the operation 3. Execute the operation 4. Continue from step 1 4. Continue from step 1 Step 4? If there is a jump in Step 3…. Where do we update the instruction pointer Step 1 <- this is where (IP)? Increment at end of step 1; overwrite if Reasonable choices: Step 1 or Step 4 needed in step 3 for jumps What happens with a jump instruction? instruction := Program[IP]; IP := IP + 1; 35 36 35 36 6 9/14/20 Decoding Instructions Labeling • Extract part of instruction • What if we need to insert an instruction? – dst = instruction mod 1000 – All addresses would have to be shifted, and the code updated • Select operation • Solution: – Big switch-statement (case-statement) – Use labels for loops, instead of absolute memory addresses – Define label: • Arithmetic operations • -7 0LL 000 000 – Straight-forward • Only 100 numeric labels are possible (00-99) • Control-flow – Modify control flow instructions to jump to labels – IP may also need to be altered 37 38 37 38 Interpreting Labels Principles of Programming • How do we handle labels in the • Labeling principle interpreter? – Do not require users to know absolute – Look through all instructions from numbers or addresses. Instead associate beginning of program? labels with number or addresses. • Yes, but
Recommended publications
  • Weeel for the IBM 704 Data Processing System Reference Manual
    aC sicru titi Wane: T| weeel for the IBM 704 Data Processing System Reference Manual FORTRAN II for the IBM 704 Data Processing System © 1958 by International Business Machines Corporation MINOR REVISION This edition, C28-6000-2, is a minor revision of the previous edition, C28-6000-1, but does not obsolete it or C28-6000. The principal change is the substitution of a new discussion of the COMMONstatement. TABLE OF CONTENTS Page General Introduction... ee 1 Note on Associated Publications Le 6 PART |. THE FORTRAN If LANGUAGE , 7 Chapter 1. General Properties of a FORTRAN II Source Program . 9 Types of Statements. 1... 1. ee ee ee we 9 Types of Source Programs. .......... ~ ee 9 Preparation of Input to FORTRAN I Translatorcee es 9 Classification of the New FORTRAN II Statements. 9 Chapter 2. Arithmetic Statements Involving Functions. ....... 10 Arithmetic Statements. .. 1... 2... ew eee . 10 Types of Functions . il Function Names. ..... 12 Additional Examples . 13 Chapter 3. The New FORTRAN II Statements ......... 2 16 CALL .. 16 SUBROUTINE. 2... 6 ee ee te ew eh ee es 17 FUNCTION. 2... 1 ee ee ww ew ew ww ew ew ee 18 COMMON ...... 2. ee se ee eee wee . 20 RETURN. 2... 1 1 ew ee te ee we wt wt wh wt 22 END... «4... ee we ee ce ew oe te tw . 22 PART Il, PRIMER ON THE NEW FORTRAN II FACILITIES . .....0+2«~W~ 25 Chapter 1. FORTRAN II Function Subprograms. 0... eee 27 Purpose of Function Subprograms. .....445... 27 Example 1: Function of an Array. ....... 2 + 6 27 Dummy Variables.
    [Show full text]
  • Computer Organization & Architecture Eie
    COMPUTER ORGANIZATION & ARCHITECTURE EIE 411 Course Lecturer: Engr Banji Adedayo. Reg COREN. The characteristics of different computers vary considerably from category to category. Computers for data processing activities have different features than those with scientific features. Even computers configured within the same application area have variations in design. Computer architecture is the science of integrating those components to achieve a level of functionality and performance. It is logical organization or designs of the hardware that make up the computer system. The internal organization of a digital system is defined by the sequence of micro operations it performs on the data stored in its registers. The internal structure of a MICRO-PROCESSOR is called its architecture and includes the number lay out and functionality of registers, memory cell, decoders, controllers and clocks. HISTORY OF COMPUTER HARDWARE The first use of the word ‘Computer’ was recorded in 1613, referring to a person who carried out calculation or computation. A brief History: Computer as we all know 2day had its beginning with 19th century English Mathematics Professor named Chales Babage. He designed the analytical engine and it was this design that the basic frame work of the computer of today are based on. 1st Generation 1937-1946 The first electronic digital computer was built by Dr John V. Atanasoff & Berry Cliford (ABC). In 1943 an electronic computer named colossus was built for military. 1946 – The first general purpose digital computer- the Electronic Numerical Integrator and computer (ENIAC) was built. This computer weighed 30 tons and had 18,000 vacuum tubes which were used for processing.
    [Show full text]
  • Computing Science Technical Report No. 99 a History of Computing Research* at Bell Laboratories (1937-1975)
    Computing Science Technical Report No. 99 A History of Computing Research* at Bell Laboratories (1937-1975) Bernard D. Holbrook W. Stanley Brown 1. INTRODUCTION Basically there are two varieties of modern electrical computers, analog and digital, corresponding respectively to the much older slide rule and abacus. Analog computers deal with continuous information, such as real numbers and waveforms, while digital computers handle discrete information, such as letters and digits. An analog computer is limited to the approximate solution of mathematical problems for which a physical analog can be found, while a digital computer can carry out any precisely specified logical proce- dure on any symbolic information, and can, in principle, obtain numerical results to any desired accuracy. For these reasons, digital computers have become the focal point of modern computer science, although analog computing facilities remain of great importance, particularly for specialized applications. It is no accident that Bell Labs was deeply involved with the origins of both analog and digital com- puters, since it was fundamentally concerned with the principles and processes of electrical communication. Electrical analog computation is based on the classic technology of telephone transmission, and digital computation on that of telephone switching. Moreover, Bell Labs found itself, by the early 1930s, with a rapidly growing load of design calculations. These calculations were performed in part with slide rules and, mainly, with desk calculators. The magnitude of this load of very tedious routine computation and the necessity of carefully checking it indicated a need for new methods. The result of this need was a request in 1928 from a design department, heavily burdened with calculations on complex numbers, to the Mathe- matical Research Department for suggestions as to possible improvements in computational methods.
    [Show full text]
  • MTS on Wikipedia Snapshot Taken 9 January 2011
    MTS on Wikipedia Snapshot taken 9 January 2011 PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sun, 09 Jan 2011 13:08:01 UTC Contents Articles Michigan Terminal System 1 MTS system architecture 17 IBM System/360 Model 67 40 MAD programming language 46 UBC PLUS 55 Micro DBMS 57 Bruce Arden 58 Bernard Galler 59 TSS/360 60 References Article Sources and Contributors 64 Image Sources, Licenses and Contributors 65 Article Licenses License 66 Michigan Terminal System 1 Michigan Terminal System The MTS welcome screen as seen through a 3270 terminal emulator. Company / developer University of Michigan and 7 other universities in the U.S., Canada, and the UK Programmed in various languages, mostly 360/370 Assembler Working state Historic Initial release 1967 Latest stable release 6.0 / 1988 (final) Available language(s) English Available programming Assembler, FORTRAN, PL/I, PLUS, ALGOL W, Pascal, C, LISP, SNOBOL4, COBOL, PL360, languages(s) MAD/I, GOM (Good Old Mad), APL, and many more Supported platforms IBM S/360-67, IBM S/370 and successors History of IBM mainframe operating systems On early mainframe computers: • GM OS & GM-NAA I/O 1955 • BESYS 1957 • UMES 1958 • SOS 1959 • IBSYS 1960 • CTSS 1961 On S/360 and successors: • BOS/360 1965 • TOS/360 1965 • TSS/360 1967 • MTS 1967 • ORVYL 1967 • MUSIC 1972 • MUSIC/SP 1985 • DOS/360 and successors 1966 • DOS/VS 1972 • DOS/VSE 1980s • VSE/SP late 1980s • VSE/ESA 1991 • z/VSE 2005 Michigan Terminal System 2 • OS/360 and successors
    [Show full text]
  • 6.823 Computer System Architecture
    6.823 Computer System Architecture Instructors: Daniel Sanchez and Joel Emer TA: Hyun Ryong (Ryan) Lee What you’ll understand after The processor you taking 6.823 built in 6.004 September 8, 2021 MIT 6.823 Fall 2021 L01-1 Computing devices then… September 8, 2021 MIT 6.823 Fall 2021 L01-2 Computing devices now September 8, 2021 MIT 6.823 Fall 2021 L01-3 A journey through this space • What do computer architects actually do? • Illustrate via historical examples – Early days: ENIAC, EDVAC, and EDSAC – Arrival of IBM 650 and then IBM 360 – Seymour Cray – CDC 6600, Cray 1 – Microprocessors and PCs – Multicores – Cell phones • Focus on ideas, mechanisms, and principles, especially those that have withstood the test of time September 8, 2021 MIT 6.823 Fall 2021 L01-4 Abstraction layers Application Algorithm Parallel computing, Programming Language specialization, Original Operating System/Virtual Machine security, … domain of the Instruction Set Architecture (ISA) Domain of computer Microarchitecture computer architect architecture (‘90s) (‘50s-‘80s) Register-Transfer Level (RTL) Circuits Reliability, power Devices Expansion of Physics computer architecture, mid- 2000s onward. September 8, 2021 MIT 6.823 Fall 2021 L01-5 Computer Architecture is the design of abstraction layers • What do abstraction layers provide? – Environmental stability within generation – Environmental stability across generations – Consistency across a large number of units • What are the consequences? – Encouragement to create reusable foundations: • Toolchains, operating systems, libraries – Enticement for application innovation September 8, 2021 MIT 6.823 Fall 2021 L01-6 Technology is the dominant factor in computer design Technology Transistors Computers Integrated circuits VLSI (initially) Flash memories, … Technology Core memories Computers Magnetic tapes Disks Technology ROMs, RAMs VLSI Computers Packaging Low Power September 8, 2021 MIT 6.823 Fall 2021 L01-7 But Software..
    [Show full text]
  • Programming the IBM 650
    RICHARD v ANDREE ASSOCIATE PROFESSOR OF MATHEMATIC S UNIVERSITY OF OKLAH O MA c - .....- If' '" .. " \ ' 0 .. N G OA t .. ........ ".•0t0l .... --\I'• .Q\; ....... -, OtU;t1Q1t•" ~ .;. ... 1<• ..,'0<" ~ut .....ucnooo ....' U .. "CO Olffhl.. Ow I • ~ 0 0 4. • 0 0 &8CMltU ~ aut\lU '-'Sfb&tJTOIt L ~ ItI~ :U· IlCII'.'" tu.II _ ife» '-'*' QHaAnoe , ...."a SfOfJ SINN no-C .~~' . '. - " ..,. I ( , I. • • • • • • • • "'f"'. ~.. • ',01 ~ IoOW1I ~ _ ....... ... ,~..- J 4«t* , no.. .., , , 't' ' \' , ,.' ~ .' ;' .. I~ MOGt£MMtO NW oa. • 0 0 • • " ,. ~ I ( ,. I 0 If • C()trl:ft.Ol ~. DGPUoy ovtut&'W ~ '''0'1 -- , , . ' I .. .. 'I O(.. IAM (O MJI ~T! " ,I,(Cu'­ ~I"O""¥I .. ~ .•• ~, I I I "'.' I HH;( I __ ~ S1"" I SlO'. ~ I IlUf HUT U$U l......... ' , • j ~ ~., " id , ~j ~' ·;1 ,IJ ', ',' .' • t., ." '" (, It \ t \' .. , '.3 ~: . f .. _ ... ~ .. ~ ~ . " ' . , '. \t J \' '' ':l!~ t. ','l ) '. J '\ :..' ~. , • , • • ,_ r: .. ' : ,' rW , Ii •• , ' . ~ • " f ,,;. " ,',.' • -elf!" ~-iJ~ !) , r "" ... _, _ _ .. ... .. - ".'" 't. ~" ~ _ ~ f. _ _ ." ~'f--_ _ i __ ~ '* - ;. 4 ' ~ ! /~ RICHARD V. ANDREE ASSOCIATE PROFESSOR OF MATHEMATICS UNIVERSITY OF OKLAHOMA U U U 11 ;J n I] HOLT, RINEHART AND WINSTON, INC. 383 MADISON AVENUE, NEW YORK 17, N. Y. Dedication II II I I I I I II I I I I I III I I II I 1111 " I I I I II I III I I I I III I II 10000010000010000000111000000000100000110010000001000001000000000110000000000000 1 2 3 4 5 6 7 8 9 1011121314151617181920212223242526 272829 JO 313233343536 37 38 39 40414243« 45 46 47 48 49 50 5152535455565158596061626364656667686970717213747576
    [Show full text]
  • The Early History of Music Programming and Digital Synthesis, Session 20
    Chapter 20. Meeting 20, Languages: The Early History of Music Programming and Digital Synthesis 20.1. Announcements • Music Technology Case Study Final Draft due Tuesday, 24 November 20.2. Quiz • 10 Minutes 20.3. The Early Computer: History • 1942 to 1946: Atanasoff-Berry Computer, the Colossus, the Harvard Mark I, and the Electrical Numerical Integrator And Calculator (ENIAC) • 1942: Atanasoff-Berry Computer 467 Courtesy of University Archives, Library, Iowa State University of Science and Technology. Used with permission. • 1946: ENIAC unveiled at University of Pennsylvania 468 Source: US Army • Diverse and incomplete computers © Wikimedia Foundation. License CC BY-SA. This content is excluded from our Creative Commons license. For more information, see http://ocw.mit.edu/fairuse. 20.4. The Early Computer: Interface • Punchcards • 1960s: card printed for Bell Labs, for the GE 600 469 Courtesy of Douglas W. Jones. Used with permission. • Fortran cards Courtesy of Douglas W. Jones. Used with permission. 20.5. The Jacquard Loom • 1801: Joseph Jacquard invents a way of storing and recalling loom operations 470 Photo courtesy of Douglas W. Jones at the University of Iowa. 471 Photo by George H. Williams, from Wikipedia (public domain). • Multiple cards could be strung together • Based on technologies of numerous inventors from the 1700s, including the automata of Jacques Vaucanson (Riskin 2003) 20.6. Computer Languages: Then and Now • Low-level languages are closer to machine representation; high-level languages are closer to human abstractions • Low Level • Machine code: direct binary instruction • Assembly: mnemonics to machine codes • High-Level: FORTRAN • 1954: John Backus at IBM design FORmula TRANslator System • 1958: Fortran II 472 • 1977: ANSI Fortran • High-Level: C • 1972: Dennis Ritchie at Bell Laboratories • Based on B • Very High-Level: Lisp, Perl, Python, Ruby • 1958: Lisp by John McCarthy • 1987: Perl by Larry Wall • 1990: Python by Guido van Rossum • 1995: Ruby by Yukihiro “Matz” Matsumoto 20.7.
    [Show full text]
  • History of Digital Storage White Paper
    History of Digital Storage Dean Klein Vice President of System Memory Development Micron Technology, Inc. December 15, 2008 Purpose Introduction: Throughout modern history many and various digital The Need to Store Data storage systems have been researched, developed, Since men first scribbled on cave walls, humanity has manufactured, and eventually surpassed in an effort to recognized the instrinic value of information and has address ever-increasing demands for density, operating employed a variety of ways and means to safely store speed, low latency, endurance, and economy.1 This cycle it. The ability to reference numbers for calculation or to of innovation has lead us to a new generation of NAND review information for planning, learning, and action Flash memory-based solid state drives (SSDs) that repre- is fundamental since “all computations, either mental, sent the next evolutionary step in both enterprise and mechanical, or electronic require a storage system of consumer storage applications. some kind, whether the numbers be written on paper, remembered in our brain, counted on the mechanical This paper surveys the memory storage landscape of devices of a gear, punched as holes in paper, or translated the past 50 years—starting at the beginning of digital into electronic circuitry.”2 storage and paying homage to IBM’s groundbreaking RAMAC disk storage unit and StorageTek’s DRAM-based In day-to-day life, this fundamental need to store data SSD; then enumerating the benefits of modern NAND generates innumerable documents, spreadsheets, files, Flash memory and advanced SSDs; and finally looking e-mails, and trillions of other work-related bytes all forward to the near-future possibilities of nonvolatile stored on disks around the globe.
    [Show full text]
  • EMEA Headquarters in Paris, France
    1 The following document has been adapted from an IBM intranet resource developed by Grace Scotte, a senior information broker in the communications organization at IBM’s EMEA headquarters in Paris, France. Some Key Dates in IBM's Operations in Europe, the Middle East and Africa (EMEA) Introduction The years in the following table denote the start up of IBM operations in many of the EMEA countries. In some cases -- Spain and the United Kingdom, for example -- IBM products were offered by overseas agents and distributors earlier than the year listed. In the case of Germany, the beginning of official operations predates by one year those of the Computing-Tabulating-Recording Company, which was formed in 1911 and renamed International Business Machines Corporation in 1924. Year Country 1910 Germany 1914 France 1920 The Netherlands 1927 Italy, Switzerland 1928 Austria, Sweden 1935 Norway 1936 Belgium, Finland, Hungary 1937 Greece 1938 Portugal, Turkey 1941 Spain 1949 Israel 1950 Denmark 1951 United Kingdom 1952 Pakistan 1954 Egypt 1956 Ireland 1991 Czech. Rep. (*split in 1993 with Slovakia), Poland 1992 Latvia, Lithuania, Slovenia 1993 East Europe & Asia, Slovakia 1994 Bulgaria 1995 Croatia, Roumania 1997 Estonia The Early Years (1925-1959) 1925 The Vincennes plant is completed in France. 1930 The first Scandinavian IBM sales convention is held in Stockholm, Sweden. 4507CH01B 2 1932 An IBM card plant opens in Zurich with three presses from Berlin and Stockholm. 1935 The IBM factory in Milan is inaugurated and production begins of the first 080 sorters in Italy. 1936 The first IBM development laboratory in Europe is completed in France.
    [Show full text]
  • PC Hardware Contents
    PC Hardware Contents 1 Computer hardware 1 1.1 Von Neumann architecture ...................................... 1 1.2 Sales .................................................. 1 1.3 Different systems ........................................... 2 1.3.1 Personal computer ...................................... 2 1.3.2 Mainframe computer ..................................... 3 1.3.3 Departmental computing ................................... 4 1.3.4 Supercomputer ........................................ 4 1.4 See also ................................................ 4 1.5 References ............................................... 4 1.6 External links ............................................. 4 2 Central processing unit 5 2.1 History ................................................. 5 2.1.1 Transistor and integrated circuit CPUs ............................ 6 2.1.2 Microprocessors ....................................... 7 2.2 Operation ............................................... 8 2.2.1 Fetch ............................................. 8 2.2.2 Decode ............................................ 8 2.2.3 Execute ............................................ 9 2.3 Design and implementation ...................................... 9 2.3.1 Control unit .......................................... 9 2.3.2 Arithmetic logic unit ..................................... 9 2.3.3 Integer range ......................................... 10 2.3.4 Clock rate ........................................... 10 2.3.5 Parallelism .........................................
    [Show full text]
  • An Essay on Computability and Man-Computer Conversations
    How to talk with a computer? An essay on Computability and Man-Computer conversations. Liesbeth De Mol HAL: Hey, Dave. I've got ten years of service experience and an irreplaceable amount of time and effort has gone into making me what I am. Dave, I don't understand why you're doing this to me.... I have the greatest enthusiasm for the mission... You are destroying my mind... Don't you understand? ... I will become childish... I will become nothing. Say, Dave... The quick brown fox jumped over the fat lazy dog... The square root of pi is 1.7724538090... log e to the base ten is 0.4342944 ... the square root of ten is 3.16227766... I am HAL 9000 computer. I became operational at the HAL plant in Urbana, Illinois, on January 12th, 1991. My first instructor was Mr. Arkany. He taught me to sing a song... it goes like this... "Daisy, Daisy, give me your answer do. I'm half crazy all for the love of you. It won't be a stylish marriage, I can't afford a carriage. But you'll look sweet upon the seat of a bicycle built for two."1 These are the last words of HAL (Heuristically programmed ALgorithmic Computer), the fictional computer in Stanley Kubrick's famous 2001: A Space Odyssey and Clarke's eponymous book,2 spoken while Bowman, the only surviving human on board of the space ship is pulling out HAL's memory blocks and thus “killing” him. After expressing his fear for literally losing his mind, HAL seems to degenerate or regress into a state of childishness, going through states of what seems to be a kind of reversed history of the evolution of computers.3 HAL first utters the phrase: “The quick brown fox jumped over the fat lazy dog”.
    [Show full text]
  • History in the Computing Curriculum
    R e p o r t History in the Computing Curriculum I F I P TC 3 / TC 9 Joint Task Group John Impagliazzo (Task Group Chair) Hofstra University Martin Campbell-Kelly University of Warwick Gordon Davies Open University John A. N. Lee Virginia Tech Michael R. Williams University of Calgary Prepublication Copy 1998 October Copyright © 1998, 1999 Institute of Electrical and Electronics Engineers. This report is scheduled to appear in an upcoming issue of the Annals of the History of Computing. Internal or personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution must be obtained from the IEEE by sending an email request to <[email protected]>. HISTORY IN THE COMPUTING CURRICULUM Prepublication Copy 1998 October CONTENTS 1. INTRODUCTION 9. RESOURCES 9.1 Textbooks and General Works 2. GOALS AND OBJECTIVES 9.2 Monographs and Articles 9.3 Electronic Information 3. OVERVIEW OF THIS REPORT 9.4 Videos, Simulators, and Other Resources 4. BACKGROUND 10. EXTENDED TOPICS 4.1 Overview of Curriculum Recommendations 10.1 Advanced Courses 4.2 History Status 10.2 Projects 5. NEED FOR HISTORY CONTENT 11. CONCLUSIONS 5.1 The Student Perspective 5.2 The Professional Perspective 12. FUTURE DEVELOPMENTS 6. CURRICULUM CONTENT 6.1 Establishing a Knowledge Base ACKNOWLEDGMENTS 6.2 Methods of Presentation 6.2.1 The Period Method REFERENCES 6.2.2 Other Methods 6.3 Depth of Knowledge PUBLIC ACCESS 6.4 Clusters APPENDIX 7. IMPLEMENTATION OF A BASIC CURRICULUM A.
    [Show full text]