Software Concepts and Computer Languages Study Notes

Introduction to Hardware and Software

  • Hardware Components: Refers to the physical components of a computer that can be touched. This category includes input, output, and storage devices.
  • Software Definition: Software is a set of programs given to a computer to fulfill any task successfully. It is usually created by grouping various related programs.
  • Interdependence: Both hardware and software are integral parts of a computer. Software enables the computer to interact with the user and directs the hardware to perform various tasks.
  • Computer Program: A computer cannot perform any action on its own; it requires a sequence of instructions written in a language understood by the machine. This sequence is known as a computer program.
  • Processing Activity: A program controls the computer's processing activity, ensuring the hardware performs exactly as specified.
  • Multipurpose Systems: A personal computer typically includes several software packages, each designed for a specific type of job.

Classification of Software

Software is broadly classified into three categories:

  • System Software: Programs designed to control the operation of a computer system and extend its processing capability.
  • Application Software: Sets of programs necessary to carry out operations for specific applications.
  • Utility Software: Programs that assist users in maintenance tasks and routine resource management.

System Software and Language Processors

System software is essential for the proper functioning of the computer and the efficient development and execution of application programs. It consists of the following components:

Operating System
  • Definition: A program acting as an interface between the user and the computer hardware.
  • Metaphor: It is likened to a secretary who takes orders from a boss and decides internally how, what, and when to perform tasks.
  • Core Functions:
    • Provides instructions for preparing the user interface (typed commands or graphical symbols).
    • Loads necessary programs into the computer memory for functioning.
    • Coordinates program operations with the CPU, keyboard, mouse, printer, and other hardware/software.
    • Manages the storage and retrieval of information from disks.
Language Processors

Computers only understand their own machine (binary) language. Because programmers prefer high-level languages for coding, system programs called language processors are needed to translate these programs.

  • Assembler: A translator that converts programs written in assembly language (source code) into equivalent machine language (object code). It is often supplied by the manufacturer and also assembles the program in the main memory for execution.
    • Process: Assembly Language Program (Input)AssemblerMachine Language Program (Output)\text{Assembly Language Program (Input)} \rightarrow \text{Assembler} \rightarrow \text{Machine Language Program (Output)}
  • Interpreter: A type of translator that takes one statement of a high-level language program at a time, translates it into machine language, and executes it immediately.
    • Speed and Storage: Interpreters are easy to write and require less storage space, but take more time to execute a program compared to a compiler.
    • Process: High-level Language (Input)InterpreterResult (Output)\text{High-level Language (Input)} \rightarrow \text{Interpreter} \rightarrow \text{Result (Output)}
  • Compiler: A translator that converts the entire source code of a high-level language into machine code as a whole, creating an executable file. Once compiled, the program does not need to be retranslated for future executions.
    • Targeting: Each high-level language requires its own specific compiler (e.g., a C++\text{C++} compiler is needed for code written in C++\text{C++}).
    • Residency: Compilers are large programs that reside on secondary storage and are copied into main memory during the translation process.

Utility Software

Utility softwares are sets of programs that help users with maintenance and routine management of computer resources. They are often built into the system software but can be purchased as external programs.

  • Common Tasks:
    • Formatting hard or floppy disks.
    • Backing up files to tapes or disks.
    • Scanning for viruses.
    • Sorting records in a file based on a key field.
    • Checking storage space on a hard disk.
Notable Utility Types
  • Anti Virus: Used to identify and destroy deviant programs (viruses) that corrupt data or shut down systems. Examples include Norton Antivirus and Mc Afce Virus Scan.
  • File Management System: Used to create, edit, save, open, and print files. Notepad is an example of a text editor utility in Windows.
  • Data Compression Tools: These use algorithms to remove redundant data, shrinking files to a fraction of their size to save space. They include decompression algorithms to restore files. This technique can effectively double disk capacity.
  • Disk Management Tools:
    • Disk Cleanup: Searches for and removes unnecessary files such as temp files\text{temp files} (temporary files) that programs fail to delete upon closing.
    • Disk Defragmenter: Rearranges scattered portions of files into contiguous blocks to speed up file access.
    • Backup: Creates duplicate copies of files to recover data in case of disk crashes, hardware failure, or accidental erasure.

