C Programming Language is the most popular computer language and most used programming language till now. It is very simple and elegant language. This lecture series will give you basic concepts of structured programming language with C.
2. Outline
Computer Software
System Software
Operating System
Application Software
Computer Languages
Machine language
Assembly language
High-level language
3. Computer Software
Computer hardware is useless without software.
Software is the set of instructions and associated data
that direct the computer to do a task.
Software can be divided into two categories:
System software and Application software.
System software helps the computer to carry out its
basic operating tasks.
Application software helps the user carry out a
variety of tasks.
5. System Software
Manages the fundamental operations of the computer,
such as
loading programs and data into memory, executing
programs, saving data to disks, displaying information on
the monitor, and transmitting data through a port to a
peripheral device.
System softwares: operating systems, utilities, device
drivers.
6. Operating System
Collection of computer programs that control the
interaction of the user and the computer hardware.
Responsible for directing all computer operations and
managing all computer resources.
Controls basic input and output, allocates system resources,
manages storage space, maintains security, and detects
equipment failure.
A part of the operating system code is stored in a ROM and
the rest of it resides on a disk.
Loading the operating system into memory is called booting
the computer.
7. Responsibilities of an Operating System
Communicate with user, receive and execute commands, show error
messages.
Manage allocation of memory, processor time and other resources.
Collect input from keyboard, mouse, and provide data to running
programs.
Convey program output to screen, printer, or other output device.
Access data from secondary storage.
Write data to secondary storage.
Maintains security (checks user-name , password, virus infection)
8. Application Software
Developed for a specific task , such as word
processing( MS Word/ WordPerfect), accounting
(Lotus 1-2-3/ Excel), or database management
(Access/ dBASE).
We also use graphics and presentation software.
Most applications are purchased on diskette or CD-
ROM.
They are installed by copying the programs from the
diskettes/CD-ROM to the hard disk.
10. Broad Classification of Computer Languages
Machine language
Assembly language
High-level language
11. Machine language
Only language of a computer understood by it
without using a translation program
Normally written as string of binary 1s and 0s
12. Advantages & Limitations of Machine
Language
Advantages:
Can be executed very fast
Limitations:
Machine dependent
Difficult to program
Error prone
Difficult to modify
13. Assembly/Symbolic Language
Programming language that overcomes the limitations of
machine language programming by:
Using alphanumeric mnemonic codes instead of numeric
codes for the instructions in the instruction set e.g.
using ADD instead of 1110 (binary) or 14 (decimal) for
instruction to add
Allowing storage locations to be represented in form of
alphanumeric addresses instead of numeric addresses
e.g. representing memory locations 1000, 1001, and 1002
as FRST, SCND, and ANSR respectively
14. Advantages of Assembly Language
Easier to understand and use
Easier to locate and correct errors
Easier to modify
No worries about addresses
Easily relocatable
15. Limitations of Assembly Language
Machine dependent
Knowledge of hardware required
Machine level coding
16. Typical Uses of Assembly Language
Mainly used today to fine-tune important parts of
programs written in a high-level language to improve
the program’s execution efficiency
17. High-Level Languages
Machine independent
Do not require programmers to know anything about
the internal structure of computer on which high-
level language programs will be executed
Deal with high-level coding, enabling the
programmers to write instructions using English
words and familiar mathematical symbols and
expressions.
Example: C language, Java, Python etc.
18. Advantages of High-Level Languages
Machine independent
Easier to learn and use
Fewer errors during program development
Lower program preparation cost
Better documentation
Easier to maintain
19. Limitations of High-Level Languages
Lower execution efficiency
Less flexibility to control the computer’s CPU,
memory and registers