"Мова n-го покоління" - це казкове слово. Це маркетинговий термін. Не існує загальновизнаного визначення того, що саме визначає "n-е покоління" для n> 2. Деякі люди класифікують "скриптові" мови, такі як Perl або Python, як 4GL, тому що вони набагато більш високі, ніж C, а інші вважають визначальним Характеристика 4GL полягає в тому, що вони залежать від домену, наприклад, SQL. Деякі нітвіти навіть вважають, що Java (мова середини 90-х, повна орієнтації на об’єкти та збирання та відображення сміття) належить до тієї ж категорії «3GL», що і Fortran (з 50-х років) та C (з 70-х років).
Настільки заплутана категоризація, як "мова 4-го покоління", не приносить користі. Ви можете бачити це в старих підручниках або чути від людей, які розпочали програмування у 80-х, але тег на зразок "4GL" нічого не вартий без супровідного пояснення того, що саме автор означає під цим.
Оскільки ніхто одразу не розуміє, що ви маєте на увазі під "4GL", вам не слід використовувати такі категорії. Натомість використовуйте конкретні терміни, щоб повідомляти саме про те, що ви маєте на увазі. Наприклад, всі NASM, LLVM IR та Jasmin - це мови монтажу, але останні два націлені на VM, а останній також є об'єктно-орієнтованою мовою програмування. Чи всі ці 2GL? SQL - це частково декларативна, доменна мова для запитів баз даних з 80-х. А TeX - це специфічна для домену мова для набору тексту з 70-х. Вони обидва 4GL, оскільки вони обидва більш-менш доменних?