Generation of programming languages
First generation languages are low-level languages that are machine language.
Second-generation languages are also low-level assembly languages. They are sometimes used in kernels and hardware drives, but more commonly used for video editing and video games.
Fourth-generation languages are languages that consist of statements similar to statements in a human language. Fourth generation languages are commonly used in database programming and scripts examples include Perl, PHP, Python, Ruby, and SQL.
Fifth-generation languages are programming languages that contain visual tools to help develop a program. Examples of fifth generation languages include Mercury, and Prolog.
First- and Early Second-Generation Programming Languages
- Basic physical building block of all applications is the subprogram.
- Applications written in these languages exhibit a relatively flat physical structure, consisting only of global data and subprograms.
- Lack of enforcing on design decisions.
- An error in one part of a program can have a devastating ripple effect across the rest of the system, because the global data structures are exposed for all subprograms to see.
Late Second- and Early Third-Generation Programming Languages
- Languages supported a variety of parameter passing mechanisms.
- Foundations of structured programming
- Structured design methods emerged, offering guidance to designers trying to build large systems using subprograms as basic physical building blocks.
- These have greater control over algorithmic abstractions, but it still fails to address the problems of programming-in-the-large and data design.
Late Third-Generation Programming Languages
- Address the growing issues of programming-in the-large.
- Supporting some sort of modular structure.
- These languages had dismal support for data abstraction and strong typing, such errors could be detected only during execution of the program.
Object-Based and Object-Oriented Programming Languages
- The physical building block in these languages is the module, which represents a logical collection of classes and objects instead of subprograms, as in earlier languages.
- There is little or no global data. Instead, data and operations are united in classes and objects.
Large Applications Using Object-Based and Object-Oriented Programming Languages
- For very complex systems, classes, objects, and modules provide an essential features for problem solving.