cmp104 lec 8

55
Computer Languages Machine Language – A collection of binary numbers Not standardized. There is a different machine language for every processor family. Assembly Language - mnemonic codes that corresponds to machine language instructions. Low level: Very close to the actual machine language. High-level Languages - Combine algebraic expressions and symbols from English High Level : Very far away from the actual machine language For example: Fortran, Cobol, C, Prolog, Pascal, C#, Perl, Java. 1

Upload: kapil078

Post on 22-May-2015

223 views

Category:

Education


3 download

TRANSCRIPT

Page 1: cmp104 lec 8

Computer Languages

• Machine Language – A collection of binary numbers– Not standardized. There is a different machine language for

every processor family.• Assembly Language - mnemonic codes that corresponds

to machine language instructions.– Low level: Very close to the actual machine language.

• High-level Languages - Combine algebraic expressions and symbols from English– High Level : Very far away from the actual machine language– For example: Fortran, Cobol, C, Prolog, Pascal, C#, Perl, Java.

1

Page 2: cmp104 lec 8

Example of Computer Languages

char name[40];printf("Please enter your name\n");scanf("%s", name);printf("Hello %s", name);

push offset string "Please enter your name\n" (41364Ch) call dword ptr [__imp__printf (415194h)] add esp,4 lea eax,[name] push eax push offset string "%s" (413648h) call dword ptr [__imp__scanf (41519Ch)] add esp,8 lea eax,[name] push eax push offset string "Hello %s" (41363Ch) call dword ptr [__imp__printf (415194h)] add esp,8

68 4C 36 41 00 FF 15 94 51 41 00 83 C4 04 8D 45 D8 50 68 48 36 41 00 FF 15 9C 51 41 00 83 C4 08 8D 45 D8 50 68 3C 36 41 00 FF 15 94 51 41 00 83 C4 08

C Source Code:

Assembly Code:

Machine Code:

2

Page 3: cmp104 lec 8

Compiler• Compilation is the process of translating the source code

(high-level) into executable code (machine level).• Source file - A file containing the program code

– A Compiler turns the Source File into an Object File• Object file - a file containing machine language

instructions– A Linker turns the Object File into an Executable

• Integrated Development Environment (IDE) - a program that combines simple word processing with a compiler, linker, loader, and often other development tools– For example, Eclipse or Visual Studio

3

Page 4: cmp104 lec 8

C Programming

An introduction

Page 5: cmp104 lec 8

History• The initial development of C occurred at

AT&T Bell Labs between 1969 and 1973.• It is developed in 1972 by Dennis Ritchie • The origin of C is closely tied to the

development of the Unix operating system, • It was named "C" because many of its

features were derived from an earlier language called "B", which according to Ken Thompson was a stripped-down version of the BCPL (Basic Combined Programming Language).

5

Page 6: cmp104 lec 8

Programming

• Programming - scheduling, or performing a task or an event.

• Computer Programming - creating a sequence of steps for a computer to follow in performing a task.

• Programming Language - a set of rules, symbols, and special words used to construct a computer program.

• Programming language rules consist of:– Rules of Syntax which specify how valid instructions are written

in the language.– Rules of Semantics which determine the meaning of the

instructions (what the computer will do).

6

Page 7: cmp104 lec 8

A SIMPLE C PROGRAM

The following program is written in the C programming language.

#include <stdio.h>

main()

{

printf ("Programming in C is easy.\n");

}

Sample Program Output: Programming in C is easy.

_

7

Page 8: cmp104 lec 8

A NOTE ABOUT C PROGRAMS

• In C, lowercase and uppercase characters are very important! All commands in C must be in lowercase.

• The C programs starting point is identified by the word main() – This informs the computer as to where the

program actually starts.• The brackets that follow the keyword main

indicate that there are no arguments supplied to this program (this will be examined later on).

8

Page 9: cmp104 lec 8

Cont’d• The two braces, { and }, signify the begin

and end segments of the program. • The purpose of the statment :

#include <stdio.h> is to allow the use of the printf statement

to provide program output.• Text to be displayed by printf() must be

enclosed in double quotes “ ”. • The program has only one statement printf("Programming in C is easy.\n")

9

Page 10: cmp104 lec 8

• printf() is actually a function in C that is used for printing variables and text. Where text appears in double quotes "", it is printed without modification.

• There are some exceptions however. This has to do with the \ and % characters. These characters are modifier's, and for the present the \ followed by the n character represents a newline character.

Cont’d

10

Page 11: cmp104 lec 8

• Another important thing to remember is that all C statements are terminated

by a semi-colon ;

Cont’d

11

Page 12: cmp104 lec 8

Summary of major points • program execution begins at main() • keywords are written in lower-case • statements are terminated with a semi-colon • text strings are enclosed in double quotes • C is case sensitive, use lower-case and try not

