Programming Language Generations

For the first 30 or 40 years of the computer age, it was common to categorize programming languages into loosely defined generations.

7 slides · 3 min read · Domain 8

Slide 1

Typically, the steps from one generation to the next had introduced controls and mitigation strategies for security and reliability concerns discovered in the previous generations' languages.

Each new generation also allowed us to program greater functionality into the application, which includes greater security functionality as well.

These generations were:

Generation 1

The first generation is referred to as machine language, opcodes (operating codes), and object code used by the computer itself. These are simple instructions that can be executed directly by the CPU and coded in binary, or object code. Rarely in use today, with two notable use cases as exceptions:

  • Reverse engineering of malware - or code being targeted by malware authors often requires strong programming skills at the binary (or hexadecimal) level.
  • Malware that exploits any kind of memory or storage violation, such as overwriting legitimate code or data with that of the attacker's choice, can sometimes require skill at crafting the malware payload at the binary level.

Generation 2

The second generation is referred to as assembly language. As hexadecimal or binary code is difficult for people to understand, programming evolved into a second generation of assembly language that was created. Assembly language uses symbols as abbreviations for major instructions.

Generation 3

Third generation or high-order languages (HOLs) use meaningful words as part of the commands that make up the instructions. Early third-generation languages were for the most part based on the use of English

This provides direct programmer interaction and control with hardware, and thus is often used for the most securitysensitive functions within operating systems kernels, device drivers, and other critical functions. Assembly language programming skills are also invaluable to hacker for the same reasons.

words; later third-generation languages have been ported over into other native human languages and character sets. COBOL, FORTRAN, BASIC, Java, and C are examples of third-generation languages.

Generation 4

Fourth generation languages are sometimes known as very high-level

Generation 5

Fifth generation languages, or natural language interfaces, shift the ways in which programmers think about solving problems by defining the constraints on the problem and on acceptable solutions to it, or by using logical expressions and arguments to program with instead of "traditional" source code.

languages and may include report generators and application generators.

Sometimes these are known as constraint-based or logic programming languages as a result. These were first used in the 1980s, and in some cases relied on artificial intelligence approaches such as natural language processing and machine learning to assist the programmer in finding a solution. By the 1990s, fifth generation languages had largely fallen out of use, outside of a few academic and research areas.

  • re(:) If "< (Message›" in line: myEvent • vonlyfilename+" \n" if typeOffile ==

Arguably, the fourth generation also includes a wide variety of methods for creating new programs.

In some, users interact with a drag-anddrop graphical user interface (GUI) to build up a complex set of tasks into an overall process.

Many high- performance data analytics platforms support this, which frees their data scientist users from needing to master the intricacies of languages like SQL, Python, or R to get their job defined, built, tested, and put into production use by others in the organization. Scripting languages are also included in the fourth generation.

Two principal security concerns are worth noting with regard to the widespread use of fourth generation languages today:

  • Almost all the "codeless programming" • By being created to make it simple platforms and environments end up

for nonprogrammers to create being substantially tailored by endprograms, and in so many ways, millions user organizations to meet their of people with virtually no security interpretations of their own business training or awareness use them on needs - and this of course means more a daily basis around the world. And source code gets written, compiled, and almost all that usage is beyond any put into use. organizational security or configuration management purview.

Test this domain