Using KDF9 Fortran to implement APT IV in 1965-6 Miles Ellis.

Slides:



Advertisements
Similar presentations
Dr. Ken Hoganson, © August 2014 Programming in R COURSE NOTES 2 Hoganson Language Translation.
Advertisements

Copyright © 2002 W. A. Tucker1 Chapter 1 Lecture Notes Bill Tucker Austin Community College COSC 1315.
16/13/2015 3:30 AM6/13/2015 3:30 AM6/13/2015 3:30 AMIntroduction to Software Development What is a computer? A computer system contains: Central Processing.
Lecture 1: Intro to Computers Yoni Fridman 6/28/01 6/28/01.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
Chapter 1 Introduction to C Programming. 1.1 INTRODUCTION This book is about problem solving with the use of computers and the C programming language.
CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 1, Lab.
Topic 1: Introduction to Computers and Programming
1 The development of modern computer systems Early electronic computers Mainframes Time sharing Microcomputers Networked computing.
Systems Software Operating Systems.
Types of software. Sonam Dema..
Introduction to Programming End Show. Resource Team R.P Ranjan-Lecturer, SPICTEC, Galle. W.M.A.S. Wijesekara-Centre manager,CRC Hali-Ela H.P.U.S Indra.
ENGR. SHOAIB ASLAM Computer Programming I Lecture 02.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
CCSA 221 Programming in C CHAPTER 2 SOME FUNDAMENTALS 1 ALHANOUF ALAMR.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
1 History of compiler development 1953 IBM develops the 701 EDPM (Electronic Data Processing Machine), the first general purpose computer, built as a “defense.
TMF1013 : Introduction To Computing Lecture 1 : Fundamental of Computer ComputerFoudamentals.
C++ Programming Language Lecture 1 Introduction By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
Systems Software Operating Systems. What is software? Software is the term that we use for all the programs and data that we use with a computer system.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
The LC-3 – Chapter 7 COMP 2620 Dr. James Money COMP
Introduction to Computer Application (IC) MH Room 517 Time : 7:00-9:30pm.
Tolo-e-aftab higher education 1 th semester Bcs 1/2/1392 MINISTRY OF HIGHER EDUCATION.
Overview of Previous Lesson(s) Over View  A program must be translated into a form in which it can be executed by a computer.  The software systems.
FOUNDATION IN INFORMATION TECHNOLOGY (CS-T-101) TOPIC : INFORMATION SYSTEM – SOFTWARE.
Bilbao, Kyle Joel D. Chiong, Noelle A. Reymundo, Kim Muriel S. FIRST GENERATION OF COMPUTER:
Compiler Construction (CS-636)
Programming in C++ Dale/Weems/Headington Chapter 1 Overview of Programming and Problem Solving.
CS-303 Introduction to Programming
FORTRAN History. FORTRAN - Interesting Facts n FORTRAN is the oldest Language actively in use today. n FORTRAN is still used for new software development.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
COMPUTER ARCHITECTURE & OPERATIONS I Instructor: Yaohang Li.
Getting ready. Why C? Design Features – Efficiency (C programs tend to be compact and to run quickly.) – Portability (C programs written on one system.
Chapter 4 Software. Introduction Program: is a set of sequence instructions that tell the computer what to do. Software: is a collection of programs,
Generations of Computing. The Computer Era Begins: The First Generation  1950s: First Generation for hardware and software Vacuum tubes worked as memory.
The Big Picture. My Story  Wrote great programs  Didn’t understand how they worked.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Software. Introduction n A computer can’t do anything without a program of instructions. n A program is a set of instructions a computer carries out.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Software Engineering Algorithms, Compilers, & Lifecycle.
Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 0: Historical Overview.
Computer System Structures
Computer Systems Nat 5 Computing Science
Why don’t programmers have to program in machine code?
Computer Architecture & Operations I
Introduction to programming
Operating System Interface between a user and the computer hardware
CSCI-235 Micro-Computer Applications
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
Why to use the assembly and why we need this course at all?
Computer Systems Nat 5 Computing Science
System Programming and administration
The Operating System Nick Sims.
课程名 编译原理 Compiling Techniques
Course: Introduction to Computers
History of compiler development
Choice of Programming Language
Chapter 4 Computer Software.
Compiler Construction
Computer Science I CSC 135.
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
(Course Introduction)
CMP 131 Introduction to Computer Programming
Text by: Lambert and Osborne
Operating Systems: History
Lecture 8 Programming Paradigm & Languages. Programming Languages The process of telling the computer what to do Also known as coding.
Chapter 1: Preliminaries
Presentation transcript:

Using KDF9 Fortran to implement APT IV in Miles Ellis

English Electric KDF9 Scientific transistor-based multi- programmed scientific computer introduced around 1961 Maximum of 32K 48 bit words of magnetic core memory Stack (nest) based CPU (four sets of nests) Paper tape input Magnetic tape backing store Usercode or Algol programming

KDF9 Egdon OS Developed by AWRE around Punched card input Magnetic disc backing store as well as tapes A major feature was independent compilation of procedures to RLB A FORTRAN compiler was available called EGTRAN

EGTRAN Based on FORTRAN II Extensions to provide –Variable dimension arrays –Recursive subroutines –etc Well-defined and easy to use interface with Usercode procedures

APT (Automatically Programmed Tools) Created by Doug Ross at MIT in 1959 Used to produce control tapes for numerically controlled machine tools (2-5 axis) High level programming language –Define geometry of machined part –Define required machining process –Specify machine-tool specific aspects

APT III In widespread use by mid 1960s Maintained and developed by IIT Research Institute under a multi-member sponsorship arrangement Written in FORTRAN II Developed on an IBM 7090 computer Difficult to port to a different type of computer

APT IV Announced in 1965 Written in FORTRAN IV Intended to be easily implemented on different types of computers

APT IV Announced in 1965 Written in FORTRAN IV Intended to be easily implemented on different types of computers EELM joined ALRP in 1965 and pledged to produce the first commercial implementation of APT IV

The APT IV Processor The APT IV processor was intended for implementation using either an interpretive or assembly approach based on the supplied Fortran ‘translator’ and an implementation- dependent post-translator In effect this translation phase was a compiler for a program written in the APT language using a ‘production’ method

The APT IV Processor (2) Output from the translation phase was a ‘main’ program which was then executed in conjunction with a large subroutine library to produce a CL File The CL File was processed by a further (IITRI supplied) Fortran ‘CL Tape Editor’ program to produce the CL Tape This was used by the Post-Processor to produce the machine tool control tape

KDF9 Implementation Work began in late summer 1965 We decided to use an assembly approach requiring only a handful of Usercode procedures A team of three worked on the project and fully processed their first part-program on 31st December 1965!

Major problems Conversion from IBM 7090 Fortran IV to Egtran KDF9 programs were limited to ca. 25K instructions in memory at one time – in an 8K (word) section of memory –The compiled APT Subroutine library included an unsegmentable section well in excess of 25K instructions –We wrote our own ‘binary operating system’

KDF9 Implementation (2) 3 man months were spent converting Fortran IV procedures to Egtran 3 man months were spent writing and testing the post-translator (in Egtran) 2 man weeks were spent writing and testing Usercode routines 4.5 man months were spent devising and writing the ‘binary operating system’

KDF9 Implementation (3) The experience gained during this implementation led to IITRI requesting EELM to second one of their team to them to help improve the base system –This was the first time any of the ALRP members had been allowed to help in APT development ME spent August to December 1966 in Chicago working at IITRI on APT IV!

Major Successes We did produce the first commercial implementation in the world of APT IV We also proposed some changes to the base system which enabled a complete Fortran interpreter to be produced by IITRI –This meant that a computer-independent system could be delivered that would compile an APT part-program without the need to write any implementation-dependent code

Conclusion APT IV was a huge program for its time The KDF9 implementation taught us many lessons about writing portable software I, personally, learned a very great deal about Fortran

And Finally ….. APT and Fortran provided the impetus – both separately and together – for most of the major events in my subsequent career! –My videotape Fortran 77 course launched my activities in both video and textbooks –My research into user-adaptable numerical control language processors led to my Candidate of Sciences and PhD degrees –I spent fifteen years working on Fortran Standards!