160 likes | 241 Views
This course provides an overview of computer hardware components and the fundamentals of low-level programming. Topics include the role of hardware in problem-solving, the importance of programming, low-level vs. high-level programming, examples of programming tasks, translators and compilers, operating systems, and the significance of programming languages with a focus on Fortran 90. Through this course, you will gain insights into the basics of programming in Fortran and learn how to solve problems effectively using computers.
E N D
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 abilitiesProgramming 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 Examplemov 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 Application Cmd. Interpreter Compilers, Editors System Programs OS Hard Ware
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