Software Concepts
Software


•   Non-touchable part of computer.
•   Used to describe the instructions, given to a computer.
•   Program or group of programs.
•   Computer instructions or data, anything that can be stored
    electronically is software.
Types of Computer Software
Computer software can be categorized into following two categories:
1. System Software: includes those software that help in better
utilization hardware resources.
Example Operating System, Compiler, Disk Drivers etc.
2. Application Software: includes those software that helps in
performing a particular task such as creating a document, preparing a
presentation. These are general purpose software's.
Example: Ms-Word, Excel, Power Point, etc.
3. Utility Software: includes those software that generally comes
along with operating system used to perform basic activities.
Example: Disk Format Utility, Disk Defragmenter Utility, etc.
4. Customised Software : includes software which are specially
designed for a particular group of users.
Example: Software for a bank, hospital, business organization, etc.
Programming Languages

•   Medium of communication between computer and the user
    containing words, symbols and syntax rules.
•   Each language has its own vocabulary and rules.
•   A programming language is used to control the behaviour of
    a computer.
•   All computer languages can be classified in the following five
    generations:

    •   Machine Language (1st Generation Language – 1945)
    •   Assembly Language(2nd Generation Language – 1950s)
    •   High Level Language (3rd Generation Language – 1960s)
    •   Very High Level Language (4th Generation Language –
        1970s)
    •    Natural Language (5th Generation Language – 1980)
Programming Languages
•   Machine Language
•   The set of instruction codes, in binary, which can be directly
    understood by the CPU without translating the program.
•   An instruction has two parts:
     Op-Code: First part of instruction which tells the
        computer what function to perform.
     Operand: Second part of instruction, tells the computer
        where to find or store data or instructions that are to be
        manipulated.
•   The lowest-level, programming language.
•   Machine Dependent.
•   Difficult to program.
•   Error Prone.
•   Difficult to modify.
Example

OpCode         Operands
ADD      2          3     5
000      010       011    101
Programming Languages

1. Assembly Language
• A low-level language.
• Allows the programmer to use abbreviations or words instead
   of binary numbers, known as mnemonics.
• A program called an assembler transforms assembly
   language into machine code.
• Readability is more than machine language.
• Easy to understand and use.Easy to locate and correct errors.
• Easier to modify.
• No need to track addresses.
• Easily relocatable.
• It has four parts; label, mnemonic, operand, comment; not
   all are present in every line.
Example
Limitations:
• Machine dependent.
• Knowledge of hardware.
• Machine level coding.
Example-
 MOV r0, #0C       ;load base address of string into
                     r0
 LOAD: MOV r1,(r0) ;load contents into r1
 CALL PRINT        ; call a print routine to print the
                   character in r1
Programming Languages

• High-Level Language
• Also known as Procedure/Problem Oriented
  Language.
• Machine independent.
• Easier to learn and use than previous languages.
• Requires less time to write the code.
• Easier to maintain.
• Provides better documentation.
• Fewer Errors.
• Lower program preparation cost.
• Lack of flexibility.
EXAMPLES OF HLLs
•   FORTRAN   Formula Translation Language
•   COBOL     Common Business Oriented Language
•   ALGOL     Algorithmic Language
•   RPG       Report Program Generator
•   APL       A Programming Language
•   BASIC     Beginners All Purpose Symbolic Instruction Code
•   PL/I      Programming Language I
•   PASCAL    Named after Blaise Pascal, a French Philosopher
•   Ada       Named after Lady Lovelace Ada
•   C         General Purpose Programming Language
•   C++       Object Oriented Programming Language
•   JAVA      Object Oriented Programming Language
Programming Languages
•Very High Level Language
•Also known as 4GL or non-procedural language.
•Machine independent.
•Easier to learn and use.
•Easier to maintain.
•The tools are:
 • DBMS
 • Report Generators
 • Query Languages
 • Application Generators.
 Examples: SQL and ORACLE
Programming Languages
5. Natural Languages
Natural languages are of two types:
   • Ordinary Human Language: English, German,
     Spanish etc.
   • Programming Languages: that use human
     language to give people more natural connection
     with computers with 4GLs. Using AI (Artificial
     Intelligence), the attempt to make computers
     which will have human like qualities such as
     learning, reasoning, communicating, seeing and
     hearing etc.
   • Prolog, OPS5 and Mercury are the best known 5th
     generation languages.
COMPARISON BETWEEN 3RD AND 4TH
                   GENERATION LANGUAGES
•   THIRD GENERATION                •    FOURTH GENERATION
2.  Used by professional            2.   May be used by non-
    programmers                          programmers as well.
3. Require task performance         3.   Require specifications of what
    specifications (how)                 task to perform (what)
4. All alternatives are specified   4.   Default alternatives are built-in
5. Require large number of          5.   Require far few instructions
    instructions
6. Code difficult to read, and      7.   Code easy to read and
    understand                           maintain.
7. Originally developed for         8.   Developed primarily for on-line.
    batch processing.
8. Can be difficult to learn        10. Easy to learn
9. Difficult to debug               11. Easier to debug
10. Typically file oriented.        12. Typically database oriented
Assignment