Application Software as a Tool

Application software is designed for specific user applications and is provided by computer vendors or software suppliers.

  • Word Processing Software: Used for typing, editing, and formatting textual matter to create flawless documents like memos, letters, and reports. Modern versions can embed sounds, video clips, and animations. Examples: Wordstar, MSword, and Wordperfect.
  • Spreadsheet Software: A numeric data analysis tool for entering, calculating, and manipulating numbers in a format similar to a computerized ledger (rows and columns). It is used for budgets, accounting, and tracking stocks. Example: Microsoft Excel.
  • Presentation Tools: Enables users to create visual aids including diagrams, photos, clip art, sound, and animation for large audiences. They are often used with LCD Projectors. Example: Microsoft Power Point.
  • Database Management System (DBMS): Software designed to create and edit databases, which are organized collections of related records stored in rows and columns. It allows for commands like creation, deletion, and queries. Example: Microsoft Access.
  • Business Software: Specialized programs for business activities. Examples include:
    • School Management System
    • Inventory Management System
    • Payroll System (generates tax reports)
    • Financial Accounting (automates book keeping)
    • Hotel Management
    • Reservation System (airlines and railways)

Detailed Functions of Operating Systems

An Operating System (OS) is an integrated set of programs controlling resources like the CPU, memory, and I/O devices.

  • Processor Management: Managing CPU time via multiprogramming, allowing the system to handle multiple programs simultaneously. Benefits include increased CPU utilization and higher job output.
  • Memory Management: Tracking memory usage, checking availability, and allocating/deallocating memory to jobs. This is critical for overall system performance.
  • File Management: Controlling file-related activities including naming, sharing, long/short term storage, security, and tracking the status/location of information.
  • Device Management: Communicating with hardware via programs called drivers. Each device has its own driver to translate OS instructions and application software into hardware signals. It also handles I/O scheduling.

Types of Operating Systems

  1. Single User: Manages the computer so only one user program executes at a time (e.g., Microsoft Disk Operating System or MSDOS).
  2. Multiuser: Allows different users to use resources simultaneously via terminals; the OS divides time and RAM among them (e.g., UNIX).
  3. GUI Operating System (Interactive OS): Provides a user-friendly Graphical User Interface with pictures and icons instead of command-based communication (e.g., Microsoft Windows).
  4. Time Sharing: Multiple users share computer time via specific CPU time slots. The OS switches rapidly between tasks.
  5. Real Time: Responds to input immediately with fixed timing constraints. Features include rapid response and reliability. Failure to meet a deadline is called a deadline overrun. Used in nuclear power plants and airline reservations.
  6. Distributed: Connects multiple computers (nodes) over a network to share processing loads, messages, and data. Used in e-mail and banking.

Concept of Computer Languages

  • Machine Language: The only language a computer understands directly without translation. It consists of strings of binary 1s\text{1s} and 0s\text{0s}. It is often called machine code or object code.
  • Assembly Language (Introduced in 1952): Uses alpha-numeric mnemonic codes (e.g., ADD\text{ADD} for addition, SUB\text{SUB} for subtraction) instead of numeric binary codes. It also uses symbolic names for memory addresses (e.g., FRST\text{FRST}, SCND\text{SCND}, ANSR\text{ANSR}). It requires an assembler for conversion.
  • High-Level Language: English-like programming language designed to simplify programming using keywords and grammar (syntax). Programs must be processed by a compiler or interpreter. Examples include C++\text{C++}, C#\text{C\#}, Cobol\text{Cobol}, Fortran\text{Fortran}, Java\text{Java}, JavaScript\text{JavaScript}, Pascal\text{Pascal}, and Python\text{Python}. These languages are portable and run on different architectures provided the specific compiler is available.