About Me

UNIT – III Types of software

1. Types of software: System and Application software 

2. Programming Languages

3. Generation of Languages

4. Translators - Interpreters, Compilers, Assemblers and their comparison

 5. Range of Applications

 Scientific, Word Processing, Spread Sheets, E-commerce, Business, Educational, Industrial, National level weather forecasting, Remote Sensing, Planning Multilingual Applications.


1. Types of software: System and Application software 

Software is a set of instructions, data or programs used to operate computers and execute specific tasks.





Application software. The most common type of software, application software is a computer software package that performs a specific function for a user, or in some cases, for another application. An application can be self-contained, or it can be a group of programs that run the application for the user. Examples of modern applications include office suites, graphics software, databases and database management programs, web browsers, word processors, software development tools, image editors and communication platforms.

System software. These software programs are designed to run a computer's application programs and hardware. System software coordinates the activities and functions of the hardware and software. In addition, it controls the operations of the computer hardware and provides an environment or platform for all the other types of software to work in. The OS is the best example of system software; it manages all the other computer programs. Other examples of system software include the firmware, computer language translators and system utilities.

2. Programming Language
Language is a set of symbols being used mainly for communication. The symbols may be spoken or written. 







A programming language is a set of grammatical rules for instructing a computer to perform specific tasks.
The term programming language usually refers to high-level languages, such as BASIC, C, C++, COBOL, Java, FORTRAN, Ada, and Pascal.
Each programming language has a unique set of keywords and a special syntax for organizing program instructions.



Machine Language
A computer’s CPU is incapable of speaking C++. The very limited set of instructions that a CPU natively understands is called machine code (or machine language or an instruction set). How these instructions are organized is beyond the scope of this introduction, but it is interesting to note two things. First, each instruction is composed of a number of binary digits, each of which can only be a 0 or a 1. These binary numbers are often called bits (short for binary digit). For example, the MIPS architecture instruction set always has instructions that are 32 bits long. Other architectures (such as the x86, which you are likely using) have instructions that can be a variable length.
Here is an example x86 machine language instruction: 10110000 01100001
Second, each set of binary digits is translated by the CPU into an instruction that tells it to do a very specific job, such as compare these two numbers, or put this number in that memory location. Different types of CPUs will typically have different instruction sets, so instructions that would run on a Pentium 4 would not run on a Macintosh PowerPC based computer. Back when computers were first invented, programmers had to write programs directly in machine language, which was a very difficult and time consuming thing to do.

Machine Language:
  1. It is the first generation programing language
  2. It is much difficult than Assembly Language
  3. Difficult to understand by the human
  4. It is in the form of 0s and 1s
  5. Machine Language varies from platform
  6. It cannot be changed easily
  7. It does not support modification
  8. The risk of existence of error is high
  9. The binary code cannot be memorized
  10. No need of compiler
Assembly Language
Because machine language is so hard to program with, assembly language was invented. In an assembly language, each instruction is identified by a short name (rather than a set of bits), and variables can be identified by names rather than numbers. This makes them much easier to read and write. However, the CPU can not understand assembly language directly. Instead, it must be translated into machine language by using an assembler. Assembly languages tend to be very fast, and assembly is still used today when speed is critical. However, the reason assembly language is so fast is because assembly language is tailored to a particular CPU. Assembly programs written for one CPU will not run on another CPU. Furthermore, assembly languages still require a lot of instructions to do even simple tasks, and are not very human readable.
Here is the same instruction as above in assembly language: mov al, 061h

  1. It is a second generation programming language
  1. It is less difficult than machine language
  1. Easy to understand by the human
  1. It uses symbolic instructions, descriptive names for data items and memory location
  1. The Assembly Language is platform dependent
  1. It is easily Modifiable
  1. It’s support changes
  1. The risk of occurrence of error is reduced
  1. Memorability is high
  1. It is needed compiler and knows as assembler
