Upload
gilbert-mosley
View
212
Download
0
Embed Size (px)
Citation preview
Course Overview
What are Computers?
• From Outside
– CPU box, Monitor, Keyboard, mouse and Printers
• From inside– ICs, Chipsets, Hard Disks, PCB cards, Drives, Buses– All the above are called Computer Hardware– The physical engine that solves problems
Programmability
• Unique feature of Computers• raw HW can not do anything on its own• needs programs or software to do things• Same hardware can be configured to do a variety of
functions• Programs provide this ability• `run' or `execute' the program in the machine for this
What are Programs
• Sequence of precise instructions or commands• tell the HW to read input,• to compute simple arithmetic functions• and to print outputs etc.• Control HW to compute a variety of tasks• It is the programs that provide the rich problem
solving abilities Programming Main focus of this course
Low-level Programming
• Programs that can run in a computer are low-level,• Instructions are simple arithmetic and logical operation on
binary numbers (sequences of 0 and 1)• specific to the machine and will not run in other machines• called as machine programs (assembly programs)• very difficult to write and understand, error prone• for most common applications not necessary
Example mov R1,R2 – move the value from R1 to R2 add R2,R3,R4 – add R2 and R3 and store it in R4 sto R4, #010110 – store R4 in memory
High-level programming• Instructions are complex operations on a variety of
data objects• programs are independent of machines• closer to problem domain• resembles natural language statements• easier to write, debug and understand• This is the focus of this course
• Examples– compute the interest for six months of Mr. Sachin's
Savings a/c– book a tkt. for Rahul from Mumbai to Bangalore– Switch on the alarm when belt not fastened
Translators/Compilers
• High level programs can not run directly on computers
• need to be translated to low level instructions
• compilers do this job
• compilers are themselves programs - system programs
• CS students learn how to write compiler software
Operating Systems
• Compilers alone are not enough• Other programs required for executing
application programs – Operating Systems• Provides a high level view of hardware• Efficient utilization of resources• various utility functions, like reading inputs,
printing, etc.• UNIX, Windows, SunOS, Solaris,• GNU/Linux
A Simplified Picture
Hard Ware
Application
Cmd. Interpreter
Compilers, Editors
OS
System Programs
OS is the boss• OS gateway to the machine• All interaction through the OS• OS is in control always• Safety, Security and Efficiency• Watches for inputs (mouse,keyboard) and
provides appropriate responses– Giving login Prompts, – Reading user name and passwords– Allows or rejects
• Runs the command line interpreter (window manager)
The Shell
• The command line interface is called shell• Various versions of shell
– C-shell, Bash, etc.• After login, user commands are interpreted by the
shell and appropriate OS commands are executed• User commands to create/remove, edit files, compile
and execute programs etc. • When a user command is executed, there is a
momentary transfer of control • After execution, control is transferred back
Programming Languages
• Program instructions should be precise enough to be understood by machines or other programs
• Compilers and Raw HW are dumb• need precise syntactic rules and a unique
semantics• Programming languages define these rules
and semantics• Hundreds of languages - FORTRAN, Algol
60, PASCAL, BASIC, C, C++, Java,
Fortran
• We teach FORTRAN
• First High Level Language (1954 – 57)
• John Bachus (IBM), got Turing Award
• Revolutionary Step
• Grand father of all modern PL
• Name derived from Formula translation
• Simple idea: Mathematical formulae are high level descriptions of computations
Evolution of Fortran• Original Fortran very primitive, restrictive and
small• It has evolved over the years
– Fortran II– Fortran IV– Fortran 66, Fortran 77 – Fortran 90, Fortran 95
• Fortran 90 compares with all modern languages
• We will use FORTRAN 90• So, this is a course on Programming in
Fortran 90
Why Fortran
• Efficient compilers exist• Oldest and widely used• Large base of utilities and programs• It has all modern features• Fortran 90 is just a choice• Self-learning of Programming in C, Java or
any PL possible after this
Main Focus
• Problem solving using computers• Fortran for concreteness• Exercises in programming in a HLL• All languages, at your level, are equivalent• Obtaining a solution is more difficult• Representing solution in a PL require mastery
over the language and comes with practice