3GLs (Third-generation programming languages) are categorized as procedural languages, because the program instructions are procedure-oriented and contain a series of steps that not only tell the computer what to do, but how to do it. On the other hand, 4GLs (Fourth-generation programming languages) are non-procedural languages; they enable users and developers to write programs that only specify what the computer is supposed to do and not how it is meant to do it.
Third-generation languages are also known as high-level languages, while fourth-generation languages are sometimes referred to as very-high-level programming languages. When 3GL statements are generated, a large volume of assembly language and machine language instructions are generated. Due to their reduced complexity, a fourth-generation language only requires about ten percent of the statements that a third-generation language requires to accomplish a similar task.
The reduced complexity of fourth generation languages has also increased the number of professionals who can take part in software development. Most 4GLs are associated with data processing and databases; they reflect the language used by domain professionals to formulate business processing sequences and rules, thus facilitating the efficient development of business-oriented systems. Most data-oriented fourth-generation languages are SQL (Structured Query Language) based. Java, C and C++ are common examples of third-generation languages. High-level code is usually introduced to 4GLs in order to introduce specific system logic.