High-level Languages
To address these concerns, high-level programming languages were developed. C, C++, Pascal, Java, Javascript, and Perl, are all high level languages. High level languages allow the programmer to write programs without having to be as concerned about what kind of computer the program is being run on. Programs written in high level languages must be translated into a form that the CPU can understand before they can be executed. There are two primary ways this is done: compiling and interpreting.
compiler is a program that reads code and produces a stand-alone executable program that the CPU can understand directly. Once your code has been turned into an executable, you do not need the compiler to run the program. 


An interpreter is a program that directly executes your code without compiling it into machine code first. Interpreters tend to be more flexible, but are less efficient when running programs because the interpreting process needs to be done every time the program is run. 

Any language can be compiled or interpreted, however, traditionally languages like C, C++, and Pascal are typically compiled, whereas “scripting” languages like Perl and Javascript are interpreted. Some languages, like Java, use a mix of the two.






3. Generation of Languages

A computer can understand instructions in terms of electric signals as it works on electricity. Electric signals are either ON or OFF, or we can say 1 for ON or 0 for OFF. When computers we invented, firstly instructions were given to it in terms of 1’s and 0’s. This form of language is known as Machine Language or the first-generation language.

First Generation Language:

Firstly, computers were given instructions in the forms of 1’s and 0’s. This language is called Machine Language or first-generation language. A computer was able to understand it directly without any conversion. This language is also known as Machine Language or Binary language. Binary language because only two symbols 1 and 0.


Second Generation Language:

Machine Language was just 1’s and 0’s, in which error finding and correcting were very difficult. So we have to develop a second-generation language. Also called an Assembly Language.

In this language, instructions were replaced with some coded terms called mnemonic. So that it becomes a little easier to read, understand, and correct. A computer can understand and work on machine code only. So assembly language needed a special software called Assembler that converts mnemonic into machine language.


Third Generation Languages:

First, two generations of languages were comparatively easier for a computer to understand, but it was difficult for humans to read, understand and code in them. Thus, came English like programming languages to give instructions to computers. These languages are known as High-Level Languages as they are easier for humans to understand. 

C, C++, Java, COBOL Pascal, etc. are some High-Level Languages.


Fourth Generation Language:

Third-generation languages require detailed procedures, but fourth-generation languages just require ‘what’ do we want from the code rather than ‘how to do’. i.e., the procedure. These languages are similar to statements in the human language mainly used in database programming. E.g. Python, Ruby, SQL, MatLab.

SQL-Structured Query Language is one such language, e.g. you just write SELECT ALL department Name FROM EmployeeTable to get all the department names: No detailed program is required.


Fifth Generation Languages:

The fifth-generation languages are more focused on artificial intelligence implementation. These have visual tools to develop a program. Prolog, OPSS Mercury, etc. are some SGLS. E.g. Prolog, OPS5, Mecury etc.


4. Translators - Interpreters, Compilers, Assemblers and their comparison

All source code programs need to be translated before they can be executed. Assemblers, compilers, and interpreters are all types of program translator. However, they use different methods to translate programs.

Compiler

A compiler is a language translator that converts high level programs into machine understandable machine codes. In this process, the compiler converts the whole program to machine code at a time. If there are any syntactic or semantic error, the compiler will indicate them. It checks the whole program and displays all errors. It is not possible to execute the program without fixing those errors.

Programming languages such as C, C++ uses a compiler for language conversion. The execution time is lower in these languages. Therefore, they are considered fast languages.

Interpreter

An interpreter is also a language translator that converts high level programs into machine codes. Unlike compilers, interpreters convert the source code to machine code line by line. As it checks line by line, the scanning time is lower. But the overall execution time is higher.

Interpreter displays an error at a time. The programmer should fix that error to interpret the next line. Programming languages such as Python, Ruby, PHP, Perl are some examples of interpreter-based languages.

Assembler

In addition to high level languages and machine language, there is another language called the assembly language. Assembly language is in between the high level languages and machine language. It is closer to machine language than high level languages. It is also called low level language. This language is not easily readable and understandable by the programmer like a high level programming language. The assembler works as the translator in converting the assembly language program to machine code.


Post a Comment

0 Comments