cp0474_tb01

34
Introduction to computers and programming ITE101 – Problem Solving Us ing C

Upload: saba-pathy

Post on 05-Apr-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 1/34

Introduction to computers andprogramming

ITE101 – Problem Solving Using C

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 2/34

What is a Computer?

• Computer

– Device capable of performing computations and

making logical decisions– Computers process data under the control of sets of 

instructions called computer programs

• Hardware

– Various devices comprising a computer

– Keyboard, screen, mouse, disks, memory, CD-ROM, and processing units

• Software

– Programs that run on a computer

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 3/34

Computer Organization

• Six logical units in every computer:– Input unit

• Obtains information from input devices (keyboard, mouse)

– Output unit

• Outputs information (to screen, to printer, to control other devices)

– Memory unit• Rapid access, low capacity, stores input information

– Arithmetic and logic unit (ALU)

• Performs arithmetic calculations and logic decisions

– Central processing unit (CPU)

• Supervises and coordinates the various components of the computer– Secondary storage unit

• Cheap, long-term, high-capacity storage

• Stores inactive programs

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 4/34

Computer Architecture

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 5/34

A Computer Consists of • a central processing unit (CPU) consists of 

– an arithmetic/logic unit (ALU) where math and logic operations are

performed,

– a control unit which directs most operations by providing timing

and control signals,

– and registers that provide short-term data storage and management

facilities.

• a memory unit that stores instructions and data, and

• input (e.g. keyboard, mouse, microphone, disk drive, etc.) and output 

(e.g. monitor, status indicator lights, speakers, disk drive, etc.) units

that are used to transmit data into and out of the computer.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 6/34

ALU

• A : The type of operation that the ALU needs to

perform is determined by signals from the control

unit .

• B: The data can come either from the input unit, or

• C: from the memory unit.

• D: Results of the operation can either be

transferred back to the memory unit or

• E: directly to the output unit .

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 7/34

The memory unit - or random

access memory (RAM) -• stores instructions and/or data.

• Memory is divided into an array of "boxes" each containing a byte of 

information.– A byte consists of 8 bits.

– A bit (binary digit) is either 0 (OFF) or 1 (ON).

– The memory unit also serves as a storage for intermediate and final results

of arithmetic operations.

• F : Control signal (a read or a write operation).

• G : A location in memory

• H : Input to memory data lines when the control signal J is enabled.

• I : Memory to the output unit when the control signal L is enabled.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 8/34

Control Unit• contains logic and timing circuits that generate the appropriate signals

necessary to execute each instruction in a program.

• It fetches an instruction from memory by sending an address (G) and

• a read command (F) to the memory unit.

• The instruction word(s) stored at the memory location specified by the

address is then transferred to the control unit (K).

• After decoding this instruction, the control unit transmits the

appropriate signals to the other units in order to execute the specified

operation.

• This sequence of fetch and execute is repeated by the control unit until

the computer is either powered off or reset.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 9/34

Common Softwares

• Operating System

• Compilers• Assemblers

• Interpreters

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 10/34

What Is an Operating System?

• An interface between the hardware and the

user.

• Provides an easy and efficient use of the

system resources.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 11/34

Evolution of Operating Systems

• Single_user Batch processing– Do only one job or task at a time

• Early Operating systems– Manage transitions between jobs (minimizing transition time

between jobs)

– Increased throughput• Amount of work computers process

• Multiprogramming– Computer resources are shared by many jobs or tasks (users still

waited a long time for their output)

• Timesharing (access computers via terminals)– Computer runs a small portion of one user’s job then moves on to

service the next user

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 12/34

Programming Language :

Definition

• A vocabulary and set of grammatical rules

for instructing a computer to perform

specific tasks.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 13/34

Evolution of Programming languages

– First Generation : Machine languages• Strings of numbers giving machine specific instructions

• Example:

+1300042774

+1400593419

+1200274027

– Second Generation : Assembly languages• English-like abbreviations representing elementary computer operations

(translated via assemblers)

– Example:

LOAD BASEPAY

 ADD OVERPAY

STORE GROSSPAY

– Third Generation : High-level languages• Codes similar to everyday English

• Use mathematical notations (translated via compilers)

• Example: grossPay = basePay + overTimePay

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 14/34

PL hierarchy

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 15/34

What does the computer

understand?

• Computer only understands machine

language instructions.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 16/34

Assembler

• Instructions written in assembly languagemust be translated to machine language

instructions :– Assembler does this

• One to one translation : One AL instructionis mapped to one ML instruction.

• AL instructions are CPU specific.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 17/34

Compiler• Instructions written in high-level language also

must be translated to machine language

instructions :– Compiler does this

• Generally one to many translation : One HLinstruction is mapped to many ML instruction.

• HL instructions are not CPU specific but compileris.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 18/34

Translation from HLL to ML

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 19/34

