Unit – V
Computer Software
Q.1) Describe the relationship between hardware and software?
A1: Software is a collection of programs that are designed to execute a specific task. A program is a collection of instructions designed to address a specific problem.
● Both hardware and software are reliant on one another. Both of them must collaborate in order for a computer to provide valuable results.
● Without supporting hardware, software cannot be used.
● Hardware that does not have a set of programs to run on cannot be used and is therefore useless.
● Relevant software should be loaded into the hardware to complete a certain task on the computer.
● Hardware is an out-of-pocket cost.
● Software development is a significant and ongoing investment.
● Various software applications can be put onto hardware to perform various tasks.
● A piece of software serves as a conduit between the user and the hardware.
● If a computer system's hardware is its 'heart,' then its software is its'soul.' Both are beneficial to one another.
Q.2) What is system software?
A2: System software
The device software is a set of programs that run, monitor, and expand the computer's processing capabilities. The majority of system software is created by the computer manufacturers. The purpose of system software is to insulate the application programmer as much as possible from the details of the particular computer complex being used, especially memory and other hardware features, and such accessory devices as communications, printers, reader, keyboard etc.
Features
Here is a list of some of the most prominent features of a system software −
● Close to the system
● Fast in speed
● Difficult to design
● Difficult to understand
● Less interactive
● Smaller in size
● Difficult to manipulate
● Generally written in low-level language
Q.3) Write about application software?
A3: Application software products are created to meet a specific need in a specific setting. Application software encompasses many of the software programs produced in the computer lab. Typical applications include word processing, medical software, database, educational software etc. Applications are almost always independent programs from the operating system.
Customized or general-purpose application software is usable.
● Customized Application software:
The software which is developed to meet all the requirements of a specific user or organization. For example, software prepared to automate the result process of any institute is an application software.
● General Application software:
The software which is developed by keeping all the general requirements in mind for carrying out a specific task. These are software which are developed by a group of people. For e.g., word processing software, electronic spreadsheet etc.
Example
Examples of Application software are the following −
● Payroll Software
● Student Record Software
● Inventory Management Software
● Income Tax Software
● Railways Reservation Software
● Microsoft Office Suite Software
● Microsoft Word
● Microsoft Excel
● Microsoft PowerPoint
Q.4) Write the features of application software?
A4: Features
Features of application software are as follows −
● Close to the user
● Easy to design
● More interactive
● Slow in speed
● Generally written in high-level language
● Easy to understand
● Easy to manipulate and use
● Bigger in size and requires large storage space
Q.5) Define compiler?
A5: Compiler is a program that translates source code into object code. The compiler derives its name from the way it works, looking at the entire piece of source code and collecting and reorganizing the instructions. Thus, a compiler differs from an interpreter, which analyses and executes each line of source code in succession, without looking at the entire program.
The advantage of interpreters is that they can execute a program immediately. Compilers require some time before an executable program emerges. However, programs produced by compilers run much faster than the same programs executed by an interpreter.
Every high- level programming language comes with a compiler. In effect, the compiler is the because it defines which instructions are acceptable.
Because compilers translate source code into object code, which is unique for each type of computer many compilers are available for the same language.
Compilers come in a variety of shapes and sizes, and they produce output in a variety of usable formats. A cross-compiler generates code for a CPU or operating system other than the one that the cross-compiler runs on. The bootstrap compiler is written in the language it will compile. A decompile is a program that converts a low-level language to a higher-level language.
A source-to-source compiler or trans piler is a program that translates between high-level languages. A language rewriter is a program that converts the form of expressions into another language without changing the language itself. A compiler that also produces a compiler is known as a compiler-compiler (or part of one).
Q.6) Write the application and features of the compiler?
A6: Application
● Assists in making the code platform agnostic.
● Removes all syntactic and semantic flaws from the code.
● Create executable code files.
● The code is translated from one language to another.
Features
The following are the characteristics:
● The rate of compilation.
● The adequacy of machine code.
● The definition of code should not be altered.
● Machine code speed.
● Error detection is excellent.
● Making sure the code is correct in terms of grammar.
Q.7) Explain the types of compilers?
A7: Types
The many types of compilers are as follows:
- Single pass compiler
Compiler source code is directly converted to machine code in a single pass. Consider the Pascal programming language.
Fig 1: single pass compiler
Some points
● The program is only traversed once with a one-pass compiler. The parts of each compilation unit are only passed through once by the one-pass compiler. It converts each component into machine code.
● When the line source is processed in the one pass compiler, it is scanned and the token is extracted.
● The tree structure is then built by analyzing the syntax of each line. The code is generated after the semantic component.
● The same procedure is used for each line of code until the program is complete.
2. Two pass compilers
The two-pass compiler is separated into two pieces, one for each pass.
It translates legal language into Intermediate Representation (IR).
It projects infrared light onto the target machine.
Retargeting is also made easier with the two-pass compiler approach. It also enables the creation of various front ends.
Fig 2: two pass compilers
3. Multi pass compiler
A program's source code or syntax tree is processed many times by the multipass compiler. It broke down a large program into several smaller ones and processed them. It creates a number of intermediate codes. All of these multipasses use the previous phase's output as an input. As a result, it necessitates less memory. 'Wide Compiler' is another name for it.
Fig 3: multipass compiler
Advantages
● Machine independent - The passes can be reused for different hardware/machines because they have a modular structure and the code generation is separated from the other steps of the compiler.
● Expensive language - Multiple passes eliminate the requirement for forward declarations, allowing for graceful implementation of mutual recursion. C and Pascal are two prominent examples of languages that require forward declarations to be compliable in a single pass, whereas Java does not.
Q.8) Write the name of some high-level languages?
A8: The majority of programming languages are high-level languages. Here are several examples:
| 7. Objective C 8. Pascal 9. Perl 10. PHP 11. Python 12. Swift |
Each of these languages has its own set of rules for syntax. Some are better suited to developing desktop software, while others are better suited to web development. However, because they must be processed by a compiler or interpreter before being executed, they are all considered high-level.
To run, source code written in languages such as C++ and C# must be compiled into machine code. The compilation process transforms the high-level language's human-readable syntax into low-level code for a specific processor. Source code written in scripting languages like Perl and PHP can be run through an interpreter, which converts the high-level code into a low-level language on-the-fly.
Some programming languages are explained, here -
C
The C programming language is the oldest and most widely used computer language. C is an imperative, general-purpose computer programming language that allows for organized programming. Dennis Ritchie worked on it between 1969 and 1973.
It's designed to be compiled with a compiler, with low-level memory access, an efficient mapping to machine instructions, and minimum run-time support. Its portability and versatility to be used in any embedded system are two of its most notable characteristics.
It is a Universal Language because it is a portable assembly language that precisely suits the operating systems and has a short run-time.
C++
Bjarne Structure created C with Classes, the forerunner to C+++, in 1979. C++ is a computer language that can be used for a variety of purposes. It offers features for imperative, object-oriented, and generic programming.
System programming, flexibility of usage, embedded resource constraints, and performance efficiency with huge systems are some of the design highlights.
C++ is a compiled language with implementations on a variety of platforms. C++ has impacted other versions of programming languages such as Java, C#, D, and so on.
Classes, derived classes, strong typing, inclining, and default arguments are among the improvements given to the C compiler by C with Classes. Virtual functions, operator overloading, references, constants, type-safe, memory-allocation, enhanced type-checking, and a stand-alone compiler were added when it was changed to C++.
Direct mapping of hardware features and zero-overhead abstractions based on those mappings are two of its primary components. Despite the fact that C++ is considered a superset of C, this is not the case.
Java
Platform independence, scalability, security, and other aspects have made the long run conceivable. Java gets its object-oriented features, variables, and data types from C/C++, as well as a syntax that is influenced by C++.
Java's popularity stems from its platform-independence feature, which allows it to run on a variety of systems, including Macintosh, Windows, Unix, Linux, even Mainframe/mobile phones, as long as they have the JVM installed.
Even Java code developed 15 years ago may be converted to run on the most recent JVM. Another significant trait is that it is inherently object-oriented, which makes Java robust because Java objects do not contain any external data references.
Python is a scripting language for online applications that may be incorporated in many software products, employed in various Artificial Intelligence projects, and used in the Information Security field.
Java is widely utilized in our daily lives, for example, on famous websites such as Google, YouTube, LinkedIn, Amazon, and eBay. Java is used by a number of other well-known/booming technologies, including Android, Kotlin, and others.
Python
Python is a high-level interpreted computer language for general programming. In 1991, it was released.
Python was created with the goal of maximizing code readability and minimizing the use of whitespaces. Its main features include dynamic type, automatic memory management, support for different programming paradigms (PO, Functional, Procedural), and a huge complete library of its own.
Python interpreters are available for a variety of operating systems, and the software is free and open-source. It is the fourth most popular language (after Java, C, and C++) as of January 2018. According to a recent study, scripting languages are more productive than traditional languages.
Swift
Swift is a multi-paradigm, general-purpose compiled programming language created by Apple Inc. For iOS, macOS, and Cocoa frameworks. It makes use of the Objective C runtime library, which enables C and C++ to coexist in a same program.
Swift includes essential concepts such as dynamic dispatch, late binding, and extensible programming, as well as fixes for issues such as null pointer dereferencing, protocol support, extensions, struts, and classes. In 2015-2016, Swift took top spot as the most popular programming language.
Swift has been dubbed "Objective C without the C." It is an effective alternative for developing mobile projects because of its readability, maintenance, safer platform, fewer code, less legacy, speed, support for dynamic libraries, interactive coding, open-source, and other advantages.
JavaScript
JavaScript is a high-level, interpreted programming language that is dynamic, weakly typed, and prototype-based. It has established itself as one of the web's most important technologies. It allows you to make interactive web pages.
Initially, JavaScript was solely implemented in client-side web browsers, but it is now incorporated in a variety of host software, including server-side in web servers and run-time environments, allowing it to work on mobile and desktop apps.
Despite its name's closeness to Java, it differs from Java in terms of dynamic functionality, human-readable code, and so forth.
JSON (Data Interchange Format), jQuery (Client-side HTML Scripting), Angular and Angular (Web Application Frameworks for constructing SPA), React (JS Library), asm.js, and other supporting technologies or languages are all related to JavaScript.
W3C's standardization of web assembly allowed programming languages including C, C++, Java, and JS to be used to write client-side code on the internet. However, JavaScript has now reached biblical proportions, and experts believe it's time to go down...and yeah, that's partially right.
Due to the availability of different web alternatives, JavaScript might be confusing to use because the chosen language for client-side development varies along with the web assembly back ends.
Q.9) Describe free domain software?
A9: Any program that has no legal, copyright, or editing constraints is considered public domain software. It is free and open-source software that can be freely modified, distributed, and sold in the public domain. Public domain software includes SQLite, I2P, and CERN httpd, to name a few.
No one owns public domain software, which means it can be used, modified, and commercialized by anybody. Typically, public domain software is uncopyrighted, unpatented, and uncontrolled by its developer/author, either purposefully or voluntarily. It differs from free software and freeware, which are protected by copyrights and patents.
Although public domain software has no licensing requirements, The Unlicensed, Creative Commons License, and WTFPL all take a similar approach.
While lists of public domain software are available, listings of free software are more common. In the vast majority of circumstances, this software is not in the public domain. You have obtained a license to use it as a result of your acquisition. If you've ever downloaded a free computer program, you've probably had to agree to terms and conditions before using it. Some of the agreements you agree to may make it illegal for you to sell, modify, or profit from the software in any way.
There are several free software programs that are not in the public domain. You may simply obtain copies of Adobe® Reader®, Netscape®, Internet Explorer®, and a number of other apps, for example. You may also be offered numerous free programs when you buy a computer, but these are licensed to you only and are not yours to duplicate or distribute.
Public domain software can be found in a variety of places. Downloads and catalogs are available from a few college and university libraries. The sciences are home to some of the most interesting public domain software. Web Lab and Visual Molecular Dynamics are two programs that allow you to generate three-dimensional drawings of molecules. The Free Software Foundation (FSF) is a fantastic site to look for public domain, free, and shareware software. You'll discover a list of public domain software as well as any software that automatically offers you permission to use specific programs. The FSF is also quite explicit about the type of software you are downloading.
Fig 4: category of free and non-free category
Free software is software that anybody can use, copy, and/or distribute, either in its original form or with modifications, for free or for a price. This necessitates the availability of source code in particular. “Software isn't software until it's open source.” This is a condensed version of the term; the full definition can be found here.
If a program is free, it may be included in a free operating system such as GNU or free variants of the GNU/Linux operating system.
There are numerous methods to make a software free—many details that could be decided in multiple ways while yet keeping the application free. It is a question of freedom, not cost, when it comes to free software. However, proprietary software companies frequently use the term "free software" to refer to the cost of their products. They can mean two things: you can get a binary copy for free, or you can get a copy packed with a computer you're buying, and the price includes both. In any case, it has nothing to do with the GNU project's definition of free software.
Because of this possibility for misunderstanding, always examine the actual distribution terms when a software business claims its product is free software to ensure that users have all of the freedoms that free software implies. Sometimes the program is truly free, and sometimes it isn't.
Open-source software
Some individuals use the term "open source" software to refer to software that is similar to free software. It's not the same kind of software: they accept some licenses that we find excessively restrictive, and they refuse to accept some free software licenses. However, the distinctions in the category's scope are minor: we are only aware of a few instances of source code that is open source but not free. Some free apps may theoretically be rejected as open source, but we don't know if this has ever happened.
We like the phrase "free software" because it implies freedom, which is something that "open source" does not.
Public domain software
Software that is not copyrighted is known as public domain software. If the source code is in the public domain, the program is non copyleft, which means that some copies or modified versions may not be free at all.
An executable program may be in the public domain in some instances, but the source code is not. This isn't free software because it doesn't allow access to the source code. Meanwhile, most free software is not in the public domain; it is copyrighted, and the owners of the copyrights have legally granted everyone the right to use it freely under a free software license.
The phrase "public domain" is sometimes misused to indicate "free" or "accessible for no charge." However, the word "public domain" is a legal term that implies "not copyrighted." We propose using the phrase "public domain" just for that sense and utilizing alternative terminology to convey the other meanings for clarity's sake.
Anything written down is automatically copyrighted under the Berne Convention, which most countries have ratified. Programs are included in this. As a result, if you want a program you've written to be in the public domain, you'll need to take legal actions to remove the copyright; otherwise, the program will be copyrighted.
Q.10) Write the difference between system and application software?
A10: Difference between system and application software
Q.11) Write the features of customized application software?
A11: Features of customized application software
Personalized approach
As business is constantly growing, it requires additional modifications. They are rather hard to implement while having chosen a general-purpose software recently as it is not flexible enough. In this case, the professional team helps create a highly optimized and unique business solution according to the requirements.
Cost-effectiveness
Ready built software needs standing costs. By developing a customized solution, you get a wide range of functions and operate on a complete program pack in one product. Expenses for additional functionality are excluded. In this case, the return on investment gives a better result than the general-purpose solution.
No excess functions
As a rule, the development of such a product requires a deep analysis of your business. The modular structure allows you to compose a set of functions suitable for your departments’ work. Thus, you pay only for what your business needs. Moreover, the software flexibility allows you to expand the functionality with new extra features at any time.
Reliable security
When buying a universal solution, be prepared that this software is more vulnerable to hacking. Moreover, the availability of multiple users increases the level of system hacking and data leakage). Individually designed software is used only by your team, and the likelihood of intrusion is minimized. Hackers prefer cracking universal software because it is easier for them to know its vulnerabilities than to spend time studying the customized one.
Q.12) Write the features of general-purpose application software?
A12: Features of general-purpose application software
Easy-to-use software
Software installation isn’t a time-consuming process. Moreover, coherent and easy to read user guidelines allow you to do it without extensive efforts.
Budget development
Buying general-purpose software is more cost-effective than developing a tailor-made one. But if you plan to expand your business, then a unique solution according to business requirements will be a wise choice. Modifying an existing solution and adding new features can become a challenging and resource-consuming task.
Easily available solutions
General-purpose software is easily available as a multitude of users can work in one application simultaneously. As all files are saved in the system automatically, your team has access to files from anywhere via an Internet connection.
Q.13) Write the difference between a single pass and two pass compilers?
A13: Difference between single pass and two pass compilers