Monday, April 10, 2017

Differences between analog and digital computers.

Analog Computer:
An analog computer is a form of computer that uses the continuously changeable aspects of physical phenomena such as electrical, mechanical, or hydraulic quantities to model the problem being solved. As an analog computer does not use discrete values, but rather continuous values, processes cannot be reliably repeated with exact equivalence.
 
Digital Computer: A digital computer is form computer that uses letters and numbers as inputs in processing and displays the result in monitors or other forms of output devices and can also store the output in memory to be used later. Following are some key differences between digital and analog computer

Analog Computer
No.
Digital Computer
This type of computer uses continuously changeable aspects of physical phenomena.
1
This type of computer runs by turning on and off electricity which are digital signals.
Electrical wave generated from pressure, temperature etc. such changeable data are used as input in analog computers.
2
Letters and numbers are used in digital computer to process data.
Analog computer uses physical devices like plotter etc. to display the output of an operation.
3
Digital computer can display output to monitor or on other devices.
Analog computers are less accurate.
4
Accuracy of digital computers is very high as it can take lot of decimal points into consideration in calculation
Speedometer, slide rule etc. are example analog computer
5
Generally all modern computers are digital computers such PC, laptop, notebook etc.
 

Computer Mouse

A computer mouse is a handheld hardware input device (also called Pointing device) that controls a cursor in a GUI and can move and select text, icons, files, and folders. For desktop computers, the mouse is placed on a flat surface such as a mouse pad or a desk and is placed in front of your computer.

Difference between Supercomputer & Mainframecomputer



Difference between Microcomputer, Minicomputer & Mainframecomputer






Assembler

An Assembler is a type of computer program that interprets software programs written in assembly language into machine language, code and instructions that can be executed by a computer.
An assembler enables software and application developers to access, operate and manage a computer's hardware architecture and components.
An assembler is sometimes referred to as the compiler of assembly language. It also provides the services of an interpreter.
Image result for assembler

Programming language processor that translates an assembly language program (the source program) to the machine language program (the object program) executable by a computer.

Read more: http://www.businessdictionary.com/definition/assembler.html

Programming language processor that translates an assembly language program (the source program) to the machine language program (the object program) executable by a computer.

Read more: http://www.businessdictionary.com/definition/assembler.html

Programming language processor that translates an assembly language program (the source program) to the machine language program (the object program) executable by a computer.

Read more: http://www.businessdictionary.com/definition/assembler.html

Programming language processor that translates an assembly language program (the source program) to the machine language program (the object program) executable by a computer.

Read more: http://www.businessdictionary.com/definition/assembler.html

COMPILER & INTERPRETER

A compiler is a program that translates the entire source program written in some high-level programming language (such as Java) into machine code for some computer architecture (such as the Intel Pentium architecture).
Image result for compiler
  1. A computer program which reads entire source code and outputs assembly code or executable code is called compiler.
  2. A program that translates software written in source code into instructions that a computer can understand Software used to translate the text that a programmer writes into a format the CPU can use.
  3. A piece of software that takes third-generation language code and translates it into a specific assembly code. Compilers can be quite complicated pieces of software.
An Interpreter is a program that translates a source program written in some high-level programming language (such as BASIC) into machine code for some computer architecture (such as the Intel Pentium architecture) line by line.
  1. A computer program which reads line by line source code and outputs assembly code or executable code is called interpreter.

Difference between Compiler and Interpreter

NoCompilerInterpreter
1Compiler Takes Entire program as inputInterpreter Takes Single instruction as input .
2Intermediate Object Code is GeneratedNo Intermediate Object Code is Generated
3Conditional Control Statements are Executes fasterConditional Control Statements are Executes slower
4Memory Requirement : More (Since Object Code is Generated)Memory Requirement is Less
5Program need not be compiled every timeEvery time higher level program is converted into lower level program
6Errors are displayed after entire program is checkedErrors are displayed for every instruction interpreted (if any)
7Example : C CompilerExample : BASIC

Fourth generation Language

A fourth generation (programming) language (4GL) is a grouping of programming languages that attempt to get closer than 3GLs to human language, form of thinking and conceptualization.

4GLs are designed to reduce the overall time, effort and cost of software development. The main domains and families of 4GLs are: database queries, report generators, data manipulation, analysis and reporting, screen painters and generators, GUI creators, mathematical optimization, web development and general purpose languages.

Also known as a 4th generation language, a domain specific language, or a high productivity language
Advantages:
1. Simplified the programming process.
2. Use nonprocedural languages that encourage users and programmers to specify the results they want, while the computers determines the sequence of instructions that will accomplish those results.
3. Use natural languages that impose no rigid grammatical rules

