Software is a group of interrelated
programs, which drives the hardware to manipulate the systems resources.
Program is a group of functions or procedures which is constituted by set of
statements where as statement is a linear group of Instructions of various
combination of binary digits in the form of Bits i.e. 1,0’s.
The
software had classified in various categories on the bases of their interface
role and on their application utilities.
SOFTWARE
Eg: Eg: Eg: Oracle Eg: Eg:
DOS UNIX,
Windows Basic Simula
OS/2 Multics 95,98,NT, Cobol Small-
2000,2003. Fortran66 Talk
Linux, C VC++
Solaris. JAVA
CUI :
Character User Interface DOS : Disk Operating System
GUI :
Graphical User Interface NT :
New Technology
SUST :
Single User Single Tasking Basic : Beginners All-purpose Symbolic
MUMT :
Multi User Multi Tasking Instruction Code
Cobol :
Common Business Oriented DBMS : Data Base Management System
Language.
RDBMS: Relational Data Base SUMT : Single User Multi
Tasking
Management System
Foxpro is a DBMS Package
Oracle is a RDBMS Package
Unix O/S also supports GUI and which can
consider as X-Windows.
System
Software
The Software that acts as an interface
between user and system hardware by converting the high level instructions in
to machine-readable instructions and vice versa. System software is also known
as Operating System. The Operating System manages the resources like internal
and external devices to manipulate under single platform. The Basic Properties
of the operating system under regulating the resources are as follows.
Memory Management
File Management
I/O Management
Device Management
Process Management
Memory
Management
The Process of allocating the memory and
de-allocating the memory under RAM (Random Access Memory) by the program
interface in governed by the Operating System. In general the operating system
allocates the space for the running application and removes the space if the
program was terminated after successful completion. But in few cases the
programs like TSR’s (Terminate Stay
Resident) keep on occupying the free space with the memory even though the
application was terminated.
The Operating System accepts the signal
from the running application in order to allocate the system resources to the
current application, if the symbiosis occurs between running application and
Operating System then the Operating system acknowledges the memory from its
resource to the program and later it was de- allocated by the Operating System.
File
Management
The Operating System is an interface
regulates the files in order to access or retrieval from the storage devices.
In general the file which is to be stored under the storage devices are split
in to fragments with known size and these fragments are scattered randomly with
in the disk and the address of the fragments are listed under FAT (File
Allocation Table), On further accessing of the file from the disk, the
Operating System fetches the address from the FAT and on the basis’s of address
it recollects the fragments to form a single entity. Since the Operating System
should manage the resources up to maximum extent.
In general the system utilizes various
storage devices such as primary or secondary, to store the data and these
devices are further more classified in various categories based on their
hardware technologies such as optical disks, magnetic disk, ferrite disk and
etc. So, the Operating System on single hand has to manipulate the storage
regulations in the form of File Management.
I/O
Management
The Input and Output management is governed
by the Operating System by providing the necessary regulations. The input
devices such as Keyboard, Joystick and MICR generates the scan codes which
indirectly depends up on the ASCII standards, where as the mouse, scanner and
BCR generates the analog signals and these analog signals are further converted
in to machine readable codes but not in to 1,0’s and these codes are accessed
by the Operating System to manipulate the Input Devices.
The Output devices such as VDU, when access
by the current running application either in back ground or fore ground is
providing the resources and this communication is also interfaced by the
Operating System. The output device like printer or plotter internally have
their own regulating factors such as local microprocessor which technically
known as micro controller, These micro chips receive the signals from the
Operating system and stores the signals under the buffer and process the data
in the form of the output. In few cases even the operating system may have to
receive the acknowledgement from the microchips of both input and output
devices to regulate the alternate sources.
Device
Management
The Devices such as storage media,
communication and other peripherals are also governed by the Operating
System. If the data want to be
transmitted to various external devices then the Operating System plays a
dominant role to server the resources. While under communication the device
ports such as COM and LPT’s are also modulated by Operating System with the
support of various external chips like UART and USART.
Let use assume the O/S designed on the
basis of today technology should support the alien devices of future technology
and this compatibility should be managed and regulated by the Operating System
to extend the scope of the nature.
Process
Management
The task assigned by any running
application to the system was first captured by the System Software or
Operating System and later it was synchronized in to various sub units and
these sub units can be consider as TOKENS, These token are bypassed to the
processing unit in general Micro Processor and can executes the Instructions
based on the order indexed. The process once again depends up on the operating
system to regulate the traffic of data to over come the deadlocks. The Deadlock
is an event that has been encountered on over flow of data with heavy burden on
the Processor. So, to over come the deadlock the Operating System should
generate the Semaphores to bypass the traffic of Data from various resources.
Types of Operating Systems
The Operating Systems are classified in to
various categories based on their capability of supporting the networking and
multiple sessions with regulated securities.
Operating Systems
Eg: Eg: Eg:
DOS DOS with Windows
95,98,NT
OS/2 Novell Net Unix, Linux, Solaris BeOS Multics.
SUST
Under Single User Single Tasking, The
Operating System allocates the resources to only one application. Since it dose
not undergoes the timesharing.
MUST
In Multi User Single Tasking, The Operating
Systems allocates the resources to multiple users. The DOS operating System
along with Novell Netware supports the MUST capability such that even DOS
operating system also supports the networking with client and server
architecture. In which the Server is to make dedicated. The networking
architecture is mandatory for the multi user interface, so the networking is
supported with the bus topology. Topology is nothing but, Physical structure of
network.
MUMT
The Multi User Multi Tasking is supported
by the operating system with the nature of time-sharing and time slicing. The
processing of splitting of the CPU time i.e. second in to micro and nano
seconds is known as time slicing. The phenomenon of allocating the system
resources to the various application from various client in the network with in
the current second by utilizing the time slicing in known as Multi Tasking. The
multi tasking supports such way that the single user can run the multiple task
at a time in front end and back end.
Let us consider that playing the background
music in the backend where as editing the text under front end is the better
supportive for the Multi Tasking. As like of that operating system receives the
signals from the various client with in the network and manipulates the
resource with equal and predefined priority on the bases of the job schedule.
Translators:
The software utility that converts the high
level instructions to machine-readable instructions that which further
manipulated by the operating system is known as translators. These translators
are classified in to 3 types and which are as follows.
Assembler
Interpreter
Compiler
Assembler
–
The assembler converts the assembly
language codes, in general pneumonic codes in to machine-readable codes. The
pneumonic codes are the statements of assembly language, which are, abbreviated
forms of direct binary instructions. The assemble are directly used under
system programming or under microprocessor programming on direct interface.
Eg:
TASM,
MASM.
Interpreter
–
The Interpreter converts the high level
code in to machine-readable codes in general the ASCII codes. Interpreter
checks the source code by line by line in the form of individual statements. If
the current statement is correct in all aspects such as syntactical and
semantically then it continues to the next statement. The debugging becomes
very easy under Interpreter regulation.
Eg:
Fortran
Compiler
–
Compiler interchanges the high level code
in to machine-readable codes more precise object code in the form of ASCII
codes. Compiler checks the source code as a single entity and reports the
warnings and errors at a time. The debugging become very tough since all the
errors are to maintain at a time. But the compilation time is reduced since the
compiler is much more faster then the Interpreter.
Eg:
C,
C++
INTRODUCTION TO C
C is a general purpose, structured
programming language. Its instructions consist of terms that resemble algebraic
expressions, augmented by certain English keywords such as if, else, for, do
and while. In this respect C resembles other high-level structured programming
languages such as Pascal and Fortran-77. C also contains certain additional
features, however, that allow it to be user at a lower level, thus bridging the
gap between machine language and the more conventional high-level languages.
This flexibility allows C to be used for system programming i.e. for writing
operating systems, as well as for application programming.
C is characterized by the ability to write
very concise source programs, due in part to the large number of operators
included extensive library functions, which enhance the basic instructions.
Further more, the language encourages user to write additional library
functions of their own. Thus the user can easily extend the features and
capabilities of the language
C compilers are commonly available for
computers of all sizes, and C interpreters are becoming small and highly
efficient when compared with programs compiled from other high-level languages.
The interpreters are less efficient, though they are easier to use when
developing a new program. Many programmers begin with an interpreter, and then
switch to compiler once the program had been debugged.
Another important characteristic of C is
that its programs are highly portable, even more then with other high-level
languages. The reason for this is that C relegates most computer-dependent
features to its library functions. Thus, every version of C is accompanied by
its own set of library functions, relatively standardized, however, and each
individual library function is generally accessed in the same manner from one
version of C to another. Therefore, most C programs can be processed on many
different computers with little or no alteration.
History of C Language
In mid 1960’s and 1970’s the telephonic
system is of Simplex, which means that uni-directional that is if the transmitter
is to send the data, the receiver must wait for the complete data transfer and
after it should acknowledge to the transmitter with reply. This is ultimate
draw back of the communication system at AT&T Bell Labs. It is a
prestigious company, which supporting the communication and networking not only
for telephonic system but also for the space travel communication when the
first generation satellites were launched. So in order to support the
telephonic system as duplex that is bi-directional, it should be governed by
one of the software to over come the heavy data traffic.
Dennis Ritchie originally developed C
language in 1970’s at AT&T Bell Labs from a basic programming language so
called, BCPL – Basic Combined Programming Language. The BCPL was written by Brian Kernighan,
which is a system programming language. Hence C language can be considered as a
modified release of BCPL with extended features. Dennis Ritchie and Ken
Thompson together had re written the Unices under C compiler and released the new
Operating System as UNIX and once again Ken Thompson and Dennis Ritchie had
developed a new compiler to support the C language under their own operating
system UNIX. This flavor of C is known as ANSI C.
Characteristics
of C language
C language can be consider as mid level
programming language since it supports both high level as well as low level
language script. It can also be considered as functions oriented programming or
structured oriented programming language, since it supports the source code
scripting under blocks of statements with specific identity. It can also be
known as system programming language since it supports various utilities like
device driver programming on kernel interface programming. C language supports
various applications and which are as follows.
C language supports Data Structures and
File Structures
It supports the Graphics
It supports the Device Driver Programming
C language manipulates the Interrupt
programming through IVT
It supports the TSR’s programming
It governs the Network Programming.
The characteristic features of C language
are
Integrity:
This refers to the accuracy of the
calculations. It should be clear that all other program enhancements would be
meaningless if the calculations were not carried out correctly. Thus, the
integrity of the calculations is an absolute necessity in any computer program.
C language is supported with built-in header file math.h to support the
mathematical calculations.
Clarity:
This refers to the overall readability of
the program, with particular emphasis on its underlying logic. If a program is
clearly written, it should be possible for another programmer to follow logic
without undue effort. It should also be possible for the original author to
follow his or her own program after being away from the program for an extended
period of time. One of the objectives in
the design of C is the development of Clear, readable programs through an
orderly and disciplined approach to programming.
Simplicity:
Keeping things as simple as possible,
consistent with the overall program objectives usually enhances the clarity and
accuracy of a program. In fact, it may be desirable to sacrifice a certain
amount of computational efficiency in order to maintain a relatively simply,
straight forward program structure.
Efficiency:
This is concerned with execution speed and
efficient memory utilization. These are generally important goals, though they
should not be obtained at the expense of clarity or simplicity. Many complex
programs require a tradeoff between these characteristics. In such situations,
experience and common sense are key factors.
Modularity:
Many programs can be broken down into a
series of identifiable subtasks. It is a good programming practice to implement
each of these subtasks as a separate program module. In C such modules are
written as functions. The use of a modular programming design enhances the
accuracy and clarity of a program, and it facilitates future program
alterations.
Generality:
Usually we want a program to be as general
as possible, within reasonable limits. For example, we may design a program to
read in values of certain key parameters rather then placing fixed values in
the program. As a rule, a considerable amount of generality can be obtained
with very little additional programming effort.
Flavors of
C Language
Various
Flavors of C Languages
C compiler can be available in different
flavors since the portability was extended under various operating systems due
to the significance of system level programming. Based on the operating system the C compiler
is energized much more stronger since all the system resources are under the
control of Operating system. If the parent operating system is stronger and
massive then the C compiler also supports the massive tasks and activities.
Eg:
1. Turbo C/C++ DOS
2. ANSI C/C++
Unix
3. Microsoft C/C++ Windows
4.
Borland C/C++ Windows
5.
Berkley C/C++ Unix – BSD.
6.
Pro C/C++ Oracle – Unix/ Windows
7.
Dynamic C/C++ Linux
8.
Embedded C/C++ Linux, RTOS
9. mDynamic C/C++ Micro Linux, RTOS.
10. Micro C/C++ Micro
Linux, RTOS.
The nature of the C/ C++ compiler depends
upon the operating system since if the operating system serves the maximum then
the compiler can support the complete programming with all required
regulations.
Fundamentals
of C Compiler
The C compiler is case sensitive, so the source
code should be represented under lower case. But in few compilers like Turbo
C/C++ the code may even written under upper case on alteration of few compiler
settings, even though under these compiler must and should be in lower case.
As per the C compiler architecture every
statement should be terminated with semicolon (;) which denotes that it is the
end of the statement under executions. The compiler evaluates the code from
left to right under compilation phase where as right to left under statement or
functions executing.
Every C program will start only from the
user-defined function that is main () and ends only with in the main ()
function. The variables should be declared only under declaration block
followed by the statements. The C compiler is supported with 32 built-in
keywords and which are as follows.
0 Comments