99_Introduction
Download
Report
Transcript 99_Introduction
Chapter 1
Computers, Compilers, & Unix
Overview
Computer
hardware
Unix
Computer
Compilers
Languages
Computer Hardware
Central
Processing Unit (CPU)
The
heart and brains of a computer
The device that performs all calculations and data
manipulation in a computer
Main
The
Memory (RAM)
place the CPU looks for instructions and data to
process
Computer Hardware
Mass
Storage (hard drive)
Holds
information not immediately needed by CPU
Holds massive amounts of data
Input/Output
keyboard,
Devices
mouse, monitor, printer
Devices used to move information into and out of the
computer
Basic Architecture
Processor
(CPU)
Main Memory
CPU
Memory
volatile
I/O
devices
secondary
memory
communications
terminals
System
a
System Bus
Disk
Network
Controller Controller
Serial Device
Controller
interconnection
bus is used to exchange data and control information
What is an operating system?
Acts
as interface between computer system
resources (hardware) and applications
Manages
the way other programs use system
resources and communicate with each other
Common
operating systems
Windows
In
XP, Macintosh OS, & Linux
CS 201 we use Solaris, a type of Unix
Unix file system
Home
directory
A directory set aside for your personal use
The starting point when you log in
Working
directory
Whatever directory you are currently in
The
Initially, the working directory is the home directory
cd command is used to change the working directory
cd .. Moves up one level in the directory structure
cd <directory> moves down one level, into the given directory
The
pwd command gives the full path of the working
directory
The ls command lists the contents of the working directory
Programming Languages
Common
programming languages include …
C C++ Java Pascal Visual Basic
COBOL Lisp Scheme Ada
These
FORTRAN
high-level languages
Resemble human languages
Are designed to be easy to read and write
Use more complicated instructions than the CPU can follow
Must be translated to zeros and ones for the CPU to execute a
program
Low-level Languages
An
assembly language command such as
ADD X Y Z
might mean add the values found at x and y
in memory, and store the result in location z.
Assembly
language must be translated to
machine language (zeros and ones)
0110 1001 1010 1011
The CPU can execute machine language instructions
Compilers
Translate
high-level language to
machine language
Source
the original program in a high level language
Object
code
code
the translated version in machine language
Linkers
Some
programs we use are already compiled
Their
object code is available for us to use
Input
and output routines
A Linker
The
combines
object code for the programs we write
and
The object code for the pre-compiled routines
into
The machine language program the CPU can run
From Source Code to Executable Program
#include <iostream>
using namespace std;
int main()
{
cout << "Hello
World!" << endl;
return 0;
}
compiler
1001010100010
1010010101001
0010101001010
0101001001001
0100101010101
0010010100100
1001010010100
1010000100100
1001
library
linker
0100101010010
1001010010010
0101001010101
0100100101001
0010010100101
0010100101010
1010100100100
1000100100100
1001
executable
file
1001010100010
1010010101001
0010101001010
0101001001001
0100101010101
0010010100100
1001010010100
1010000100100
1001
object file
Programming & Problem Solving
Algorithm
A sequence
of precise instructions which
leads to a solution
Program
An
algorithm expressed in a language the computer
can understand
Program Design
Programming
No
is a creative process
complete set of rules for creating a program
Design
process for CS-201
Problem
Solving Phase
Produce
an algorithm that solves the problem
Implementation
Translate
& Testing Phase
into a valid, functioning program
Problem Solving Phase
Be
certain the task is completely specified
What
is the input?
What information is in the output?
How is the output organized?
Develop
the algorithm before implementation
Experience
shows this saves time in getting your
program to run
Test the algorithm for correctness
Implementation & Testing Phase
Translate
Easier as you gain experience with the language
Compile
the source code
The compiler identifies violations of the programming language's
grammar
Run
the algorithm into a programming language
These are known as syntax errors
the program on sample data
Verify correctness of results
If you made mistakes in your algorithm design, or in your translation to the
programming language, you'll see errors
These are known as logic errors
Modify
the algorithm and/or program and repeat