Introduction
-
Upload
university-of-central-punjab -
Category
Education
-
view
350 -
download
0
Transcript of Introduction
Principles of Programming - NI July 2005 1
Chapter 1: Introduction
In this chapter you will learn about: Overview of PC components
The different types of languageNatural Language
Formal Language
Functional / Imperative Language
Programming Languages
C as an imperative language
C program at a glance
Principles of Programming - NI July 2005 2
Computer Hardware Components
Components of a PC
Principles of Programming - NI July 2005 3
Input / Output Devices
Input DevicesAccepts information from the user and transforms it to digital codes that the computer can processExample: keyboard, mouse, scanner
Output DevicesAn interface by which the computer conveys the output to the userExample: monitor, printer
Principles of Programming - NI July 2005 4
Main Memory
A semiconductor device which stores the information necessary for a program to run.2 types
ROM (Read Only Memory)Contains information that is necessary for the computer to boot upThe information stays there permanently even when the computer is turned off.
RAM (Random Access Memory)Contains instruction or data needed for a program to runGot erased when the computer is turned off.
Principles of Programming - NI July 2005 5
Central Processing Unit (CPU)
Does most of the work in executing a programThe CPU inside a PC is usually the microprocessor3 main parts:
Control UnitFetch instructions from main memory and put them in the instruction register
ALU (Arithmetic Logic Unit)Execute arithmetic operations
RegistersTemporarily store instructions or data fetched from memory
Principles of Programming - NI July 2005 6
Storage Devices
A magnetic device used to store a large amount of information.Store the software components or data needed for the computer to execute its tasks.Could be “read only” or “writable”.Example: Hard drive, CD ROM, floppy disks
Principles of Programming - NI July 2005 7
Network Devices
Connect a computer to the other computers.Enable the users to access data or execute programs remotely.Example: modem, Ethernet card
Principles of Programming - NI July 2005 8
Natural language
Our everyday-language; spoken and writtenNot 100% needed to understand:
“Do you want to buy this computer ?” remains comprehensible
Depends on circumstances; the context:“Do you like one ?” doesn't make sense on its own. It needs a situation around it:
– someone holding a bouquet of flowers: you might take one
– someone pointing to an expensive car: your opinion is asked
– someone 'offers' you an oily cloth to sneeze: you don't take it
Principles of Programming - NI July 2005 9
Semantics and Syntax
Semantics – the meaning of the language within a given context
Syntax - Syntax are the rules to join wordstogether in forming a correct expression or phrase.
In natural languages it is often possible to assemble a sentence in more than one correct ways.
Principles of Programming - NI July 2005 10
Formal Language
Language with limited, defined, words
Each concatenation of words ('phrase') has a single, clearly defined meaning
no (miss-)interpretation possible
Sometimes called “Context Free Language”
To 'talk' to a computer; to instruct a computer; our commands must be 100% clear and correct.
Often there is only a single, correct syntax.
Principles of Programming - NI July 2005 11
Functional / Imperative Language
Functional Language:Tell what to do, but not how:
sum [1...10]
Imperative Language:Tell what to do, but mainly how:
“Take number 1 and add the next number to it; then add the next number to the sum; and so on; until you have reached 10 as number to be added. Then print the sum of all numbers”
Principles of Programming - NI July 2005 12
What is Programming?
Programming is instructing a computer to do something for you with the help of a programming languageThe two roles of a programming language:
Technical: It instructs the computer to perform tasks.Conceptual: It is a framework within which we organize our ideas about things and processes.
In programming, we deal with two kind of things:Data - representing 'objects' we want to manipulateProcedures -'descriptions' or 'rules' that define how to manipulate data.
Principles of Programming - NI July 2005 13
Programming Language
Formal Language used to communicate to a computer.
A programming language contains instructions for the computer to perform a specific action or a specific task:
'Calculate the sum of the numbers from 1 to 10‘
'Print “I like programming”‘
'Output the current time'
Principles of Programming - NI July 2005 14
Programming Language
Can be classified into as a special-purpose and general-purpose programming languages.Special-purpose : is design for a particular type of application
Structured Query Language (SQL)General-purpose : can be used to obtain solutions for many types of problems
Machine Languages
Assembly Languages
High-Level Languages
Principles of Programming - NI July 2005 15
Machine Language
The only language that the processor actually 'understands‘Consists of binary codes: 0 and 1
Example: 00010101 11010001 01001100
Each of the lines above corresponds to a specific task to be done by the processor.Programming in machine code is difficult and slow since it is difficult to memorize all the instructions.Mistakes can happen very easily. Processor and Architecture dependent
Principles of Programming - NI July 2005 16
Assembly Language
Enables machine code to be represented in words and numbers.Example of a program in assembler language:
LOAD A, 9999LOAD B, 8282SUB BMOV C, ALOAD C, #0002DIV A, CSTORE A, 7002
Easier to understand and memorize (called Mnemonics), compared to machine code but still quite difficult to use.Processor and Architecture dependent
Principles of Programming - NI July 2005 17
High-Level LanguageUse more English words. They try to resemble English sentences. Therefore, it is easier to program in these languages.
The programming structure is problem oriented - does not need to know how the computer actually executes the instructions.
Processor independent - the same code can be run on different processors.
Examples: Basic, Fortran, Pascal, Cobol, C, C++, Java
A high level language needs to be analyzed by the compiler and then compiled into machine code so that it can be executed by the processor.
Principles of Programming - NI July 2005 18
C Programming Language
Why 'C' ?Because based on 'B'; developed at Bell Laboratories
Developed by Dennis Ritchie at Bell Laboratories in the 1960s
In cooperation with Ken Thomson it was used for Unix systems
The C Language was only vaguely defined, not standardized, so that almost everyone had his own perception of it, to such an extend that an urgent need for a standard code was creeping up
Principles of Programming - NI July 2005 19
C Programming Language cont…
In 1983, the American National Standards Institute (ANSI) set up X3J11, a Technical Committee to draft a proposal for the ANSI standard, which was approved in 1989 and referred to as the ANSI/ISO 9899 : 1990 or simply the ANSI C, which is now the global standard for C.
This standard was updated in 1999; but there is no compiler yet
Principles of Programming - NI July 2005 20
C – An Imperative Language
C is a highly imperative language We must tell it exactly how to do what;
the means and functions to use;
which libraries to use;
when to add a new line;
when an instruction is finished;
in short: everything and anything…
Hint: Observe the syntax in the next slide
Principles of Programming - NI July 2005 21
A Simple Program in C
#include <stdio.h>
main(){
printf("I like programming in C.\n");}
Principles of Programming - NI July 2005 22
A Simple Program in C - explanation
#include <stdio.h>
main(){
printf("I like programming in C.\n");
}
standard Library, input-output, header-file
Begin of program
End of statement
End of Segment
Start of Segment
Function for printing text
Insert a new line
Principles of Programming - NI July 2005 23
C Output
I like programming in C.
Principles of Programming - NI July 2005 24
Summary
We have looked at some underlying hardware
We have seen some different types of languages;the relevance of semantics and syntax.
We have observed the detail necessary in an imperative language to instruct a computer properly.
Finally, we examined the syntax to print a line of text to the screen of our computer.