to capitalise variable names • \n means position the cursor on the beginning of

the next line • printf() can be used to display text to the screen • the curly braces { } define the beginning and

end of a program block

12

Page 13: cmp104 lec 8

CLASS EXERCISE 1Q1.1. What is the output of following program ?

#include <stdio.h> main() { printf("Programming in C is easy.\n");printf("And so is Pascal.\n");

}

13

Page 14: cmp104 lec 8

ANSWER 1.1

Programming in C is easy.

And so is Pascal.

_

14

Page 15: cmp104 lec 8

Process of Program execution

The diagram of program execution is given on next

Page:----

15

Page 16: cmp104 lec 8

Fig 1.12Entering, Translating, and Running a High-Level Language Program

16

Page 17: cmp104 lec 8

Q1.2 What is the output of following program ?

#include <stdio.h>

main()

{

printf("The black dog was big. ");

printf("The cow jumped over the moon.\n");

}

17

Page 18: cmp104 lec 8

ANSWER 1.2

The black dog was big. The cow jumped over the moon.

_

18

Page 19: cmp104 lec 8

Q1.3 Try and work out what the following program displays,

#include <stdio.h>

main()

{printf("Hello...\n..oh my\n...when do i stop?\n");

}

19

Page 20: cmp104 lec 8

ANSWER 1.3

Hello...

..oh my

...when do i stop?

_

20

Page 21: cmp104 lec 8

21

KEYWORDS • Keywords are words reserved by C so

they cannot be used as variables.Keywords

auto double int struct

break else long switch

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

do if static while

Page 22: cmp104 lec 8

Variables & Data Types• Declaring a variable reserves enough

bytes in memory to store value of the declared type.

22

Page 23: cmp104 lec 8

Cont’d• C provides the programmer with FOUR

basic data types • These are:

– integer–character– float–double

23

Page 24: cmp104 lec 8

Cont’d

• The basic format for declaring variables is

data_type var, var, ... ; where data_type is one of the four basic

types, an integer, character, float, or double type.

24

Page 25: cmp104 lec 8

DATA TYPE`2 Q2q `q2w2

Q1 2wSZ 2 bytes(-32768 ,32767)

Long int Integer quantity 4 bytes

float A number containing a decimal point

4 bytes(1E-37 to 1E+37)

char Any character 1 byte (-128 to 127)

double A number containing a decimal point but here we can have more significant figures.

8 bytes

25

Page 26: cmp104 lec 8

Cont’d• User defined variables must be declared

before they can be used in a program. • Get into the habit of declaring variables

using lowercase characters. Remember that C is case sensitive, so even though the two variables listed below have the same name, they are considered different variables in C.

– sum– Sum

26

Page 27: cmp104 lec 8

Cont’d• The declaration of variables is done after the

opening brace of main(), e.g.#include <stdio.h>main() {

int sum; sum = 500 + 15; printf("The sum of 500 and 15 is %d\n", sum); }

27

Page 28: cmp104 lec 8

General Form of printf() function

printf(“<format string>”,<list of variables”>);

<format string> can contain

%d for printing integer values.

%f for printing real values.

%c for printing character values.

28

Page 29: cmp104 lec 8

scanf() function

scanf(“format specifier”,& list of vaiables)

Again format specifier is same as in case of printf().

And & is address of operator.

29

Page 30: cmp104 lec 8

Some of the formatters for printf are

1. Cursor Control Formatters

\n new line

\t tab

30

Page 31: cmp104 lec 8

Cont’d

2. Variable Formatters

%d decimal integer

%c character

%s string or character array

%f float

%e double

31

Page 32: cmp104 lec 8

CLASS EXERCISE 2

Q2.1 What is the output of the following program? #include <stdio.h>

main()

{

int value1, value2, sum;

value1 = 35;

value2 = 18;

sum = value1 + value2;

printf("The sum of %d and %d is %d\n", value1, value2, sum);

}

32

Page 33: cmp104 lec 8

ANSWER 2.1

The sum of 35 and 18 is 53

_

33

Page 34: cmp104 lec 8

MORE ABOUT VARIABLES

• Variables must begin with a character or underscore, and may be followed by any combination of characters, underscores, or the digits 0 - 9.

• The following is a list of valid variable names:summary exit_flag I Jerry7 Number_of_moves

_valid_flag

34

Page 35: cmp104 lec 8

Cont’d• You should ensure that you use

meaningful names for your variables. The reasons for this are:– meaningful names for variables are self

documenting (see what they do at a glance)

– they are easier to understand – there is no correlation with the amount of

space used in the .EXE file – makes programs easier to read

35

Page 36: cmp104 lec 8

CLASS EXERCISE 3

Q3.1 Why are the variables in the following list invalid,

• value$sum • exit flag • 3lotsofmoney • char

