"linguaggio dell'ennesima generazione" è una parola d'ordine. È un termine di marketing. Non esiste una definizione universalmente accettata di ciò che definisce esattamente la "n-generazione" per n > 2. Alcune persone classificano linguaggi "scripting" come Perl o Python come 4GL perché sono molto più di alto livello rispetto a C, mentre altri ritengono che le caratteristiche di definizione di 4GL siano che sono specifici del dominio, ad es. SQL. Alcuni imbecilli pensano addirittura che Java (un linguaggio degli anni '90 pieno di orientamento agli oggetti e raccolta e riflessione dei rifiuti) appartenga alla stessa categoria "3GL" come Fortran (dagli anni '50) e C (dagli anni '70).
Una categorizzazione così confusa come "linguaggio di quarta generazione" è inutile. Potresti vederlo nei vecchi libri di testo o ascoltarlo da persone che hanno iniziato a programmare negli anni '80, ma un tag come "4GL" è inutile senza una spiegazione di ciò che esattamente significa l'autore.
Dal momento che nessuno capisce immediatamente cosa intendi per "4GL", non dovresti usare tali categorizzazioni. Invece, usa termini specifici per comunicare con precisione cosa intendi. Per esempio. tutti NASM, LLVM IR e Jasmin sono linguaggi di assemblaggio, ma gli ultimi due VM di destinazione e l'ultimo è anche un linguaggio di programmazione orientato agli oggetti. Sono tutti questi 2GL? SQL è un linguaggio parzialmente dichiarativo, specifico per dominio, per query di database degli anni '80. E TeX è un linguaggio specifico del dominio per la composizione degli anni '70. Sono entrambi 4GL poiché sono entrambi più o meno specifici del dominio?