D75P 34 – HNC Computer Architecture Week 11 A Brief History Of Software. © C Nyssen/Aberdeen College 2003 All images © C Nyssen/Aberdeen College except.

Slides:



Advertisements
Similar presentations
GCSE Computing Lesson 5.
Advertisements

Dr. Ken Hoganson, © August 2014 Programming in R COURSE NOTES 2 Hoganson Language Translation.
Microprocessors. Microprocessor Buses Address Bus Address Bus One way street over which microprocessor sends an address code to memory or other external.
Chapter 5 Operating Systems. 5 The Operating System When working with multimedia, the operating system is perhaps the most important, the most complex,
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#4)
COMP3221: Microprocessors and Embedded Systems Lecture 2: Instruction Set Architecture (ISA) Lecturer: Hui Wu Session.
1 ICS 51 Introductory Computer Organization Fall 2006 updated: Oct. 2, 2006.
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.
11/11/05ELEC CISC (Complex Instruction Set Computer) Veeraraghavan Ramamurthy ELEC 6200 Computer Architecture and Design Fall 2005.
1 Experiment 0 COE 205 Computer Organization & Assembly Language Programming Term 043.
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 1: An Overview of Computers and Programming Languages C++ Programming:
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#1) By Dr. Syed Noman.
Systems Software Operating Systems.
Computers: Software Patrice Koehl Computer Science UC Davis.
Lesson 4 Computer Software
CHAPTER 4: INTRODUCTION TO COMPUTER ORGANIZATION AND PROGRAMMING DESIGN Lec. Ghader Kurdi.
Computer Software. Evolution of Programming Languages Machine Languages Assembly Languages High-Level Languages Fourth-Generation Languages.
Computer Organization
Lesson 6 Operating Systems and Software
ITEC 352 Lecture 11 ISA - CPU. ISA (2) Review Questions? HW 2 due on Friday ISA –Machine language –Buses –Memory.
Slide 1 System Software Software The term that we use for all the programs and data that we use with a computer system. Two types of software: Program.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
There are different types of translator. An Interpreter Interpreters translate one instruction at a time from a high level language into machine code every.
High-level Languages.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 1 Introduction to Computer Science.
Natawut NupairojAssembly Language1 Introduction to Assembly Programming.
XP Practical PC, 3e Chapter 16 1 Looking “Under the Hood”
Tranlators. Machine Language The lowest-level programming languageprogramming language Machine languages are the only languages understood by computers.languagescomputers.
Computer Platforms Week 4: Assembly Language & Operating Systems.
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
What have mr aldred’s dirty clothes got to do with the cpu
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.
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 1: An Overview of Computers and Programming Languages.
1 Lecture 2 : Computer System and Programming. Computer? a programmable machine that  Receives input  Stores and manipulates data  Provides output.
Basic of Programming Language Skill Area Computer System Computer Program Programming Language Programmer Translators.
DH2T 34 – HNC Computer Architecture 1 Lecture 14 The Fetch-Decode-Execute Cycle [1]. © C Nyssen/Aberdeen College 2003 All images © C Nyssen/Aberdeen College.
Ted Pedersen – CS 3011 – Chapter 10 1 A brief history of computer architectures CISC – complex instruction set computing –Intel x86, VAX –Evolved from.
CHAPTER 1 INTRODUCTION 2 nd Semester H King Saud University College Of Applied Studies and Community Services CSC 1101 Computer Programming-1.
 Introduction to SUN SPARC  What is CISC?  History: CISC  Advantages of CISC  Disadvantages of CISC  RISC vs CISC  Features of SUN SPARC  Architecture.
D75P 34 – HNC Computer Architecture
1 Software. 2 What is software ► Software is the term that we use for all the programs and data on a computer system. ► Two types of software ► Program.
Experiment 0 COE 205 Computer Organization & Assembly Language Programming Term 052.
MICROOCESSORS AND MICROCONTROLLER:
D75P 34 – HNC Computer Architecture Week 8 Direct Memory Access. © C Nyssen/Aberdeen College 2003 All images © C Nyssen/Aberdeen College except where stated.
1 The Instruction Set Architecture September 27 th, 2007 By: Corbin Johnson CS 146.
ISA's, Compilers, and Assembly
©2013 Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved. Introduction to Computers and Computing.
Representation of Data - Instructions Start of the lesson: Open this PowerPoint from the A451 page – Representation of Data/ Instructions How confident.
Week 6 Dr. Muhammad Ayaz Intro. to Assembly Language.
Computer Software 1.
F453 Module 8: Low Level Languages 8.1: Use of Computer Architecture.
Computer Basics.
Chapter 5 Operating Systems.
Chapter 1: An Overview of Computers and Programming Languages
CSCI-235 Micro-Computer Applications
Machine code Recall that all a computer recognises is binary code.
Computer Organization & Assembly Language Chapter 3
Computer Software CS 107 Lecture 2 September 1, :53 PM.
TRANSLATORS AND IDEs Key Revision Points.
Teaching Computing to GCSE
Translators & Facilities of Languages
Computers: Hardware and Software
Fundamentals of Computer Organisation & Architecture
COMP 1321 Digital Infrastructure
There are different types of translator.
Java Programming Introduction
Microprocessor Architecture
Programming language translators
Presentation transcript:

