Програмски језици четврте генерације

Програмски језици четврте генерације (енгл. fourth-generation programming languages, 4GL) јесу рачунарски програмски језици замишљени као дорада стила језика класификованих као трећа генерација програмског језика (3ГЈ). Свака од генерација програмских језика има за циљ да обезбеди виши ниво апстракције у унутрашњости детаља рачунарског хардвера, правећи више програмерски-оријентисане језике, моћније и свестраније. Иако се дефиниција 4ГЈ променила током времена, може да се одликујее као оператива са више великих колекција података одједном уместо да се фокусира само на битове и бајтове. Језици који тврде да су 4ГЈ могу укључивати подршку за менаџмент базом података, прикупљање извештаја, математичку оптимизацију, развијање ГУИ, или веб развој. Језици четврте генерације често се пореде са домен-специфичнм језицима (ДСЈ). Неки истраживачи тврде да је 4ГЈ подскуп ДСЈ.[1][2]

Концепт 4ГЈ је развијен од 1970-их година кроз 1990-е, преклапајући се са већином развоја 3ГЈ. Док су језици 3ГЈ као C, C++, C#, Јава, и Јаваскрипти и даље популарни за широк спектар употребе, језици 4ГЈ као што је првобитно дефинисано су нашли ужу примену. Неки напредне језици 3ГЈ као Пајтон, Руби, и Перл комбинују неке 4ГЈ способности у оквиру опште намене у окружењу 3ГЈ. Такође, библиотеке са карактеристикама 4ГЈ су развијене као додаци за најпопуларније језике 3ГЈ. Ово је замаглио разлику између 4ГЈ и 3ГЈ.

Током 1980-их и 1990-их, било је напора да се успостави пета генерација програмског језика (5ГЈ)

Историја уреди

Иако коришћен у новинама и дискусијама, термин 4ГЈ је први пут употребио званично Џејмс Мартин у својој књизи из 1982. године Развијање апликација без програмера[3]  која се односла на не-процедуралне, спецификацијске језике на високом нивоу. На неки примитиван начин, рани језици 4ГЈ су укључени у информатику Марк-IV (1967) производа и Сперијев МАпер (1969 интерна употреба, 1979 издавање).

Било је мотивације за настанак "4ГЈ" и континуисано интересовање. Термин се може применити на велики скуп софтверских производа. Такође могу да се примени на приступ који тражи већа семантичка својства и  већу моћ имплементације. Баш као што је 3ГЈ понудила већу моћ за програмера, тако је и 4ГЈ отворила развојно окружење широј популацији.

У извесном смислу, 4ГЈ је пример прераде 'црне кутије', свака генерација (у смислу стране) је даље од машине (видети Информатичку историју у погледу побољшања структуре података и скривања информација). Та друга природа која је директно повезана са 4ГЈ има грешке које су теже за дебаговање, у многим случајевима. Што се тиче апликација, 4ГЛ може бити окренута бизнису или се може бавити неким техничким домену. Бити даље од машине подразумева били што ближи домену. С обзиром на велику различитост концепата и метода на доменима, ограничења 4ГЈ ће довести до признавања потребе за 5ГЈ.

Рана улазна шема за 4ГЈ подржавала је унос података у оквиру лимитације од 72-симбола бухене картице(8 бајтова се користи за секвенцирање) где ће ознака једне картице да идентификује врсту или функцију. Са разумном употребом неколико карата, 4ГЈ шпил може да понуди широк спектар прераде и способности извештавања  док је еквивалентна функционалност кодирана у језицима 3ГЈ могла подвести, можда, целу кутију или више картица.[4]

Метафора 72-симбола је наставила још неко време док је хардвер напредовао до веће меморије и терминалног интерфејса. Чак и са својим ограничењима, овај приступ је подржао високо софистициране апликације.

Како су се интерфејси побољшавали и дозвољавали дуже изјаве и граматиком-вођен погон улаз руковање, већа снага је уследила. Пример за ово је описан на страни Номад софтвера.

Други пример Номадове моћи илуструје Николас Равлингс у својим коментарима за рачунарски музеју о НЦСС (види цитат испод). Он наводи да је Џејмс Мартин затражио Равлингса за Номадово решење проблема стандарда који је Мартин звао инжењерски проблем: "дај 6% повећање плате инжењерима чији је рејтинг имао просек од 7 или више" Мартин је обезбедио "десетак страница Кобола, а затим само страницу или две Марк IV, из информатике." Равлингс је понудио следећу јединствену изјаву, обављајући операцију подешену на одређено време ...

Развој 4ГЈ је био под утицајем неколико фактора, са хардверским и оперативно системским ограничењима имао је велику тежину. Када је први пут уведена 4ГЈ, диспаратана мешавина хардвера и оперативних система захтевала је поручену апликацијску подршку која је специфична за систем како би се осигурала продаја. Један пример је систем Мапер кога је развио Спери. Иако има корене у почетку, систем се показао успешним у многим апликацијама и он је пребачен на модерне платформе. Најновија варијанта је уграђен у БИС[5] поклон Јунисиса. Марк-IV је сада познат као Висион: Билдер и њега нуди Компјутерска асоцијација.

