Computer Software
The computer consists of Hardware and Software. The hardware is the physical parts of computers that
can be touched and felt whereas software is the logical parts.
Our computer system performs according to the types of software installed in it. Software is a collection
of instructions or programs that enable users to interact with the computer and have the computer
perform specific tasks for them. Without software, the computer would be useless.
For example, without your internet browser software, you would be unable to browse the Internet, and
without software called an operating system, the browser would not be able to run on your computer.
Everything that runs on a computer from an operating system to a diagnostic tool, games, applications,
etc. can be defined as software. Even the malware that is intentionally developed to damage computers
and/or disrupt other software is also defined as software.
In a computer system, the software is basically a set of instructions or commands that tells a computer
what to do. Or in other words, the software is a computer program that provides a set of instructions to
execute a user’s commands and tell the computer what to do.
Types of Software
Computer software is classified into two main categories: System software and Application software
A. System Software
System software is software that directly operates the computer hardware and provides the basic
functionality to the users as well as to the other software to operate smoothly. Or in other words,
system software basically controls a computer’s internal functioning and also controls hardware devices
such as monitors, printers, and storage devices, etc. It is like an interface between hardware and user
applications, it helps them to communicate with each other because hardware understands machine
language(i.e. 1 or 0) whereas user applications are work in human-readable languages like English,
Hindi,German, etc. so system software converts the human-readable language into machine language
and viceversa.
Features of system software:
• System Software is closer to the computer system.
• System Software is written in a low-level language in general.
• System software is difficult to design and understand.
• System software is fast in speed(working speed).
• System software is less interactive for the users in comparison to application software.
Types of system software:
1. Operating System: It is the main program of a computer system. When the computer system ON it is
the first software that loads into the computer’s memory. An Operating System (OS) is an interface
between a computer user and computer hardware.
Also, an operating system is a system software that is responsible for controlling and coordinating
computer hardware and providing easy interface to application programmers and users by hiding
underlying complexities of computer hardware. Basically, it manages all the resources such as memory,
CPU, printer, hard disk, etc., and provides an interface to the user, which helps the user to interact with
the computer system.
An operating system is a software which performs all the basic tasks like file management, memory
management, process management, handling input and output, and controlling peripheral devices
such as disk drives and printers.
It also provides various services to other computer software. Examples of operating systems are Linux,
Apple macOS, Microsoft Windows, etc.
2. Utility Software: This type of software is used to support the computer infrastructure. It is designed
to analyze, configure, optimize and maintains the system, and control computer resources.
Operating systems typically contain the necessary tools for this, but separate utility programs can
provide improved functionality. For example, antivirus, disk fragmentation, memory tester, disk repair,
disk cleaners, registry cleaners, disk space analyzer, etc.
• Antivirus software, as the name suggests, helps to protect a computer system from viruses
and other harmful programs. A computer virus is a computer program that can cause damage
to a computer's software, hardware or data. It is referred to as a virus because it has the
capability to replicate itself and hide inside other computer files.
• Backup software helps in the creation of a backup of the files on your computer. Most
computer systems use a hard disk drive for storage. While these are generally very robust,
they can fail or crash, resulting in costly data loss. Backup software helps you copy the most
important files to another storage device, such as an external hard disk. You can also make an
exact copy of your hard disk.
3. Language translators: Language translators are software programming tools that convert one type of
code into another. They translate a high-level programming language into machine code that the central
processing unit (CPU) can comprehend & vice-versa.
Types of Language Translator
i. Compilers > In a single session, compilers convert high-level language code to machine
(object) code. Compilers take a long time to run because they must translate high-level code
into lower-level machine language all at once and then save the executable object code to
memory.
ii. Interpreters > An interpreter, like a compiler, translates code but reads it and instantly
executes it, making it initially faster than a compiler. As a result, interpreters are frequently
employed as debugging tools in software development tools since they can execute a single
line of code at a time.
iii. Assembler > An assembler is a program that converts assembly language code into machine
code. It functions as a compiler for the assembly language, but it can also be used
interactively like an interpreter. Remember, assembly language is a low-level language.
4. Device Driver: A device driver is a program or software that controls a device and helps that device
to perform its functions. Every device like a printer, mouse, modem, etc. needs a driver to connect with
thecomputer system eternally. So, when you connect a new device with your computer system, first you
need to install the driver of that device so that your operating system knows how to control or manage
that device.
B. Application Software
Software that performs special functions or provides functions that are much more than the basic
operation of the computer is known as application software. Or in other words, application software is
designed to perform a specific task for end-users. It is a product or a program that is designed only to
fulfill end-users’ requirements. It includes word processors, spreadsheets, database management,
inventory, payroll programs, etc.
Features of application software:
• An important feature of application software is it performs more specialized tasks like
wordprocessing, spreadsheets, email, etc.
• Mostly, the size of the software is big, so it requires more storage space.
• Application software is more interactive for the users, so it is easy to use and design.
• The application software is easy to design and understand.
• Application software is written in a high-level language in general.
Types of application software:
1. Packaged Software:
Packaged software that is often called software package is a commercial program that’s obtainable to
the general public and sold to them at explicit costs. Package software is developed by computer
technicians. it is the compilation of programs which are grouped together in order to provide publicly
with different tools in the same group. It can’t be modified or altered even if there is need. The essential
definition says that, once several software package are grouped during a bundle and supply solutions
to people, then it gets the specified name.
The best example of package software is Microsoft Office, that has many tools grouped together for
example Office, Access, Excel, Note and Power Point.
Advantages:
▪ Saves effort, money and time for solving problem.
▪ They are well tried and tested programs provided from reputed software vendors.
▪ Easily available.
▪ User friendly.
Disadvantages:
▪ May not be suitable for specific task.
▪ There is less control over the quality of works and service of the software.
▪ Some packages need regular updates which may be costly.
2. Tailored Software
Tailored software, also known as custom software, refers to software that is specifically designed and
developed to meet the unique needs and requirements of a particular individual or organization.
Tailored software is typically created to address specific business needs that off-the-shelf software
cannot provide.
The development of tailored software involves the process of analyzing, designing, coding, testing, and
maintaining software applications that are customized to meet the specific needs of the client. The
software is developed by a team of software developers, who work closely with the client to ensure
that the software meets their needs and requirements.
Tailored software can provide a wide range of benefits, including increased efficiency, improved
productivity, and better decision-making. It can also provide a competitive advantage by allowing
businesses to differentiate themselves from their competitors by offering unique features and
functionalities that are not available in off-the-shelf software.
However, tailored software can also be more expensive than off-the-shelf software, as it requires more
time and resources to develop. Additionally, maintaining and updating tailored software can be more
complex, as it is unique to the client's business and may require specialized knowledge to maintain.
Advantages of Customized and Tailored Software
The following are the advantages of Customized and Tailor-made Software.
• This software is suitable for medium and large business organizations.
• It caters to the specific requirements and needs of the users.
• It can be modified as per the needs of the organization.
• It has a high level of security and minimizes the risk of loss of data and unauthorized access to
data.
• It cannot be easily imitated or duplicated in the market due to differences in the needs and
requirements of different users.
• It can be easily linked to other systems.
Disadvantages of Customized and Tailored Software
The following are the disadvantages of Customized and Tailor-made Software.
• It involves the high cost of installation and maintenance.
• Developing customized software is a time-consuming process and involves a high cost of
development.
• Maintenance of this software is difficult as there exists limited availability of knowledge with the
developers.
• It lacks a standard training module.
Operating System
• An Operating System (OS) is an interface between a computer user and computer
hardware.
• Also, an operating system is a system software that is responsible for controlling and
coordinating computer hardware and providing easy interface to application
programmers and users by hiding underlying complexities of computer hardware.
• An operating system is a software which performs all the basic tasks like file
management, memory management, process management, handling input and output,
and controlling peripheral devices such as disk drives and printers.
• An operating system (OS) is system software that manages computer hardware,
software resources, and provides common services for computer programs.
• The software that contains the core components of the operating system is called
the kernel. All the working of a computer system depends on the OS at the base level.
• The main function of an operating system is to act as an interface between computer
hardware and software, and to provide a platform for other software applications to run
on.
Figure 1: Architecture of Operating System
Example of operating system are windows os, Linux os, unix os, mac os etc.
Functions of Operating System (characterstic)
• Processor Management: An operating system manages the processor’s work by
Keeping tracks of processor and status of process, allocating the processor (CPU) to
a process and ensuring that each process receives enough time from the processor to
function properly and De-allocates processor when a process is no longer required.
• Memory Management: Memory management refers to management of Primary
Memory or Main Memory. An operating system manages the allocation (the memory
when a process requests it to do so.) and deallocation (memory when a process no
longer needs it or has been terminated) of the memory to various processes and
ensures that the other process does not consume the memory allocated to one process.
• Device Management (I/O management ) : There are various input and output
devices. An operating system manages input/output devices, including keyboards,
mice, printers, and disk drives. An Operating System manages device communication
via their respective drivers. It receives the requests from these devices, performs a
specific task, and communicates back to the requesting process.
• File Management: An operating system keeps track of information regarding the
creation, deletion, transfer, copy, and storage of files in an organized way. It also
maintains the integrity of the data stored in these files, including the file directory
structure, by protecting against unauthorized access. It also Decides who gets the
resources, allocates the resources, and De-allocates the resources when there is no
need of resources.
• Security: By means of password and similar other techniques, it prevents
unauthorized access to programs and data. Also operating system employs firewall to
monitor all the computer activity and block any threat detected..
• Error Detection: From time to time, the operating system checks the system for any
external threat or malicious software activity. It also checks the hardware for any type
of damage. This process displays several alerts to the user so that the appropriate
action can be taken against any damage caused to the system.
• Job Scheduling: In a multitasking OS where multiple programs run simultaneously,
the operating system determines which applications should run in which order and
how time should be allocated to each application.
• Control over system performance − Recording delays between request for a service
and response from the system.
• Job accounting − Keeping track of time and resources used by various jobs and users.
• Error detecting aids − Production of dumps, traces, error messages, and other
debugging and error detecting aids.
• Coordination between other software’s and users − Coordination and assignment
of compilers, interpreters, assemblers and other software to the various users of the
computer systems.
• Booting process – The process of starting or restarting a computer is referred to as
Booting. Cold booting occurs when a computer is totally turned off and then turned
back on. Warm booting occurs when the computer is restarted. The operating system
(OS) is in charge of booting the computer.
Types of operating System
There are several different types of operating systems present. In this section, we will
discuss the advantages and disadvantages of these types of OS.
• Batch OS
• Distributed OS
• Multitasking OS
• Network OS
• Real-OS
• Mobile OS
1. Batch Operating System –
Batch OS is the first operating system for second-generation computers. This type of
operating system does not directly interact with the computer. Instead, an operator takes
up similar jobs having the same requirement and group them into batches, and then these
batches are executed one by one based on the first-come, first, serve principle.
Advantages of Batch Operating System:
• Execution time taken for similar jobs is higher.
• Multiple users can share batch systems.
• Managing large works becomes easy in batch systems.
• The idle time for a single batch is very less.
Disadvantages of Batch Operating System:
• It is hard to debug batch systems.
• Lack of interaction between the user and the job.
• If a job fails, then the other jobs have to wait for an unknown time till the issue is
resolved.
• CPU is often idle, because the speed of the mechanical I/O devices is slower than
the CPU.
• Difficult to provide the desired priority.
• Batch systems are sometimes costly.
Examples of Batch based Operating System: Payroll System, Bank Statements, etc.
2. Multiprogramming OS
➢ It is an ability of an operating system that executes more than one program using a
single processor machine.
➢ More than one task or program or jobs are present inside the main memory at one
point of time.
➢ Multitasking is commonly used to keep the cpu busy while the currently running
program is doing I/O operations. Compared to other executing instructions, I/O
operations are extremely slow.
➢ Buffering and spooling can overlap I/O and CPU tasks to improve the system
performance but it has some limitations that a single user cannot always keep CPU
or I/O busy all the time.
To increase resource utilization, multiprogramming approaches.
The OS could pick and start the execution of one of the jobs in memory, whenever the jobs
does not need CPU that means the job is working with I/O at that time the CPU is idle at
that time the OS switches to another job in memory and CPU executes a portion of it till
the job issues a request for I/O and so on.
Let’s P1 and P2 are two programs present in the main memory. The OS picks one program
and starts executing it.
During execution if the P1 program requires I/O operation, then the OS will simply switch
over to P2 program. If the p2 program requires I/O then again it switches to P3 and so on.
If there is no other program remaining after P3 then the CPU will pass its control back to
the previous program.
Advantages of Multiprogramming OS
o No CPU idle time
o Multiprogramming system can monitor fastest as entire tasks run in parallel.
o Shorter response time
o Maximizes total job throughput of a computer
o Increases resource utilization
Disadvantages of Multiprogramming OS
o Sometimes long-time jobs have to wait a long time
o Tracking of all processes is sometimes difficult
o Requires CPU scheduling
o Requires efficient memory management
o No user interaction with any program during execution
3. Time-Sharing Operating Systems–
Time-sharing is a technique which enables many people, located at various terminals, to
use a particular computer system at the same time.
Each task is given some time to execute so that all the tasks work smoothly. Each user gets
the time of CPU as they use a single system. These systems are also known as Multitasking
Systems.
The task can be from a single user or different users also. The time that each task gets to
execute is called quantum.
After this time interval is over OS switches over to the next task.
Advantages of Time-Sharing OS:
• Each task gets an equal opportunity
• Fewer chances of duplication of software
• CPU idle time can be reduced
• Time-sharing systems allow multiple users to share hardware resources reducing
the cost of hardware and increasing efficiency.
• Improved Productivity: Time-sharing allows users to work concurrently, thereby
reducing the waiting time This increased productivity.
Disadvantages of Time-Sharing OS:
• One must have to take care of the security and integrity of user programs and data
• Data communication problem
• Complexity: Time-sharing systems are complex and require advanced software to
manage multiple users simultaneously
• Security Risks: With multiple users sharing resources, the risk of security breaches
increases.
Examples of Time-Sharing OSs are: Multics, Unix, etc.
3. Multitasking OS
A multitasking operating system, on the other hand, is designed to allow a
single user to run multiple tasks or programs simultaneously. This is
accomplished through a similar mechanism to time-sharing, with the
operating system rapidly switching between different tasks in order to give
the appearance of parallel processing.
So while both time-sharing and multitasking operating systems involve the
rapid switching between different tasks, the key difference is in their focus.
Time-sharing operating systems are designed to allow multiple users to
share a single computer, while multitasking operating systems are designed
to allow a single user to run multiple tasks at the same time.
Advantages of Multitasking OS
• Each task gets equal time for execution.
• The idle time for the CPU will be the lowest.
• There are very few chances for the duplication of the software.
Disadvantages of Multitasking OS
• Processes with higher priority cannot be executed first as equal
priority is given to each process or task.
• Various user data is needed to be taken care of from unauthorized
access.
• Sometimes there is a data communication problem.
Examples of Multitasking OS: UNIX, etc.
4. Multiprocessing Operating System
▪ Multiprocessor operating systems are used in operating systems to boost the performance
of multiple CPUs within a single computer system.
▪ Multiple CPUs are linked together so that a job can be divided and executed more
quickly. When a job is completed, the results from all CPUs are compiled to provide the
final output.
▪ Jobs were required to share main memory, and they may often share other system
resources.
▪ IT improves throughput of the system and it is also more reliable than single processor
system because if one processor breaks down then the other can share the load of that
processor. Multiple CPUs can be used to run multiple tasks at the same time, for
example, UNIX.
Advantage of Multiprocessing OS
• Increased reliability: Processing tasks can be spread among numerous processors in the
multiprocessing system. This promotes reliability because if one processor fails, the task can be
passed on to another.
• Increased throughout: More work could be done in less time as the number of processors increases.
• The economy of scale: Multiprocessor systems are less expensive than single-processor computers
because they share peripherals, additional storage devices, and power sources.
Disadvantages
• Multiprocessing operating systems are more complex and advanced since they manage many CPUs at
the same time.
5. Distributed Operating System –
➢ These types of the operating system is a recent advancement in the world of
computer technology and are being widely accepted all over the world and, that
too, with a great pace.
➢ Various autonomous interconnected computers communicate with each other
using a shared communication network. Independent systems possess their own
memory unit and CPU.
➢ These are referred to as loosely coupled systems or distributed systems. These
system’s processors differ in size and function.
➢ The major benefit of working with these types of the operating system is that it is
always possible that one user can access the files or software which are not
actually present on his system but some other system connected within this
network i.e., remote access is enabled within the devices connected in that
network.
Advantages of Distributed Operating System:
• Failure of one will not affect the other network communication, as all systems are
independent from each other
• Since resources are being shared, computation is highly fast and durable
• Load on host computer reduces
• These systems are easily scalable as many systems can be easily added to the
network
Disadvantages of Distributed Operating System:
• Failure of the main network will stop the entire communication
• To establish distributed systems the language which is used are not well defined
yet
• These types of systems are not readily available as they are very expensive. Not
only that the underlying software is highly complex and not understood well yet
Examples of Distributed Operating System are- LOCUS, etc.
5. Network Operating System –
These systems run on a server and provide the capability to manage data, users, groups,
security, applications, and other networking functions.
These types of operating systems allow shared access of files, printers, security,
applications, and other networking functions over a small private network.
One more important aspect of Network Operating Systems is that all the users are well
aware of the underlying configuration, of all other users within the network, their
individual connections, etc. and that’s why these computers are popularly known
as tightly coupled systems.
Advantages of Network Operating System:
• Highly stable centralized servers
• Security concerns are handled through servers
• New technologies and hardware up-gradation are easily integrated into the system
• Server access is possible remotely from different locations and types of systems
Disadvantages of Network Operating System:
• Servers are costly
• User has to depend on a central location for most operations
• Maintenance and updates are required regularly
Examples of Network Operating System are: Microsoft Windows Server 2003, Microsoft
Windows Server 2008, UNIX, Linux, Mac OS X, Novell NetWare, and BSD, etc.
6. Real-Time Operating System –
A real-time system is defined as a data processing system in which the time interval
required to process and respond to inputs is so small that it controls the environment. This
time interval is called response time. So in this method, the response time is very less as
compared to online processing.
Real-time systems are used when there are time requirements that are very strict like
missile systems, air traffic control systems, robots, etc.
Two types of Real-Time Operating System which are as follows:
• Hard Real-Time Systems:
These OSs are meant for applications where time constraints are very strict and
even the shortest possible delay is not acceptable. These systems are built for
saving life like automatic parachutes or airbags which are required to be readily
available in case of any accident. In hard real-time systems, secondary storage is
limited or missing and the data is stored in ROM. In these systems, virtual
memory is almost never found.
• Soft Real-Time Systems:
These OSs are for applications where for time-constraint is less strict. A critical
real-time task gets priority over other tasks and retains the priority until it
completes. Soft real-time systems have limited utility than hard real-time systems.
For example, multimedia, virtual reality, Advanced Scientific Projects like
undersea exploration and planetary rovers, etc.
Advantages of Real-Time OS
• It provides more output from all the resources as there is maximum
utilization of systems.
• It provides the best management of memory allocation.
• These systems are always error-free.
• These operating systems focus more on running applications than those in
the queue.
• Shifting from one task to another takes very little time.
Disadvantages of Real-Time OS
• System resources are extremely expensive and are not so good.
• The algorithms used are very complex.
• Only limited tasks can run at a single time.
• In such systems, we cannot set thread priority as these systems cannot
switch tasks easily.
Examples of Real-Time Operating Systems are: Scientific experiments, medical imaging
systems, industrial control systems, weapon systems, robots, air traffic control systems,
etc.
Mobile OS
A mobile OS is an operating system for smartphones, tablets, and PDA’s. It is a platform
on which other applications can run on mobile devices.
Advantages of Mobile OS
• It provides ease to users.
Disadvantages of Mobile OS
• Some of mobile operating systems give poor battery quality to users.
• Some of the mobile operating systems are not user-friendly.
Computer Programming Language
A programming language is a set of instructions that can be used to interact with and control
a computer.
These languages are used to design websites, create apps, develop operating systems,
control spacecraft, and analyze data.
Programming languages are necessary because computers can't understand Engish.
Programming languages bridge this gap by helping programmers translate their commands
into something that the computer can understand and execute.
Different Types of Computer Language
Below are the top 3 types of computer language:
1. Machine Language
➢ The machine language is sometimes referred to as machine code or object code
which is a set of binary digits 0 and 1, It is lowest level of programming language.
➢ These binary digits are understood and read by a computer system and interpreted
easily understand but harder for the programmer to understand. This is because
machine language is simply the language of machines—bits it can be directly
understood by a central processing unit (CPU).
➢ In this language, there is no need of compilers and interpreters for conversion and
hence the time consumption is less.
➢ Example of machine language for the text “Hello World”:-
01001000 0110101 01101100 01101100 01101111 00100000 01010111 01101111
01110010 01101100 01100100
Advantages of Machine Language
1. The machine language, also known as low-level language, does not need to be
translated since it is already written in binary, or 0s and 1s, which the computer
system can read and understand. The initial generation of computers makes
tremendous use of this language.
2. machine language programs and code run rapidly than other language.
3. A translator is not necessary for machine language.
4. The CPU directly executes the machine language or low-level instructions.
5. Machine level language allows for precise control over the behavior of the
computer, making it suitable for certain types of programming, such as operating
systems, device drivers, and firmware.
6. Machine level language provides direct access to the hardware of the computer,
which can be useful for specialized applications that require precise control of
hardware features.
Disadvantages of Machine Language
1. The main drawback of machine language is how difficult it is to develop, learn, and
execute codes and algorithms.
2. It is pretty time-consuming to write and fix flaws and mistakes in codes and
programs.
3. It is difficult to change.
4. Machine level language is very difficult to read and write because it requires a
detailed understanding of the computer's hardware architecture and instructions.
5. Programs written in machine level language are tied to the specific hardware
architecture of a computer and are not easily portable to other systems.
2. Assembly Language
➢ Assembly language is a middle-level language.
➢ It consists of a set of instructions in a specific format called commands. It uses symbols to
represent field of instructions.
➢ The bits of machine language are replaced by numbers and English commands.
➢ It is very close to machine level language. Before assembly code is run by the computer, it
is assembled by an assembler. This converts the code back into the 1s and 0s of machine
language that the computer can understand.
➢ Examples include ADA, PASCAL, etc.
➢ It is in human-readable format and takes lesser time to write a program and debug it.
However, it is a machine dependent language.
Assembly Language Machine Code
SUB AX, BX 0010101110000011
MOV CX, AX 100010111001000
MOV DX, 0 10111010000000000000000
Advantages of assembly language
Below are the advantages:
1. It is memory efficient, as it requires less memory.
2. It is faster in speed, as its execution time is less.
3. It is mainly hardware-oriented.
4. It requires less instruction to get the result.
5. It is used for critical jobs.
6. It is not required to keep track of memory locations.
7. It is a low-level embedded system.
Disadvantages of assembly language
Below mentioned are the disadvantages:
1. It is difficult to write and debug programs in assemblers, as there is no high-level language
syntax to help catch errors.
2. Assembler programs are often more difficult to read and understand than programs written
in a high-level language.
3. Assembler programs are generally slower and less efficient than programs written in a
high-level language and compiled into machine code.
4. Assembler programs are machine-dependent, meaning they can only be run on a specific
type of computer. This can make it difficult to port programs from one machine to another.
5. Assembler programs are more prone to errors and bugs than programs written in a high-
level language, as they require the programmer to manually handle low-level details of the
computer’s architecture.
3. High Level Language
➢ High-level language uses format or language that is most familiar to users.
➢ The instructions in this language are called codes or scripts.
➢ The computer needs a compiler and interpreter to convert high-level language
program to machine level language. Examples include C++, Python, Java, etc.
➢ It is easy to write a program using high level language and is less time-consuming.
Debugging is also easy and is a human-readable language.
➢ It is hardware independent Language.
➢ Main disadvantages of this are that it takes lot of time for execution and occupies
more space when compared to Assembly- or Machine-level languages.
Following is a simple example for a high level language −
if age < 18 {
printf("You are not eligible to vote");
} else{
printf("You are eligible to vote");
}
Advantages of high-level languages:
1. Easier to learn and use: High-level languages are designed to be more user-friendly They
are similar to English and use English vocabulary and well-known symbols
2. Greater productivity: High-level languages allow developers to write programs more
quickly and with fewer errors than low-level languages, which require more manual
coding and can be more prone to bugs.
3. Platform independence: High-level languages are typically designed to be platform-
independent, meaning that the same code can be run on multiple operating systems and
hardware configurations without the need for significant modifications.
4. They are problem-oriented rather than 'machine'-based.
5. Code reusability: High-level languages make it easier to reuse code across multiple
projects, reducing development time and improving code quality.
Disadvantages of high-level languages:
1. Slower performance: A high-level language has to be translated into the machine
language by a translator (compiler or interpreter), translation of code from high level
language to binary language takes time.
2. Efficiency of a high level language is lower compared to assembly or machine language.
The primary reason for this is the compilation or interpretation.
3. Lack of optimization: High-level languages may not allow developers to optimize code as
much as low-level languages, which can result in less efficient code and slower
performance.
4. Memory requirement of a high level language is higher than a low level language.
5. High level languages are not linked with hardware devices. Therefore, users have much
less control in terms of hardware.
Application of software based on scope
The scope of software applications refers to the specific functions and features of the software:
1. General-purpose software: General-purpose software is designed to be used for a wide
range of purposes. Examples include operating systems, web browsers, and productivity
software like Microsoft Office.
2. Special-purpose software: Special-purpose software is designed to serve a specific
function or industry. Examples include accounting software, electronic medical records
software, and CAD (computer-aided design) software.
3. System software: System software is designed to manage and operate computer
hardware and software. Examples include operating systems, device drivers, and
firmware.
4. Application software: Application software is designed to perform specific tasks or
functions. Examples include word processors, video editing software, and financial
software.
5. Utility software: Utility software is designed to perform maintenance tasks and improve
the performance of a computer system. Examples include disk defragmentation software,
backup software, and antivirus software.
6. Middleware: Middleware is software that connects different software applications and
systems to enable them to communicate and work together. Examples include web
servers, application servers, and message-oriented middleware.
Application of Software based on area
The area of software applications refers to the field or industry in which the software is used:
1. Business software: Business software is designed for use in a business or organizational
setting. Examples include accounting software, customer relationship management (CRM)
software, and enterprise resource planning (ERP) software.
2. Education software: Education software is designed for use in educational settings, such
as schools and universities. Examples include learning management systems (LMS),
student information systems, and online educational games.
3. Healthcare software: Healthcare software is designed for use in healthcare settings, such
as hospitals and clinics. Examples include electronic health records (EHR), medical billing
software, and medical imaging software.
4. Entertainment software: Entertainment software is designed for recreational purposes.
Examples include video games, multimedia players, and virtual reality (VR) applications.
5. Communication software: Communication software is designed for communication
between individuals or groups. Examples include email clients, instant messaging
software, and video conferencing software.
6. Scientific software: Scientific software is designed for use in scientific research and
experimentation. Examples include simulation software, data analysis software, and
scientific visualization software.