36

Page 37: cmp104 lec 8

ANSWER 3.1

• value$sum contains a $ • exit flag contains a space • 3lotsofmoney begins with a digit • char is a reserved keyword

37

Page 38: cmp104 lec 8

COMMENTS

• The addition of comments inside programs is desirable.

• These may be added to C programs by enclosing them as follows:

/* bla bla bla bla bla bla */ • Note that the /* opens the comment field

and */ closes the comment field. Comments may span multiple lines.

38

Page 39: cmp104 lec 8

Cont’d• Comments may not be nested one inside

another. For e.g.

/* this is a comment. /* this comment is inside */ wrong */

• In the above example, the first occurrence of */ closes the comment statement for the entire line, meaning that the text wrong is interpreted as a C statement or variable, and in this example, generates an error.

39

Page 40: cmp104 lec 8

What Comments Are Used For

• Documentation of variables and their usage

• Explaining difficult sections of code • Describes the program, author, date,

modification changes, revisions etc • Copyrighting

40

Page 41: cmp104 lec 8

PREPROCESSOR STATEMENTS

• Note that preprocessor statements begin with a # symbol, and are NOT terminated by a semi-colon.

• Preprocessor statements are handled by the compiler (or preprocessor) before the program is actually compiled.

• In general, preprocessor constants are written in UPPERCASE

41

Page 42: cmp104 lec 8

Cont’d• The define statement is used to make

programs more readable. • Consider the following examples:

#define TRUE 1

#define FALSE 0

#define NULL 0

#define AND &

#define OR |

#define EQUALS ==

42

Page 43: cmp104 lec 8

HEADER FILES

• Header files contain definitions of functions and variables which can be incorporated into any C program by using the pre-processor #include statement.

• Standard header files are provided with each compiler, and cover a range of areas, string handling, mathematical, data conversion, printing and reading of variables.

43

Page 44: cmp104 lec 8

Cont’d• To use any of the standard functions, the

appropriate header file should be included. • This is done at the beginning of the C

source file. For example, to use the function printf() in a program, the line

#include <stdio.h>

should be at the beginning of the source file, because the definition for printf() is found in the file stdio.h

44

Page 45: cmp104 lec 8

Cont’d• All header files have the extension .h and

generally reside in the /include subdirectory.• The use of angle brackets <> informs the

compiler to search the compilers include directory for the specified file.

• The use of the double quotes “ " around the filename inform the compiler to search in the current directory for the specified file.

#include "mydec.h"

45

Page 46: cmp104 lec 8

46

The only characters required by the C Programming Language are as follows:

A - Z a -z 0 - 9

space . , : ; ' $ " # % & ! _ {} [] () < > |

+ - / * =

C character set

46

Page 47: cmp104 lec 8

Variables, Constants and Keywords

Variables:-It is a name given to a memory location to store a value of a data that a program is working on.

47

Page 48: cmp104 lec 8

Rules for constructing Variable names

(1) A variable name is any combination of 1 to 31 alphabets, digits or underscores but there is some restriction on the length of variables that depends on compiler to compiles. Do not create unnecessarily long variable names as it adds to your effort.

(2) The first character in the variable name must be an alphabet or underscore.

48

Page 49: cmp104 lec 8

Continued

(3) No commas or blanks are allowed within a variable name.

(4) No special symbol other than an underscore can be used in a variable name.

49

Page 50: cmp104 lec 8

50

Keywords:

• Keywords are words reserved by C so they cannot be used as variables.

Keywords

auto double int struct

break else long switch

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

do if static while

50

Page 51: cmp104 lec 8

Data Types.

Type of value that a variable can hold is called data type of a variable.

51

Page 52: cmp104 lec 8

52

continued

DATA TYPE DESCRIPTION MEMORY REQUIRMENT

int Integer quantity 2 bytes(-32767 32767)

Long int Integer quantity 4 bytes

float A number containing a decimal point

4 bytes(1E-37 to 1E+37)

char Any character 1 byte (-127 to 127)

double A number containing a decimal point but here we can have more significant figures.

8 bytes

52

Page 53: cmp104 lec 8

53

Declaring variable

• In order to use a variable in a C program, you must first declare it.

• You declare a variable with a declaration. • int x=5;• As in the example shown above, a declaration of

a variable consists of the variable’s type followed by the variable’s name and then a semicolon. There must be whitespace between the type and the name.

• It is also possible to declare multiple variables on one line, as we’ll see later. 53

Page 54: cmp104 lec 8

Constants

• A constant is an entity that does’t change its value while a variable is an entity that may change.

54

Page 55: cmp104 lec 8

Types of C constants

(a) Primary constants. i.e. integer, real and character constants.

(b) Secondary constants. i.e. Array, pointer, structure, union and enum etc.

55