Санта Фе пруга је користила Мапер да развије систем, у пројекту који је био један од првих примера 4ГЈ, брзе израде прототипова и програмирање од стране корисника.[6] Идеја је била да је лакше научити железничког стручњака како да користи Мапер него да научи програмера "сложеностима железничких операција".[7]

Један од раног (и преносиви) језика који су имали 4ГЈ својства је Рамис кога је развио Гералд C. Кохен у Математици, математичкој софтверској компанији. Кохен је оставио Математику и основао Информацијске билдере да створи сличан извештавању оријентисан 4ГЈ, под називом Фокус.

Касније 4ГЈ врсте су везане за систем базе података и далеко су другачији од ранијих типова у њиховом коришћењу технике и ресурса који су резултат општег побољшања рачунарства са временом.

Занимљив обрт у сцени 4ГЈ је сазнање да графички интерфејс и сродно образложење учињено од стране корисника формирају 'језик' који се слабо разуме.

Типови уреди

Постоји велики број различитих врста језика 4ГЈ:

  • Табелом-вођено (без кода) програмирање, обично ради са рунтиме оквирима и библиотекама. Уместо коришћења кода, програмер дефинише своју логику избором операцију у унапред утврђеној листи меморијских или табеларним подацима манипулисаним командама. Другим речима, уместо кодирања, програмер користи Табелом-вођене алгоритме програмирања (видети такође контролне таблице које се могу користити за ову сврху). Добар пример ове врсте језика 4ГЈ је ПоверБилдер. Ове врсте алата могу да се користи за пословни развој апликација и обично се састоји у пакету који омогућава и пословну манипулацију података и извештавања, због тога они долазе са ГУИ екранима и едиторима пријава. Они обично нуде интеграцију са нижим нивоима ДЛЛ остварених од типичног 3ГЈ када се укаже потреба за више хардверских / Ос специфичних операција.
  • Извештај-генераторски програмски језици узимају опис формата података и извештај да генеришу и од тога они или генеришу потребан извештај директно или генеришу програм за генерисање извештаја. Види још РПГ.
  • Слично томе, облични генератори управљају онлајн интеракцијама са корисницима апликационог система, или праве програме за то.
  • Више амбициозни језици 4ГЈ (понекад називани четвртом генерацијом окружења) покушавају да аутоматски генеришу читаве системе из излаза Кејс алата, спецификације екрана и извештаја, а можда и спецификацију неке додатне логике процесуирања.
  • Управљање подацима језика 4ГЛ као што су СРС, СПСС и Стата обезбеђују софистициране команде кодирања за манипулацију података, преобликовање фајлова, избор предмета и документацију података у припреми за статистичку анализу и извештавање.

Неки језици 4ГЛ имају интегрисане алатке које омогућавају једноставну спецификацију свих потребних информација:

  • Верзија Џејмса Мартина Информатичке инжењеринг методологије развоја система је аутоматизована да дозволи унос резултата анализе система и дизајна у облику дијаграма тока податакамодела објекти-везе, диаграм ентитетске историје живота, итд од којих стотине хиљада линија Кобол ће да сакупи преко ноћи.
  • У скорије време Оракл корпорацијски Оракл Дизајнер и Оракл Развијач 4ГЈ производи могу бити интегрисани да производе дефиниције базе података и програме образаца и извештаја.

Примери уреди

Општа употреба / свестран

Упитни језик базе података

Репорт генератори

Манипулација података, анализа и језици извештавања

GUI creators

ГУИ креатори

Математичка оптимизација

Развој ГУИ апликација вођен-базом података

Екран сликари и генератори

  • SB+/SystemBuilder
  • Oracle Forms
  • Progress 4GL ПроВисион

Веб развијајући језици

  • ActiveVFP
  • CFML
  • Wavemaker отвореног кода, платформа развоја базирана на претраживачу за Ајакс, развој заснован на Дојо, Спринг, Хибернате
  • OutSystems

Види још уреди

Напомене уреди

  • Овај чланак је заснован на материјалу преузетом из Фре Он-лине речника рачунарства пре 1. новембра 2008. године и уграђене под "поновно издаваном лиценцом" условима ГФДЛ, верзија 1.3 или новији.

Референце уреди

  1. ^ 35th Hawaii International Conference on System Sciences - 1002 Domain-Specific Languages for Software Engineering Архивирано на сајту Wayback Machine (16. мај 2011)
  2. ^ Arie van Deursen; Paul Klint; Joost Visser (1998). „Domain-Specific Languages:An Annotated Bibliography”. Архивирано из оригинала 02. 02. 2009. г. Приступљено 15. 3. 2009. 
  3. ^ Martin, James. (1981). Application Development Without Programmers. Prentice-Hall. ISBN 978-0-13-038943-5. 
  4. ^ Columbia University Computing History: IBM Cards
  5. ^ Unisys. Business Information Server Архивирано на сајту Wayback Machine (21. август 2006) (BIS).
  6. ^ Louis Schlueter, User-Designed Computing: The Next Generation, 1988. [book on report generator and MAPPER systems]
  7. ^ McNurlin & Sprague. Technologies for Developing Systems[мртва веза] Information Systems Management in Practice. Prentice Hall. 2003. ISBN 978-0-13-101139-7.

Литература уреди

Спољашње везе уреди