Second-generation programming languages is a part of low-level programming languages. In short : 2GL. They provides little or no abstraction from a computer's instruction set architecture. Generally they refer to assembly language.

They form a generational way to categorize assembly languages. The term was find 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.
In other words, second-generation programming language form a group of programming languages associated with assembly languages. Unlike the first generation languages, programs can be written symbolically, using English words (also known as mnemonics), in a way that a human can understand and are subsequently converted into machine language by an assembler.




