Second-generation programming language

Short description: Way to categorize assembly languages

The label of second-generation programming language (2GL) is a generational way to categorize assembly languages.[1][2][3] They belong to the low-level programming languages.

The term was coined to provide a distinction from higher level machine independent third-generation programming languages (3GLs) (such as COBOL, C, or Java) and earlier first-generation programming languages (machine code)[2][4]

## Second-generation programming language

Second-generation programming languages have the following properties:

* Lines within a program correspond directly to processor commands, essentially acting as a mnemonic device overlaying a first generation programming language.
* 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.[4]
* The language is specific to a particular processor family and environment.[2]

Second-generation languages are sometimes used for parts of kernels or device drivers, and are sometimes used in video games, graphics programs, and other intensive programs.[1]

In modern programs, second generation assembly languages are rarely used.[5] Programming in second generation languages may yield speed benefits, but several disadvantages have led to its decline:

* Programming is expressed in terms of individual processor instructions, rather than higher level logic.[2][3]
* Low-level memory and hardware details must be manually managed which is often bug-prone.[2]
* Programs are machine-dependent, so different versions must be written for every target machine architecture.[3]

The vast majority of programs are written in a third-generation programming language or a fourth-generation programming language. Assembly's main advantage, speed, has degraded by the fact that well written C code can often be as fast or even faster than handwritten assembly.[2][6]

Second generation languages are perhaps most significant in their place in computing history. For a long time, Second generation assembly languages were the only good option for development for many machines, such as the NES or the Commodore 64.[7][8] Second generation languages represented a massive step away from the tradition of programmers conforming to the needs of a machine, and the first step towards the machine accommodating for the programmer, a phenomenon that would be repeated in all subsequent programming language generations.[2][3]

## References

1. ↑ 1.0 1.1 "Computer Hope, Generation languages"
2. ↑ 2.0 2.1 2.2 2.3 2.4 2.5 2.6 Brookshear, J. Glenn (2012). Computer science : an overview (11th ed.). Addison-Wesley. pp. 240–241. ISBN 978-0-13-256903-3.
3. ↑ 3.0 3.1 3.2 3.3 Vass, Péter. "Programming Language generations and Programming Paradigms". http://www.uni-miskolc.hu/~geofiz/Oktatok/vass/Generations_and_paradigms.pdf.
4. ↑ 4.0 4.1 "What Are Programming Language Generations?" (in en-US). http://www.wisegeek.com/what-are-programming-language-generations.htm.
5. ↑ "Top Computer Languages 2019 - StatisticsTimes.com". http://statisticstimes.com/tech/top-computer-languages.php.
6. ↑ Walls, Colin. "Why C is faster than assembly". Mentor Inc.. https://blogs.mentor.com/colinwalls/blog/2013/02/18/why-c-is-faster-than-assembly/.
7. ↑ Commodore corporation. "C64 programmer's reference". Commodore corporation. https://www.commodore.ca/manuals/c64_programmers_reference/c64-programmers_reference_guide-05-basic_to_machine_language.pdf.
8. ↑ "NES assembly". https://en.wikibooks.org/w/index.php?title=NES_Programming&oldid=3551383.

* v
* t
* e

Programming language generations

* 1GL
* 2GL
* 3GL
* 4GL
* 5GL

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Second-generation programming language. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Second-generation_programming_language&oldid=4229649"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template