Uploaded by Bigyan Aryal

Ch-1 FINAL

advertisement
Unit 1
Overview of Computer Software & Programming Languages
1.1. System software
1.2. Application software
1.3. General software features and recent trends
1.4. Generation of programming languages
1:5. Categorization of high-level languages
Overview of Computer software
▪ Computer software refers to a set of instructions or programs that tell a computer what to
do.
▪ It is a collection of code, data, and documentation that performs various tasks on a
computer system.
There are two main types of computer software
▪ System software: This type of software manages the computer's hardware resources,
such as the operating system (e.g., Windows, MacOS, Linux), device drivers, and utilities.
▪ System software provides a platform for other software to run on, and it controls and
manages the computer's hardware resources.
Some examples of system software include:
o
o
o
o
Operating systems
Device drivers:
Firmware:
Virtualization software:
Overall, system software is essential for the proper functioning of a computer system, and it
is responsible for managing and controlling the computer's hardware resources
Application software:
▪ This type of software is designed to perform specific tasks or applications, such as word processing, email,
web browsing, and gaming.
▪ Application software is created for end-users and typically requires an operating system to function properly.
Some examples of application software include:
o
o
o
o
o
Word processors:
Spreadsheet software
Graphics and multimedia software
Web browsers
Gaming software
▪ Overall, application software provides end-users with the tools and capabilities they need to perform specific
tasks or applications efficiently and effectively on a computer system.
▪ It typically requires an operating system and hardware resources to function properly
Some other categories of software include
▪ Programming languages: These are software tools used to create other software applications
▪ Middleware: This is software that connects different software applications and allows them to communicate
with each other.
▪ Utility software: This software includes tools such as antivirus software, backup software, and disk cleanup
utilities.
▪ Database software: This software allows users to store and manage data in an organized and structured way.
General software feature
Software features refer to the capabilities and functionalities of a software
application. Some general software features that are commonly found in both system
and application software include:
> User interface
> Compatibility
> Performance
> Customization
> Data management
> Help and support
> Security
Overall, these software features are essential for ensuring a user-friendly and
functional software application that meets the needs and requirements of its users.
Some recent trends in software include
>Artificial Intelligence (AI)
> Cloud Computing
> Agile Development
> Internet of Things (IoT)
> Low-code and no-code development
> Cybersecurity:
Overall, these trends are shaping the future of software development and are likely
to continue to have a significant impact on the industry in the coming years
Generation of programming languages
Programming languages can be classified into several generations based on the
features and capabilities they offer.
Here are the four main generations of programming languages
First-generation languages (1GL):
o First-generation languages are low-level languages that directly interact with the
hardware, using machine language or assembly language.
o These languages are difficult to use and require a deep understanding of the
hardware architecture
Second-generation languages (2GL):
o Second-generation languages are low-level languages that are closer to humanreadable syntax than machine code.
o Examples include FORTRAN, COBOL, and C.
o These languages are easier to use than 1GL, but still require an understanding of
hardware architecture and system-level programming.
Generation of programming languages
Third-generation languages (3GL):
o Third-generation languages are high-level languages designed to provide an abstraction
from the hardware, making programming easier and more accessible to non-experts.
o Examples include Java, Python, C++, and C#.
o These languages offer a wide range of features and libraries, making them more versatile
and powerful than 2GL.
Fourth-generation languages (4GL):
o Fourth-generation languages are higher-level languages designed to provide an even
higher level of abstraction, focusing on specific tasks such as database management,
reporting, and business applications.
o Examples include SQL, ABAP, and PowerBuilder.
o 4GLs require less coding and are easier to use than 3GLs, but they are less flexible and
may not offer the same level of control.
Overall, these generations of programming languages represent the evolution of
programming languages over time, with each generation building upon the previous
one to provide greater abstraction, ease of use, and functionality.
Categorization of high-level languages
High-level programming languages can be categorized into several types based on
their primary purpose and programming paradigm.
Here are some of the most common categories of high-level programming languages
o Procedural languages: Procedural languages are designed to follow a sequence
of steps or procedures to solve a problem. Examples of procedural languages
include C, Pascal, and Fortran.
o Object-oriented languages: Object-oriented languages are designed around the
concept of objects, which encapsulate data and behavior. Examples of objectoriented languages include Java, Python, and C++.
o Functional languages: Functional languages are designed to treat computation
as the evaluation of mathematical functions. Examples of functional languages
include Haskell, Lisp, and ML.
Categorization of high-level languages
o Scripting languages: Scripting languages are designed to automate tasks or to
control other software applications. Examples of scripting languages include
JavaScript, Python, and Ruby.
o Markup languages: Markup languages are used to define and present text-based
data, such as HTML and XML.
o Domain-specific languages: Domain-specific languages (DSLs) are designed for
specific tasks or domains, such as SQL for database management, MATLAB for
numerical analysis, or R for statistical computing.
Overall, the categorization of high-level programming languages provides a way to
group programming languages based on their primary purpose and programming
paradigm, which can help developers choose the right language for a given task.
Assignment I
1. How did the first-generation programming languages evolve into the second generation?
2. What are some of the key features of modern programming languages that were not
available in earlier generations?
3. How has the development of higher-level programming languages impacted the field of
computer science?
4. How do the different generations of programming languages reflect changes in hardware
technology/
5. What is the role of programming languages in the development of modern software
systems?
6. How do the different generations of programming languages impact the productivity and
efficiency of software developers?
7. How do programming paradigms affect the categorization of high-level programming
languages?
8. What is the difference between a procedural language and an object-oriented language?
9. How do functional programming languages differ from procedural or object-oriented
programming languages?
10.How do programming languages adapt to changes in hardware and software technology?
11. What is the role of high-level programming languages in machine learning and artificial intelligence?
12. How do programming languages affect software development practices, such as testing, debugging, and
maintenance?
13. How is the rise of cloud computing changing the software development landscape?
14.What are some of the emerging trends in artificial intelligence and machine learning, and how are they being
integrated into software systems?
15.What role do open-source software and community-driven development models play in the software industry
today?
16.How are software development practices evolving to address security and privacy concerns?
17. What impact is the Internet of Things (IoT) having on software development, and what new challenges does
it present?
18.How is the shift towards agile development methodologies impacting the software industry, and what
benefits does it offer?
19. What are the main functions of system software, and how do they differ from those of application software?
20.How does system software interact with hardware components to manage system resources and provide a
platform for running application software?
21.What is the relationship between the operating system and other system software components such as device
drivers and firmware?
22What are some of the challenges involved in developing and maintaining both system software and
application software, and how are these challenges addressed in industry?
Download