A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Slides:



Advertisements
Similar presentations
Chapt.2 Machine Architecture Impact of languages –Support – faster, more secure Primitive Operations –e.g. nested subroutine calls »Subroutines implemented.
Advertisements

Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
B.A. (Mahayana Studies) Introduction to Computer Science November March What is a Computer? An overview of what a computer is, the.
Programming Creating programs that run on your PC
Chapter Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing Describe.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Introduction Extended and Concise Prelude to Programming Concepts and Design Copyright © 2003 Scott/Jones, Inc.. All rights reserved. 1 Introduction.
The Analytical Engine Module 6 Program Translation.
A Brief Introduction to the History of Computing - 3 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
1 Programming & Programming Languages Overview l Machine operations and machine language. l Example of machine language. l Different types of processor.
A Brief Introduction to the History of Computing - 2 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.
Introduction to Programming Programming. COMP102 Prog. Fundamentals I: Introduction / Slide 2 Objectives l To learn fundamental problem solving techniques.
The History of Computers By: Casey Walsh. Introduction Computer history can be broken down into five generations of change. Computer history can be broken.
1 The development of modern computer systems Early electronic computers Mainframes Time sharing Microcomputers Networked computing.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
1 Chapter 1 The Big Picture. 2 2 Computing systems are dynamic entities used to solve problems and interact with their environment. They consist of devices,
Objectives Machine language vs.. High-level language Procedure-oriented, object-oriented, and event- driven languages Background of Visual Basic VB Integrated.
Chapter 3 Software Two major types of software
CSE 1301 J Lecture 2 Intro to Java Programming Richard Gesick.
Computer Software.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
1 6 Abacus An early device to record numeric values Blaise Pascal Mechanical device to add, subtract, divide & multiply Joseph Jacquard Jacquard’s Loom,
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
CS102 Introduction to Computer Programming
Chapter 01 Nell Dale & John Lewis.
History of Programming Languages
BIT Presentation 6. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
Chapter Lead Black Slide Powered by DeSiaMore Powered by DeSiaMore.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
1 CSC 1401 S1 Computer Programming I Hamid Harroud School of Science and Engineering, Akhawayn University
1 COMP201 Computer Systems Dr Richard Nelson Room G.1.29.
Dr. John P. Abraham, University of Texas Pan American Information Technology Introduction Dr. John P. Abraham.
Introduction Chapter 1. 1 History of Computers Development of computers began with many early inventions: The abacus helped early societies perform computations.
©Xiaoying Gao, Peter Andreae First Java Program COMP 102 #2 2014T2 Xiaoying Sharon Gao Computer Science Victoria University of Wellington.
Chapter 1 The Big Picture.
Computer system overview1 The Effects of Computers Pervasive in all professions How have computers affected my life? How have computers affected my life?
First Java Program COMP 102 #2 2015T2 Xiaoying Sharon Gao Computer Science Victoria University of Wellington.
Computer Parts. Two Basic Parts Hardware & Software.
CPS120: Introduction to Computer Science Introduction to Computers.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Visual C++ Programming: Concepts and Projects
Chapter 3: Computer Software. Stored Program Concept v The concept of preparing a precise list of exactly what the computer is to do (this list is called.
Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent.
Lead Black Slide. © 2001 Business & Information Systems 2/e2 Chapter 5 Information System Software.
School of Computer Science & Information Technology G6DICP Introduction to Computer Programming Milena Radenkovic.
Chapter 2: A Brief History Object- Oriented Programming Presentation slides for Object-Oriented Programming by Yahya Garout KFUPM Information & Computer.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
1 st Semester Introduction to Computer and Programming Computer Engineering Department Kasetsart University, Bangkok, THAILAND.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Outline 1.1 What Is a Computer? 1.2 Computer Organization.
Scott Marino MSMIS Kean University MSAS5104 Introduction to Programming with Data Structures and Algorithms Week 2 Scott Marino.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
CS1110: Computer Science I Chapter 1. What Is a Computer? A computer is a device capable of performing computations and making logical decisions At a.
Software: Systems and Applications Software. The Importance of Software in Business time 1950today $ Software Hardware High Low.
1 Software Technology Guide 2. 2 Types of Software  Application software is a set of computer instructions, written in a programming language that direct.
Chapter 1: An Overview of Computers and Programming Languages
Chapter 1 The Big Picture
CSCI-235 Micro-Computer Applications
UNIV 103 CS Majors Seminar Dr. Blaise W. Liffick Fall 2017.
Software Programming J. Holvikivi 2014.
Computers: Hardware and Software
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
Ada – 1983 History’s largest design effort
Principles of Programming Languages
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Chapter 1 Introduction.
Presentation transcript:

A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing Chris Johnson April/May 2003

Intro to History of Computing 4: programming languages2 History of Computing 4 1.History of the computer market: into the 4 th generation 2.Generations of programming languages 3.High level languages 4.Computing history heroes: the Turing Awards

Intro to History of Computing 4: programming languages th generation market:  1981 IBM PC – a 16 bit personal computer for office desktops; command line operating system MS-DOS. “Word processing” becomes a software application for PC not a dedicated box DOS:A\ dir *.*

Intro to History of Computing 4: programming languages th generation market:  productivity software: word processor, spreadsheet, paint and draw  1984 Apple Macintosh WIMP 1985 Microsoft Windows for PC  applications become centred on Graphical User Interface, push use of memory and processor speed enormously File Open Print Close

Intro to History of Computing 4: programming languages5 1. the 4 th generation...  2003 common families of processor chips drive nearly all large and small computers  computer networks are as important as computers

Intro to History of Computing 4: programming languages th generation market: 1981 – mainframes, personal computers  mainframes continue as main computers – re-invented as servers to enterprise networks of personal workstations and PCs  mid 1980s: local computer networks transform the personal computer to the enterprise network; the Internet for  mid 1990s: the World Wide Web on the Internet transforms the desktop PC from a tool for local processing and information management into a communication tool

Intro to History of Computing 4: programming languages th generation market: manufacturers The biggest manufacturers of servers, workstations, desktops, laptops: market is fragmented, volatile, year by year  Compaq (includes DEC) [1 million servers; 14 million PCs worldwide; 12% of Australian PC market]  Dell [700k servers; 11% Australian PC market]  IBM [660,000 servers]  Hewlett-Packard [10%] now merged Compaq 2002  Sun [360,000 workstations; 9% Australian PC market]  Apple [4% of Australian PC market]  NEC [6 million PCs world]  many other small companies: 48% Australian PC market, 25% servers, 80 million PCs 2001 figures from Gartner Group press release web pages The software market is now the big money– Microsoft, Oracle.

Intro to History of Computing 4: programming languages8 1. the market: from  mainframes : IBM and the BUNCH (approx 1968) IBM Burroughs->Sperry Rand/Unisys UNIVAC / NCR Control Data Corporation CDC - supercomputers Honeywell a few in UK (ICL), France (Bull), Germany (Siemens)  the minis (approx 1970) DEC Digital Equipment Corporation Data General Varian Hewlett-Packard... and others  the micros Apple (and Apricot and Acorn and...) Xerox Commodore... many others

Intro to History of Computing 4: programming languages9 1.the market: from 1970 to 2001 computers a commodity: fragmented,volatile  Compaq (includes DEC & H-P) [1 million servers; 14 million PCs worldwide; 12% of Australian PC market]  Dell [700,000 servers]  IBM [660,000 servers]  Sun [360,000 workstations, servers]  Apple [4% of Australian PC market]  NEC [6 million PCs world]  many other small companies: 48% Australian PC market, 25% servers, 80 million PCs 2001 figures from Gartner Group press release web pages

Intro to History of Computing 4: programming languages10 2. Programming languages  don’t forget the software! the history of computing includes software just as much as hardware  software is applications operating systems and environments utilities: compilers, editors...  all created by human effort as collections of related programs using programming languages

Intro to History of Computing 4: programming languages11 2. The Generations of programming languages [from Brookshear Figure 5.1] “Generations” of languages relate to the degree of problem- or human- orientation vs machine orientation. These generations are not the same as the generations of computer architecture.

Intro to History of Computing 4: programming languages12 2. Language generations 1,2,3 1.machine languages 2.assembly languages 3.high level languages FORTRAN, COBOL, ALGOL, LISP  the biggest differences are in execution control structures, (program control, flow control) data control modularity

Intro to History of Computing 4: programming languages13 2. Generations of programming languages -& computers programming languages 1.machine lang assembly lang high level lang s 4.4GLs 70s 5.AI based 80s 6.network-aware 90s computer architectures 1.valves transistors Integrated1964 Circuits 4.PCs1981 many high level languages of different types

Intro to History of Computing 4: programming languages14 3. High level languages: the evolution of types of language [Brookshear Figure 5.2] plus S67 & Eiffel Simula-67Eiffel

Intro to History of Computing 4: programming languages15 3. High level languages: a family tree [from Eric Levenez] LISP ALGOL FORTRAN COBOL C APL Ada Pascal Modula

Intro to History of Computing 4: programming languages16 4. History of high level PLs: the elements of high level PLs  data control definition: naming and types storage life structure manipulation (arithmetic) Object-Oriented languages Simula 67 C++ Smalltalk Eiffel 1985 Java 1995 C# }  program modularity  program execution control jumps, conditions, loops, subroutine calls  abstraction subroutines nesting classes & inheritance

Intro to History of Computing 4: programming languages17 4. Aspects of high level programming languages (1)  program (execution) control how the point of execution moves through the parts of the program examples in Eiffel:  if-statement, loop, function call  data control names of variables have a limited lifetime during execution names have restricted visibility (scope) in parts of the program examples in Eiffel:  function local variable, object feature variable

Intro to History of Computing 4: programming languages18 4. data control and program control - an Eiffel program from earlier class BDM creation doit -- read a given number of ints, find min and max feature doit is local count, max, min: INTEGER do io.read_integer; count := io.last_integer-- omit prompts io.read_integer; max := io.last_integer; min := max from i:=1 until i=count loop io.read_integer; if max < io.last_integer then max := io.last_integer end if min > io.last_integer then min := io.last_integer end i:=i+1 end io.put_string("The largest number was: "); io.put_integer(max) io.put_string(" and the smallest was: "); io.put_integer(min) end end -- class BDM data control: the scope of count, max, min data control: the scope of i

Intro to History of Computing 4: programming languages19 4. data control and program control: machine language (g1)  add two numbers - see Brookshear p C 166D E C000  Extending this "language" from a sequence of numbers to include comments makes life easier for the original programmer - and for the next programmer to read it. ;add Price (6C) and ShippingCost (6D), Total to 6E 156C ;load 6C to R5 166D ;load 6D to R ;add them, result to R0 306E ;store R0 to 6E C000 ;stop here

Intro to History of Computing 4: programming languages20 4. data control and program control: assembly language (g2) ; data storage address definitions (these generate no instructions).DEF Price 6C.DEF Shipping 6D.DEF TotalCost 6E ; The actual instructions of the program ; correspond exactly to the machine instructions above ; Add Price and Shipping to calculate TotalCost LD R5, Price LD R6, Shipping ADD R0, R5, R6 ST R0, TotalCost HLT [adapted from Brookshear p.208 ]

Intro to History of Computing 4: programming languages21 4. control flow in assembly language ; pricing variables - now with automatic layout in memory Price:.SZ 1 Shipping:.SZ 1 TotalCost:.SZ 1 ; if Shipping cost is greater than zero then ; add Price and Shipping to calculate TotalCost LD R6, Shipping JZ R6, NoAdd LD R5, Price ADD R0, R5, R6 ST R0, TotalCost JMP Next NoAdd: LD R6, Price ; else TotalCost equals Price ST R6, TotalCost Next: HLT Flow control is by test and jumps. A loop is a jump back to an earlier point in the program

Intro to History of Computing 4: programming languages22 4. data control in assembly language ; pricing variables Price:.SZ 1 Shipping:.SZ 1 TotalCost:.SZ 1 ; if Shipping cost is greater than zero then ; add Price and Shipping to calculate TotalCost LD R6, Shipping JZ R6, NoAdd LD R5, Price control flow ADD R0, R5, R6 ST R0, TotalCost JMP Next NoAdd: LD R6, Price ; else TotalCost equals Price ST R6, TotalCost Next: HLT Assembly language provides no data control. These labels are all just addresses, data and program instructions mixed together

Intro to History of Computing 4: programming languages23 class BDM creation doit -- read a given number of ints, find min and max feature doit is local count, max, min: INTEGER do io.read_integer; count := io.last_integer-- omit prompts io.read_integer; max := io.last_integer; min := max from i:=1 until i=count loop io.read_integer; if max < io.last_integer then max := io.last_integer end if min > io.last_integer then min := io.last_integer end i:=i+1 end io.put_string("The largest number was: "); io.put_integer(max) io.put_string(" and the smallest was: "); io.put_integer(min) end end -- class BDM 4. data and flow control recap

Intro to History of Computing 4: programming languages24 4. other aspects of high level programming languages  syntax description of the form of constructs in the language  semantics description of the meaning of constructs of the language  compilers and interpreters the means of translating a high level language program to execution on a computer  run-time system utility support for all programs of the language during execution in the computer