D75P 34 – HNC Computer Architecture Week 11 A Brief History Of Software. © C Nyssen/Aberdeen College 2003 All images © C Nyssen/Aberdeen College except where stated Prepared 25/11/03

In the very early days of computing, all programming could only be done in binary. Coding programs in binary was slow, complex and error- prone and is seldom undertaken nowadays. Even very junior programmers were highly qualified mathematicians and engineers. Photo courtesy and © US Army Archives

Because computer programming was so specialised, a method had to be found to make it more accessible. Newly-invented computer “languages” enabled the programmer to write in more user-friendly code. Compilers had to be developed to turn this code into machine- readable binary. How does a Pascal program run? Photograph courtesy and © Micro Instrumentation and Telemetry Systems Corp

In 1960, mathematicians at the Pentagon helped develop the COBOL programming language. This was one of the very first “high-level” languages, which is still in common use today. Photo© and by permission of Hewlett-Packard Ltd. But how does a text file of source code become a running program?

Programmer transfers the design into appropriate programming language Compiler checks the code for errors If code is correct, compiler then creates a map and an object file The object file is then linked, i.e. converted into machine- readable binary Program can then be run!

There are many programming languages available today. These vary in complexity and how close they are to human speech. As a general rule, the closer a language is to English, the further away it gets from the native language of the computer – binary. As languages move further and further away from binary, the computer has to work even harder to figure out what it is supposed to do!

Some popular programming languages- -and the degree of difficulty involved for each party! COBOL (1960) Pascal (1970) Basic (1975) Visual Basic (1983) Java (1995) C# (C-sharp) (2000)

As part of Outcome 3, we will analyse some source code written in a very “low- level” language – one that is very close to machine code. This language is often called “Assembly Language” or more commonly, just “Assembler”..MODEL SMALL.STACK 200H.CODE START: mov ax, 0003h int 10h mov bx, 0b800h mov es, bx mov bx,0 mov ah, 1 mov es:[bx], ah mov ax, 0100h int 21h mov ax, 4c00h int 21h END START

Before high-level languages were developed, computers could only be programmed in binary or assembler. Assembly code programmers are still much sought after, however, for various reasons… US Army lady programmers at the decommissioning of ENIAC in Photo © and courtesy US Army.

Legacy programs – many large organisations still use huge software systems originally developed in assembly code Compilers – high level languages have to be converted to machine-code at some point, so compilers are often written in assembly code Device drivers – assembly code provides a high degree of control over the CPU and hardware, as the programmer can manipulate registers and RAM directly.

Assembly code is very, very fast compared to high level languages. It also gives a high degree of control over resources, so these can be directly diverted to the graphics and sound cards. Games programs are often written in high-level code such as C++ or Java, with sections of assembly code embedded in, to take full advantage of hardware control. This has been written in an object language such as C++ with chunks of 80x86 thrown in.

You will sometimes see software marketed as being “For PC only”, as these usually contain Intel-derived code which will only run on a PC. High level languages are compiler-dependent. A Pascal or Java program will run on any platform, provided there is a compatible compiler installed. Low level languages are processor-dependent. Assembly code written to run specifically on a Pentium, will not run on a Mac or StrongARM, as all processors use their own versions of assembly code.

Every model of processor has it’s own list of assembly code instructions, that it can understand and respond to. This is called its Instruction Set. There are two main types of processors available – those with a large set of complex instructions, and those with a smaller, more compact set. These two groups are called CISC (Complex Instruction Set) and RISC (Reduced Instruction Set).

All Intel Pentiums, clones and derivatives use an Intel 80x86 instruction set. Apple computers are based on a Motorola processor. Both of these are CISCs. The Acorn-3000 series, Sun Sparcs and the latest StrongARM processors all use RISC chips. The very newest processors, e.g. the Pentium 4, now incorporate elements of both architectures, and are often called CRISC chips.

Both CISC and RISC instruction sets use certain “groups” of commands – Load or Move - moves data into a specific register #source code# la $t1, stringdata xor $sp, $sp, $sp loop: lb $t0, ($t1) beqz $t0 sub $sp, $sp, 4 sw $t0, ($sp) add $t1,$t1,1 j loop end: #and continue rest of program #data# stringdata :asciiz "Hello_Mum" Arithmetic - adding and subtracting Compare works like a Pascal “if” statement Branch or Jump - for a loop structure Interrupt - hands back control of the processor

When a program is about to be run, it first loads into RAM. The CPU then fetches each instruction in turn, analyses and executes it. This is called the Fetch-Execute Cycle.

How Windows Loads...  The BIOS boots up and does the POST.  The BIOS then locates an operating system (usually on the C:\ drive).  The OS then gets loaded from the hard drive into the RAM.  The CPU then starts to execute the OS program by carrying out each instruction in turn.

Summary [1]  Programming languages can be High Level or Low Level.  High Level languages are closer to the language of the programmer.  Low Level languages are closer to the language of the processor.  Each model of processor has its own instruction set.  The assembly code used depends on which model of processor will be used to run the program.

Summary [2]  High level languages are compiler-dependent.  Low level languages are processor-dependent.  Processors fall into two main groups – those using a Complex, and those using a Reduced, instruction set.  Programs about to be run are loaded into RAM.  The CPU then retrieves each instruction in turn, analyses and runs it.