• What is meant by System Software and how does it
  differ from Application Software.
• Identify any five functions that utility programs can
  perform
• What is the difference between High level and low
  level languages.

Lecture 8

  • 1.
  • 2.
    Software • Non-touchable part of computer. • Used to describe the instructions, given to a computer. • Program or group of programs. • Computer instructions or data, anything that can be stored electronically is software.
  • 3.
    Types of ComputerSoftware Computer software can be categorized into following two categories: 1. System Software: includes those software that help in better utilization hardware resources. Example Operating System, Compiler, Disk Drivers etc. 2. Application Software: includes those software that helps in performing a particular task such as creating a document, preparing a presentation. These are general purpose software's. Example: Ms-Word, Excel, Power Point, etc. 3. Utility Software: includes those software that generally comes along with operating system used to perform basic activities. Example: Disk Format Utility, Disk Defragmenter Utility, etc. 4. Customised Software : includes software which are specially designed for a particular group of users. Example: Software for a bank, hospital, business organization, etc.
  • 4.
    Programming Languages • Medium of communication between computer and the user containing words, symbols and syntax rules. • Each language has its own vocabulary and rules. • A programming language is used to control the behaviour of a computer. • All computer languages can be classified in the following five generations: • Machine Language (1st Generation Language – 1945) • Assembly Language(2nd Generation Language – 1950s) • High Level Language (3rd Generation Language – 1960s) • Very High Level Language (4th Generation Language – 1970s) • Natural Language (5th Generation Language – 1980)
  • 5.
    Programming Languages • Machine Language • The set of instruction codes, in binary, which can be directly understood by the CPU without translating the program. • An instruction has two parts:  Op-Code: First part of instruction which tells the computer what function to perform.  Operand: Second part of instruction, tells the computer where to find or store data or instructions that are to be manipulated. • The lowest-level, programming language. • Machine Dependent. • Difficult to program. • Error Prone. • Difficult to modify.
  • 6.
    Example OpCode Operands ADD 2 3 5 000 010 011 101
  • 7.
    Programming Languages 1. AssemblyLanguage • A low-level language. • Allows the programmer to use abbreviations or words instead of binary numbers, known as mnemonics. • A program called an assembler transforms assembly language into machine code. • Readability is more than machine language. • Easy to understand and use.Easy to locate and correct errors. • Easier to modify. • No need to track addresses. • Easily relocatable. • It has four parts; label, mnemonic, operand, comment; not all are present in every line.
  • 8.
    Example Limitations: • Machine dependent. •Knowledge of hardware. • Machine level coding. Example- MOV r0, #0C ;load base address of string into r0 LOAD: MOV r1,(r0) ;load contents into r1 CALL PRINT ; call a print routine to print the character in r1
  • 9.
    Programming Languages • High-LevelLanguage • Also known as Procedure/Problem Oriented Language. • Machine independent. • Easier to learn and use than previous languages. • Requires less time to write the code. • Easier to maintain. • Provides better documentation. • Fewer Errors. • Lower program preparation cost. • Lack of flexibility.
  • 10.
    EXAMPLES OF HLLs • FORTRAN Formula Translation Language • COBOL Common Business Oriented Language • ALGOL Algorithmic Language • RPG Report Program Generator • APL A Programming Language • BASIC Beginners All Purpose Symbolic Instruction Code • PL/I Programming Language I • PASCAL Named after Blaise Pascal, a French Philosopher • Ada Named after Lady Lovelace Ada • C General Purpose Programming Language • C++ Object Oriented Programming Language • JAVA Object Oriented Programming Language
  • 11.
    Programming Languages •Very HighLevel Language •Also known as 4GL or non-procedural language. •Machine independent. •Easier to learn and use. •Easier to maintain. •The tools are: • DBMS • Report Generators • Query Languages • Application Generators. Examples: SQL and ORACLE
  • 12.
    Programming Languages 5. NaturalLanguages Natural languages are of two types: • Ordinary Human Language: English, German, Spanish etc. • Programming Languages: that use human language to give people more natural connection with computers with 4GLs. Using AI (Artificial Intelligence), the attempt to make computers which will have human like qualities such as learning, reasoning, communicating, seeing and hearing etc. • Prolog, OPS5 and Mercury are the best known 5th generation languages.
  • 13.
    COMPARISON BETWEEN 3RDAND 4TH GENERATION LANGUAGES • THIRD GENERATION • FOURTH GENERATION 2. Used by professional 2. May be used by non- programmers programmers as well. 3. Require task performance 3. Require specifications of what specifications (how) task to perform (what) 4. All alternatives are specified 4. Default alternatives are built-in 5. Require large number of 5. Require far few instructions instructions 6. Code difficult to read, and 7. Code easy to read and understand maintain. 7. Originally developed for 8. Developed primarily for on-line. batch processing. 8. Can be difficult to learn 10. Easy to learn 9. Difficult to debug 11. Easier to debug 10. Typically file oriented. 12. Typically database oriented
  • 14.
    Assignment • What ismeant by System Software and how does it differ from Application Software. • Identify any five functions that utility programs can perform • What is the difference between High level and low level languages.