Computer programming languages are categorized into generations based on their level of abstraction from machine language. First generation languages (1GL) use binary and operate at the machine level. Second generation languages (2GL) include assembly languages, which provide basic abstraction over 1GL. Third generation languages (3GL) use high-level statements and require compilers to translate them into machine code. Examples include C, C++, and Java. Fourth generation languages (4GL) resemble human language and are often used for database access, with SQL as a primary example. Fifth generation languages (5GL) incorporate visual programming interfaces to create programs using 3GL or 4GL code.