Кіріспе
Компьютерлік бағдарламалау тілдерінің тобы. Төртінші буын бағдарламалау тілі (4GL) – үшінші буын бағдарламалау тілдерінен (3GL) дамыған, жоғары деңгейдегі компьютерлік бағдарламалау тілі. Бағдарламалау тілдерінің әр буыны компьютерлік жабдықтың ішкі құрылымын жоғары деңгейде абстракциялауға, тілді бағдарламашылар үшін ыңғайлы, қуатты және әмбебап етуге бағытталған. 4GL анықтамасы уақыт өте келе өзгергенімен, оның ерекшелігі – биттер мен байттарға тікелей назар аудармай, бірден үлкен көлемдегі ақпаратпен жұмыс істеуі. 4GL деп есептелетін тілдер деректер базасын басқару, есеп дайындау, математикалық оптимизация, GUI және веб-дамыту сияқты мүмкіндіктерді қамтуы мүмкін. Кейбір зерттеушілер 4GL-ді домендік тілдердің ішкі жиыны деп санайды. 4GL тұжырымдамасы 1970-ші жылдардан 1990-шы жылдарға дейін, 3GL дамуымен қатар дамыды. 4GL тілдері «процедуралық емес» немесе «бағдарлама құрастырушы» тілдер ретінде белгіленді, ал 3GL тілдері алгоритмдік немесе процедуралық болып табылды. C, C++, C#, Java және JavaScript сияқты 3GL тілдері кең ауқымда қолданылып келе жатса, 4GL тілдері бастапқыда деректер базалары, есептер және веб-сайттар саласында қолданыс тапты. Python, Ruby және Perl сияқты кейбір дамыған 3GL тілдері жалпы мақсаттағы 3GL ортасында 4GL мүмкіндіктерін біріктіреді. Сондай-ақ, 4GL сипаттамаларына ие кітапханалар көптеген танымал 3GL тілдеріне қосымша ретінде әзірленді, нәтижесінде 3GL және 4GL ерекшеліктерін үйлестіретін тілдер пайда болды, бұл екеуінің арасындағы шекараны жойды. 1980-ші және 1990-шы жылдары бесінші буын бағдарламалау тілдерін (5GL) жасауға әрекеттер жасалды.
A fourth generation programming language (4GL) is a high level computer programming language that belongs to a class of languages envisioned as an advancement upon third generation programming languages (3GL). Each of the programming language generations aims to provide a higher level of abstraction of the internal computer hardware details, making the language more programmer friendly, powerful, and versatile. While the definition of 4GL has changed over time, it can be typified by operating more with large collections of information at once rather than focusing on just bits and bytes. Languages claimed to be 4GL may include support for database management, report generation, mathematical optimization, GUI development, or web development. Some researchers state that 4GLs are a subset of domain specific languages. The concept of 4GL was developed from the 1970s through the 1990s, overlapping most of the development of 3GL, with 4GLs identified as "non procedural" or "program generating" languages, contrasted with 3GLs being algorithmic or procedural languages. While 3GLs like C, C++, C#, Java, and JavaScript remain popular for a wide variety of uses, 4GLs as originally defined found uses focused on databases, reports, and websites. Some advanced 3GLs like Python, Ruby, and Perl combine some 4GL abilities within a general purpose 3GL environment, and libraries with 4GL like features have been developed as add ons for most popular 3GLs, producing languages that are a mix of 3GL and 4GL, blurring the distinction. In the 1980s and 1990s, there were efforts to develop fifth generation programming languages (5GL).
Тарих
4GL термині алғаш рет 1981 жылы Джеймс Мартиннің «Программалаушыларсыз қолданба жасау» кітабында процедуралық емес, жоғары деңгейдегі сипаттама тілдерін атау үшін ресми түрде қолданылды. Кейбір бастапқы тәсілдермен, ерте 4GL-дер Informatics MARK IV (1967) өніміне және Sperry's MAPPER (1969 ішкі қолдану, 1979 жылғы шығарылым) енгізілді. «4GL» пайда болуының және оған қызығушылықтың себептері көп. Бұл термин бағдарламалық өнімдердің кең спектріне қатысты қолданылуы мүмкін. Сонымен қатар, бұл семантикалық қасиеттерін және іске асыру мүмкіндіктерін арттыратын тәсілге де қатысты болуы мүмкін. 3GL бағдарламалаушыға үлкен күш бергендей, 4GL де даму ортасын кеңірек аудиторияға ашты. 4GL үшін ерте енгізу схемасы перфокартаның 72 таңбалық лимитінде (8 байт тізбектеу үшін пайдаланылды) деректерді енгізуді қолдады, онда картаның таңбасы түрін немесе функциясын анықтады. Бірнеше картаны тиімді пайдалану арқылы 4GL жинағы кең ауқымды өңдеу және есеп беру мүмкіндіктерін ұсына алады, ал 3GL-де кодталған эквивалентті функционалдық мүмкіндіктер карталардың бір қорабынан немесе одан да көп бөлігін қамтуы мүмкін. 72 таңбалық формат аппараттық жабдық үлкен жадқа және терминал интерфейстеріне жеткенге дейін біраз уақыт бойы сақталды. Өзінің шектеулеріне қарамастан, бұл тәсіл өте күрделі қолданбаларды қолдады. Интерфейстер жақсарғанда және ұзақ сөйлемдерге және грамматикалық басқаруға мүмкіндік бергенде, қуаты артты. Бұған мысал ретінде Nomad бетін қараңыз. Nomad-тың қуатының тағы бір мысалын Николас Роулингс NCSS туралы Компьютерлік тарих мұражайына берген түсініктемелерінде келтіреді (төмендегі сілтемені қараңыз). Ол Джеймс Мартиннің Роулингтен стандартты мәселені шешу үшін Nomad шешімін сұрағанын айтады, бұл мәселені Мартин «Инженердің мәселесі» деп атады: «жұмысқа жарамдылығы 7 немесе одан жоғары бағаланған инженерлерге 6% көтеріңкі беру». Мартин «COBOL-дың оншақты бетін, содан кейін Informatics-тен Mark IV-тің бір-екі бетін берді». Rawlings келесі бір ғана операторды ұсынды, бірнеше жазбаны бірден өңдейтін.
4GL-дің дамуына бірнеше фактор әсер етті, аппараттық және операциялық жүйелердің шектеулері маңызды рөл атқарды. 4GL алғаш рет енгізілген кезде, аппараттық және операциялық жүйелердің әртүрлілігі сатуды қамтамасыз ету үшін жүйеге тән жеке қолданбаларды әзірлеуді талап етті. Мысалы, Sperry әзірлеген MAPPER жүйесі. Оның тамыры ерте заманға дейін барып жетсе де, жүйе көптеген қолданбаларда сәтті болды және қазіргі заманғы платформаларға көшірілді. Соңғы нұсқасы Unisys BIS ұсынысына енген. MARK IV қазір VISION:BUILDER деп аталады және Computer Associates ұсынады. Санта-Фе темір жолы 4GL-дің ерте мысалы, жылдам прототиптеу және пайдаланушылар бағдарламалау жобасында жүйе әзірлеу үшін MAPPER-ді қолданды. Мақсаты – теміржол мамандарын «теміржол операцияларының күрделіліктеріне» үйретуден гөрі, MAPPER-ді пайдалануға үйрету болды. 4GL қасиеттері бар ертедегі (және портативті) тілдердің бірі Mathematica компаниясында Джеральд К. Коэн әзірлеген Ramis болды. Коэн Mathematica-дан шығып, FOCUS деп аталатын ұқсас есеп беруге бағытталған 4GL құру үшін Information Builders-ті құрды. Кейінгі 4GL түрлері деректер базасы жүйесімен байланысты және уақыт өте келе есептеудің жалпы жақсаруынан туындаған техникалар мен ресурстарды пайдаланудағы бұрынғы түрлерден мүлдем өзгеше. 4GL саласындағы қызықты жайт – графикалық интерфейстер мен пайдаланушының осыған байланысты ойлауы нашар түсінілетін «тілді» құрайтынын түсіну.
Төмен кодты орта
ХХІ ғасырда 4GL жүйелері қысқа мерзімде жедел қолданбаларды жасау мәселесіне арналған "азырақ кодты" орта немесе платформа ретінде пайда болды. Сатушылар көбінесе CRM, келісімшарттарды басқару, қателерді із кесу сияқты үлгілік жүйелерді ұсынады, олардың негізінде аз бағдарламалау арқылы даму мүмкін болады.