Introduction CS 104: Applied C++ What is Programming? For some given problem: __________ a solution for it -- identify, organize & store the problem's.

Slides:



Advertisements
Similar presentations
INSTRUCTION SET ARCHITECTURES
Advertisements

1 Homework / Exam Turn in mp2 at start of class today Reading –PAL, pp 3-6, Exam #1 next class –Open Book / Open Notes –NO calculators or other.
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#4)
The Binary Machine Modern high-level programming languages are designed to make programming easier. On the other end, the low level, all modern digital.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design First Edition by Tony Gaddis.
1 ICS 51 Introductory Computer Organization Fall 2006 updated: Oct. 2, 2006.
1 Function Calls Professor Jennifer Rexford COS 217 Reading: Chapter 4 of “Programming From the Ground Up” (available online from the course Web site)
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
1 Programming & Programming Languages Overview l Machine operations and machine language. l Example of machine language. l Different types of processor.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
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.
Introduction to a Programming Environment
Implementation of a Stored Program Computer
Compiler Construction
C Prog. To Object Code text text binary binary Code in files p1.c p2.c
Topic 1: Introduction to Computers and Programming
CS 104 Introduction to Computer Science and Graphics Problems Software and Programming Language (2) Programming Languages 09/26/2008 Yang Song (Prepared.
Assembly & Machine Languages
1 I.Introduction to Algorithm and Programming Algoritma dan Pemrograman – Teknik Informatika UK Petra 2009.
1 Chapter-01 Introduction to Computers and C++ Programming.
PROCESSING Designing and developing a program. Objectives Understand programming as the process of writing computer instructions that achieve a goal Understand.
Programming Languages Generations
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
Course Introduction C++ An Introduction to Computing.
THE PROCESS OF WRITING SOFTWARE Python: System Engineering 1.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
Natawut NupairojAssembly Language1 Introduction to Assembly Programming.
Laboratorio di Calcolo I Docente: prof. Berardi (Dip. Informatica) Lezione introduttiva su Computing ed esercitazioni di Unix/Linux tenute da Fabrizio.
Programming Languages: History & Traditional Concepts CSC 2001.
Implementation of a Stored Program Computer ITCS 3181 Logic and Computer Systems 2014 B. Wilkinson Slides2.ppt Modification date: Oct 16,
1 CPSC 185 Introduction to Computing The course home page
© Calvin College, When we prepare a program, the experience can be just like composing poetry or music … My claim is that it is possible to write.
PROGRAMMING LANGUAGES
Ted Pedersen – CS 3011 – Chapter 10 1 A brief history of computer architectures CISC – complex instruction set computing –Intel x86, VAX –Evolved from.
ECEG-3202 Computer Architecture and Organization Chapter 7 Reduced Instruction Set Computers.
FOUNDATION IN INFORMATION TECHNOLOGY (CS-T-101) TOPIC : INFORMATION SYSTEM – SOFTWARE.
Introduction 1 (Read Chap. 1) What is Programming? For some given problem: design a solution for it -- identify, organize & store the problem's data --
Represents different voltage levels High: 5 Volts Low: 0 Volts At this raw level a digital computer is instructed to carry out instructions.
Beginning Snapshots Chapter 0. C++ An Introduction to Computing, 3rd ed. 2 Objectives Give an overview of computer science Show its breadth Provide context.
Sahar Mosleh California State University San MarcosPage 1 Assembly language and Digital Circuit By Sahar Mosleh California State University San Marcos.
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
Chapter 11  Getting ready to program  Hardware Model  Software Model  Programming Languages  Facts about C++  Program Development Process  The Hello-world.
1 Assembly Language: Function Calls Jennifer Rexford.
Skill Area 311 Part B. Lecture Overview Assembly Code Assembler Format of Assembly Code Advantages Assembly Code Disadvantages Assembly Code High-Level.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Programming Languages
Software Engineering Algorithms, Compilers, & Lifecycle.
INTRODUCTION TO COMPUTER PROGRAMMING ITC-314. Computer Programming  Computer Programming means creating a sequence of instructions to enable a computer.
Introduction to computer software. Programming the computer Program, is a sequence of instructions, written to perform a specified task on a computer.
A LECTURE NOTE. Introduction to Programming languages.
CHAPTER NINE.
Component 1.6.
Assembly language.
Introduction to programming
Operating System Interface between a user and the computer hardware
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
Chapter 3 Machine Language and Assembly Language.
Chapter 3 Machine Language and Assembly Language.
A Closer Look at Instruction Set Architectures
Assembly Language Programming V: In-line Assembly Code
TRANSLATORS AND IDEs Key Revision Points.
C Prog. To Object Code text text binary binary Code in files p1.c p2.c
Assembly Language Programming II: C Compiler Calling Sequences
Lecture 30 (based on slides by R. Bodik)
Machine-Level Programming: Introduction
1.3.7 High- and low-level languages and their translators
Compiler Construction CS 606 Sohail Aslam Lecture 1.
Algoritmos y Programacion
Presentation transcript:

Introduction CS 104: Applied C++ What is Programming? For some given problem: __________ a solution for it -- identify, organize & store the problem's __________ -- develop _______________ (procedures) to process it; ______ this solution as a program; ______ the program; __________ the program (fix it, upgrade it, …). What is a program? — a collection of statements that — implement the design plan, and — are written in a programming language — a language that the computer can understand. (Read Chap

What kinds of statements do computers understand? 2 A computer only understands a language specially designed for it called _______________ language. Machine-language statements are stored in a computer’s memory, which is a sequence of two-state devices (on-off switches). They are retrieved from memory and executed one at a time. The "character set" for machine language: ___ representing "off" ___ representing "on" RISC CISC 2

Machine language programs thus consists of strings of _________ (____________________) 3 Example (hypothetical)

Bits are usually grouped into _________ (8 bits) and __________ (e.g., 32 or 64 bits). Each machine language instruction might be stored in one word. 4 opcod e instruction #1 first operandsecond operand e.g., "Store" 1 in memory location with this address 4

So a sequence of machine language instructions might be stored in a sequence of consecutive words instruction #1 #4 #3 #2 5

A Real Machine-Language Example 6 SPARC executable machine code … this goes on for another 1600 lines... Intel Pentium executable machine code … this goes on for another 74 lines... int main() { int x, y; x = 1; y = x + 2; return 0; } C++ 6

Early Computers Required a programmer to write in machine language –Very easy to make mistakes! –And they were hard to find! –Programs were not ___________ They could only be run on one kind of machine! Result: programming was very difficult and programs weren't widely used. 7 7

An Early Innovation Devise a set of mnemonics (abbreviations), one for each machine language instruction; this was called an _____________ language Create a machine-language program called an ___________to input each assembly language instruction and translate it into machine language LOAD x ADD 2 STORE y Assembler 8 8

9 The Real Example Intel Pentium assembly language: _main: pushl %ebp movl %esp,%ebp subl $24,%esp call ___main movl $1,-4(%ebp) movl -4(%ebp),%eax addl $2,%eax movl %eax,-8(%ebp) xorl %eax,%eax jmp L2.align 4 L2: movl %ebp,%esp popl %ebp ret Intel Assembler SPARC assembly language: main: save%sp, -120, %sp mov1, %o0 st%o0, [%fp-20] ld[%fp-20], %o0 add%o0, 2, %o1 st%o1, [%fp-24] mov0, %i0 b.LL2 nop mov0, %i0 b.LL2 nop.LL2: ret restore Sun Assembler 9

Assembly Languages Allowed a programmer to use mnemonics, which were more natural than binary. +Much easier to read programs +Much easier to find and fix mistakes –Still ______________ to different machines –Still quite difficult to write, read, and debug programs 10

To improve on assembly language: Devise a set of statements called a ____________ language that are closer to __language and methods of writing expressions and A program called a ___________to translate them into machine language. 11 Why not just use human language? It’s too complex and ambiguous; e.g., “Time flies like an arrow” Next Major Advance: High Level Languages & Compilers 11

Compilers vs. Assemblers An assembler translates one assembly-language statement into ______ machine-language statement. A compiler translates one high-level statement into ______________ machine-language statements so it is much more difficult to write a correct compiler than an assembler. LOAD b ADD c STORE temp1 LOAD a MULT temp1 STORE z Assembler z = a * (b + c); Compiler 12

With programming in high-level languages (e.g., C++): +Programs are much easier to read. +Mistakes are much easier to find and fix. +Programs are (or can be) ___________from one machine to another (provided they conform to the language standard). Just need a compiler for that language written in the machine language of that machine.  Not so simple that just anyone can use them (otherwise this course wouldn't exist) 13 Advantages of High-Level Languages 13

Objectives in Programming A program to solve a problem should be: +correct (it actually solves the problem) +readable (understandable by another person) +user-friendly (designed in a way that is easy for its user to use). 14 Grading criteria Later +efficient (doesn’t waste time or space) 14