Software (Introduction to Programming Languages, System Software, Operating System Utilities, Utility Software)

Software is a collection of instructions that enable the user to interact with a computer, its hardware, or perform tasks. Without software, most computers would be useless. For example, without your Internet browser software, you could not surf the Internet or read this page. Without an operating system, the browser could not run on your computer. The picture shows a Microsoft Excel box, an example of a spreadsheet software program.

Computer software, or simply software, is a collection of data or computer instructions that tell the computer how to work. This is in contrast to physical hardware, from which the system is built and actually performs the work. In computer science and software engineering, computer software is all information processed by computer systems, programs and data. Computer software includes computer programs, libraries and related non-executable data, such as online documentation or digital media. Computer hardware and software require each other and neither can be realistically used on its own.

The majority of software is written in high-level programming languages. They are easier and more efficient for programmers because they are closer to natural languages than machine languages. High-level languages are translated into machine language using a compiler or an interpreter or a combination of the two. Software may also be written in a low-level assembly language, which has strong correspondence to the computer’s machine language instructions and is translated into machine language using an assembler.

Introduction to Programming Languages

A programming language is a formal language, which comprises a set of instructions that produce various kinds of output. Programming languages are used in computer programming to implement algorithms.

Most programming languages consist of instructions for computers. There are programmable machines that use a set of specific instructions, rather than general programming languages. Early ones preceded the invention of the digital computer, the first probably being the automatic flute player described in the 9th century by the brothers Musa in Baghdad, during the Islamic Golden Age. Since the early 1800s, programs have been used to direct the behavior of machines such as Jacquard looms, music boxes and player pianos. The programs for these machines (such as a player piano’s scrolls) did not produce different behavior in response to different inputs or conditions.

Thousands of different programming languages have been created, and more are being created every year. Many programming languages are written in an imperative form (i.e., as a sequence of operations to perform) while other languages use the declarative form (i.e. the desired result is specified, not how to achieve it).

The description of a programming language is usually split into the two components of syntax (form) and semantics (meaning). Some languages are defined by a specification document (for example, the C programming language is specified by an ISO Standard) while other languages (such as Perl) have a dominant implementation that is treated as a reference. Some languages have both, with the basic language defined by a standard and extensions taken from the dominant implementation being common.

System Software

System software is software designed to provide a platform for other software. Examples of system software include operating systems like macOS, GNU/Linux and Microsoft Windows, computational science software, game engines, industrial automation, and software as a service applications.

In contrast to system software, software that allows users to do user-oriented tasks such as create text documents, play games, listen to music, or browse the web are collectively referred to as application software.

In the early days of computing most application software was custom-written by computer users to fit their specific hardware and requirements. In contrast, system software was usually supplied by the manufacturer of the computer hardware and was intended to be used by most or all users of that system.

The line where the distinction should be drawn is not always clear. Many operating systems bundle application software. Such software is not considered system software when it can be uninstalled usually without affecting the functioning of other software. Exceptions could be e.g. web browsers such as Internet Explorer where Microsoft argued in court that it was system software that could not be uninstalled. Later examples are Chrome OS and Firefox OS where the browser functions as the only user interface and the only way to run programs (and other web browsers can not be installed in their place), then they can well be argued to be the operating system and hence system software.

Another borderline example is cloud-based software. This software provides services to a software client (usually a web browser or a JavaScript application running in the web browser), not to the user directly, and is therefore systems software. It is also developed using system programming methodologies and systems programming languages. Yet from the perspective of functionality there is little difference between a word processing application and word processing web application.

Operating System Utilities

We have seen that the fundamental purpose of the operating system is to manage the various system resources. We have also examined the human computer interface which allows us to interact with the operating system. There is, however, a significant body of software that, while not strictly part of the operating system itself, cannot be described as application software. This software is often bundled with the operating system software, and comes under the general heading of utility software.

Utility software can include file re-organization utilities, backup programs, and a whole range of communication services. Many of the utilities that are bundled with a particular operating system are installed by default, although a significant number are optional and must be explicitly selected for installation.

The number and type of utility program provided varies from one operating system to another, but common examples include facilities to partition and format hard drives and floppy disks, file encryption and compression utilities, and task scheduling programs. These utilities are often implemented as stand-alone programs and can be run by the user in much the same way as an application program. In many cases, there are a number of proprietary utility programs on the market that carry out the same tasks, but with additional value added features.

Utility Software

Utility software is software designed to help to analyze, configure, optimize or maintain a computer. It is used to support the computer infrastructure – in contrast to application software, which is aimed at directly performing tasks that benefit ordinary users. However, utilities often form part of application systems. For example a batch job may run user-written code to update a database and may then include a step that runs a utility to back up the database, or a job may run a utility to compress a disk before copying files.

Although a basic set of utility programs is usually distributed with an operating system (OS), and this first party utility software is often considered part of the operating system, users often install replacements or additional utilities. Those utilities may provide additional facilities to carry out tasks that are beyond the capabilities of the operating system.

Many utilities that might affect the entire computer system require the user to have elevated privileges, while others that operate only on the user’s data do not.

Leave a Reply

error: Content is protected !!