Interpreter• An interpreter translates high-level instructions into an

intermediate form, which it then executes. In contrast, acompiler translates high-level instructions directly into

machine language.

• Compiled programs generally run faster than interpretedprograms.

• The advantage of an interpreter, however, is that it doesnot need to go through the compilation stage during which

machine instructions are generated. This process can betime-consuming if the program is long. The interpreter, onthe other hand, can immediately execute high-levelprograms. For this reason, interpreters are sometimes usedduring the development of a program, when a programmer

wants to add small sections at a time and test them quickly.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 20/34

Different types of High-level PL

• Weakly typed/strongly typed

• Structured

• And many other types

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 21/34

Typed Languages

• Type information was added to programs to

improve efficiency.

– For ex. An integer addition is performed more

efficiently than floating point addition.

– Hence it is more advantageous to declare the

value/variable as integer whenever it is

possible.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 22/34

Weakly Typed/Strongly Typed

Language• A strongly-typed programming language is one in

which each type of data (such as integer,

character, hexadecimal, packed decimal, and soforth) is predefined as part of the programminglanguage and all constants or variables defined fora given program must be described with one of thedata types.

• Certain operations may be allowable only withcertain data types. The language compiler enforcesthe data typing and use compliance.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 23/34

Strongly Typed Language contd..

Different definitions are given for a language

to be strongly typed and if that condition is

not defined by a particular language it is

said to weakly typed in that context.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 24/34

For example..1. A language is strongly typed if it contains

compile-time checks for type constraint

violations. If all checking is deferred to run time,it is weakly typed.

2. A language is strongly typed if it containscompile- or run-time checks for type constraintviolations. If no checking is done, it is weakly

typed.

3. A language is strongly typed if conversionsbetween different types are forbidden. If suchconversions are allowed, it is weakly typed.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 25/34

More Examples..4. A language is strongly typed if conversions

between different types must be indicated

explicitly. If implicit conversions are performed,it is weakly typed.

5. A language is strongly typed if there is no

language-level way to disable or evade the

type system. If there are C-style casts or othertype-evasive mechanisms, it is weakly typed.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 26/34

Where does C fit in?

• For example, under definitions 3,4 and 5 the

C language is weakly typed; — with

definitions 1 and 2 it is open for further

debate since C does perform type checks for

compound types but not for scalar or array

types.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 27/34

Typed Languages contd..• An advantage of strong data typing is that it

imposes a rigorous set of rules on a programmer

and thus guarantees a certain consistency of results.

• A disadvantage is that it prevents the programmer

from inventing a data type not anticipated by the

developers of the programming language and itlimits how "creative" one can be in using a given

data type.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 28/34

Structured Programming

• Structured programming

– Disciplined approach to writing programs

– Clear, easy to test and debug and easy to modify

• Structured programming is hard and takes

time to master

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 29/34

Structured Programming contd..• A technique for organizing and coding computer

programs in which a hierarchy of modules is used,

each having a single entry and a single exit point,and in which control is passed downward through

the structure without unconditional branches to

higher levels of the structure.

• Three types of control flow are used: sequential,test, and iteration

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 30/34

Structured programming• Only the following code structures are used

to write programs:

1.Sequence of sequentially executedstatements.

2.Conditional execution of statements (i.e.,"if" statements).

3.Looping.

4.Structured SubRoutine calls.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 31/34

Structure Programming contd..In particular, the following language usage is

forbidden:

• "GoTo" statements.• "break" or "continue" out of the middle of loops.

• Multiple exit points to afunction/procedure/subroutine (i.e., multiple

"return" statements).• Multiple entry points to a

function/procedure/subroutine.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 32/34

Structured Programming contd..

• Structured Programming is generally a non-

issue when doing ModularProgramming or

ObjectOrientedProgramming as it's assumed

that individual methods are structured.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 33/34

Structured VS unstructured

Languages

• Structured languages, such as Pascal, Ada

and dBASE, force the programmer to write

a structured program.

• Unstructured languages such as FORTRAN,

COBOL and BASIC require discipline on

the part of the programmer to write astructured program.

7/31/2019 CP0474_TB01

http://slidepdf.com/reader/full/cp0474tb01 34/34

Structured VS unstructured

Languages• Unstructured languages define control flow largely in terms of a

GOTO command that transfers execution to a label in code. Structured

programming languages provide constructs (often called "if-then-else",

"switch", "unless", "while", "until", and "for") for creating a variety of loops and conditional branches of execution, although they may also

provide a GOTO to reduce excessive nesting of cascades of "if"

structures, especially for handling exceptional conditions.

• Strictly speaking, in a structured programming language, any code

structure should have only one entry point and one point of exit; many

languages such as C allow multiple paths to a structure's exit (such as

"continue", "break", and "return"), which can bring both advantages

and disadvantages in readability.