Disadvantages:
1. Less flexible that other languages
2. Programs written in 4GLs are generally far less efficient during program execution that programs in high-level languages. Therefore, their use is limited to projects that do not call for such efficiency.

Third Generation Language

A third-generation programming language (3GL) is a generational way to categorize high-level computer programming languages. Where assembly languages, categorized as second generation programming languages, are machine-dependent, 3GLs are much more machine independent and more programmer-friendly. This includes features like improved support for aggregate data types, and expressing concepts in a way that favors the programmer, not the computer. A third generation language improves over a second generation language by having the computer take care of non-essential details. 3GLs feature more abstraction than previous generations of languages, and thus can be considered higher level languages than their first and second generation counterparts.
First introduced in the late 1950s, Fortran, ALGOL, and COBOL are early examples of these sorts of languages.
Most popular general-purpose languages today, such as C, C++, C#, Java, BASIC and Pascal, are also third-generation languages, although each of these languages can be further subdivided into other categories based on other contemporary traits. Most 3GLs support structured programming.

Advantages:
1. Easier to learn and understand than an assembler language as instructions (statements) that resemble human language or the standard notation of mathematics.
2. Have less-rigid rules, forms, and syntaxes, so the potential for error is reduced.
3. Are machine-independent programs therefore programs written in a high-level language do not have to be reprogrammed when a new computer is installed.
4. Programmers do not have to learn a new language for each computer they program.

Disadvantages:
1. Less efficient than assembler language programs and require a greater amount of computer time for translation into machine instructions. 

2nd Generation Language

2nd Generation Language or Assembly Language 

Second-generation programming language (2GL) is a generational way to categorize assembly languages. The term was coined to provide a distinction from higher level third-generation programming languages (3GL) such as COBOL and earlier machine code languages.
Second-generation programming languages have the following properties:
  • The code can be read and written by a programmer. To run on a computer it must be converted into a machine readable form, a process called assembly.
  • The language is specific to a particular processor family and environment.
 
It is the first step to improve the programming structure. You should know that computer can handle numbers and letter. Therefore some combination of letters can be used to substitute for number of machine codes.
The set of symbols and letters forms the Assembly Language and a translator program is required to translate the Assembly Language to machine language. This translator program is called `Assembler'. It is considered to be a second-generation language.

Advantages Assembly Language:
1.The symbolic programming of Assembly Language is easier to understand and saves a lot of time and effort of the programmer.
2.It is easier to correct errors and modify program instructions.
3.Assembly Language has the same efficiency of execution as the machine level language. Because this is one-to-one translator between assembly language program and its corresponding machine language program.

Disadvantages Assembly Language:
1.One of the major disadvantages is that assembly language is machine dependent. A program written for one computer might not run in other computers with different hardware configuration.


First-generation programming language

A first-generation programming language (1GL) is a machine-level programming language.
A first generation (programming) language (1GL) is a grouping of programming languages that are machine level languages used to program first-generation computers. Originally, no translator was used to compile or assemble the first-generation language. The first-generation programming instructions were entered through the front panel switches of the computer system. This is very expensive. There was originally no compiler or assembler to process the instructions in 1GL.
The instructions in 1GL are made of binary numbers, represented by 1s and 0s. This makes the language suitable for the understanding of the machine but far more difficult to interpret and learn by the human programmer.Machine Language is the only language that is directly understood by the computer. It does not needs any translator program. We also call it machine code and it is written as strings of 1's (one) and 0’s (zero). When this sequence of codes is fed to the computer, it recognizes the codes and converts it in to electrical signals needed to run it. For example, a program instruction may look like this:

1011000111101

It is not an easy language for you to learn because of its difficult to understand. It is efficient for the computer but very inefficient for programmers. It is considered to the first generation language. It is also difficult to debug the program written in this language.

Advantage Machine Language:
The only advantage is that program of machine language run very fast because no translation program is required for the CPU.

Disadvantages Machine Language:
1. It is very difficult to program in machine language. The programmer has to know details of hardware to write program.
2. The programmer has to remember a lot of codes to write a program which results in program errors.
3. It is difficult to debug the program.


Friday, April 07, 2017

Generation of Computer Languages

1. The first generation languages, or 1GL are low-level languages that are machine language.
2. The second-generation languages, or 2GL are also low-level assembly languages.
3. The third-generation languages, or 3GL are high-level languages such as C.
4. The fourth-generation languages, or 4GL are languages that consist of statements similar to statements in a human language. Fourth generation languages are commonly used in database programming and scripts and that contain visual tools to help develop a program.