Programski jezici četvrte generacije

Programski jezici četvrte generacije (engl. fourth-generation programming languages, 4GL) jesu računarski programski jezici zamišljeni kao dorada stila jezika klasifikovanih kao treća generacija programskog jezika (3GJ). Svaka od generacija programskih jezika ima za cilj da obezbedi viši nivo apstrakcije u unutrašnjosti detalja računarskog hardvera, praveći više programerski-orijentisane jezike, moćnije i svestranije. Iako se definicija 4GJ promenila tokom vremena, može da se odlikujee kao operativa sa više velikih kolekcija podataka odjednom umesto da se fokusira samo na bitove i bajtove. Jezici koji tvrde da su 4GJ mogu uključivati podršku za menadžment bazom podataka, prikupljanje izveštaja, matematičku optimizaciju, razvijanje GUI, ili veb razvoj. Jezici četvrte generacije često se porede sa domen-specifičnm jezicima (DSJ). Neki istraživači tvrde da je 4GJ podskup DSJ.[1][2]

Koncept 4GJ je razvijen od 1970-ih godina kroz 1990-e, preklapajući se sa većinom razvoja 3GJ. Dok su jezici 3GJ kao C, C++, C#, Java, i Javaskripti i dalje popularni za širok spektar upotrebe, jezici 4GJ kao što je prvobitno definisano su našli užu primenu. Neki napredne jezici 3GJ kao Pajton, Rubi, i Perl kombinuju neke 4GJ sposobnosti u okviru opšte namene u okruženju 3GJ. Takođe, biblioteke sa karakteristikama 4GJ su razvijene kao dodaci za najpopularnije jezike 3GJ. Ovo je zamaglio razliku između 4GJ i 3GJ.

Tokom 1980-ih i 1990-ih, bilo je napora da se uspostavi peta generacija programskog jezika (5GJ)

Istorija uredi

Iako korišćen u novinama i diskusijama, termin 4GJ je prvi put upotrebio zvanično Džejms Martin u svojoj knjizi iz 1982. godine Razvijanje aplikacija bez programera[3]  koja se odnosla na ne-proceduralne, specifikacijske jezike na visokom nivou. Na neki primitivan način, rani jezici 4GJ su uključeni u informatiku Mark-IV (1967) proizvoda i Sperijev MAper (1969 interna upotreba, 1979 izdavanje).

Bilo je motivacije za nastanak "4GJ" i kontinuisano interesovanje. Termin se može primeniti na veliki skup softverskih proizvoda. Takođe mogu da se primeni na pristup koji traži veća semantička svojstva i  veću moć implementacije. Baš kao što je 3GJ ponudila veću moć za programera, tako je i 4GJ otvorila razvojno okruženje široj populaciji.

U izvesnom smislu, 4GJ je primer prerade 'crne kutije', svaka generacija (u smislu strane) je dalje od mašine (videti Informatičku istoriju u pogledu poboljšanja strukture podataka i skrivanja informacija). Ta druga priroda koja je direktno povezana sa 4GJ ima greške koje su teže za debagovanje, u mnogim slučajevima. Što se tiče aplikacija, 4GL može biti okrenuta biznisu ili se može baviti nekim tehničkim domenu. Biti dalje od mašine podrazumeva bili što bliži domenu. S obzirom na veliku različitost koncepata i metoda na domenima, ograničenja 4GJ će dovesti do priznavanja potrebe za 5GJ.

Rana ulazna šema za 4GJ podržavala je unos podataka u okviru limitacije od 72-simbola buhene kartice(8 bajtova se koristi za sekvenciranje) gde će oznaka jedne kartice da identifikuje vrstu ili funkciju. Sa razumnom upotrebom nekoliko karata, 4GJ špil može da ponudi širok spektar prerade i sposobnosti izveštavanja  dok je ekvivalentna funkcionalnost kodirana u jezicima 3GJ mogla podvesti, možda, celu kutiju ili više kartica.[4]

Metafora 72-simbola je nastavila još neko vreme dok je hardver napredovao do veće memorije i terminalnog interfejsa. Čak i sa svojim ograničenjima, ovaj pristup je podržao visoko sofisticirane aplikacije.

Kako su se interfejsi poboljšavali i dozvoljavali duže izjave i gramatikom-vođen pogon ulaz rukovanje, veća snaga je usledila. Primer za ovo je opisan na strani Nomad softvera.

Drugi primer Nomadove moći ilustruje Nikolas Ravlings u svojim komentarima za računarski muzeju o NCSS (vidi citat ispod). On navodi da je Džejms Martin zatražio Ravlingsa za Nomadovo rešenje problema standarda koji je Martin zvao inženjerski problem: "daj 6% povećanje plate inženjerima čiji je rejting imao prosek od 7 ili više" Martin je obezbedio "desetak stranica Kobola, a zatim samo stranicu ili dve Mark IV, iz informatike." Ravlings je ponudio sledeću jedinstvenu izjavu, obavljajući operaciju podešenu na određeno vreme ...

Razvoj 4GJ je bio pod uticajem nekoliko faktora, sa hardverskim i operativno sistemskim ograničenjima imao je veliku težinu. Kada je prvi put uvedena 4GJ, disparatana mešavina hardvera i operativnih sistema zahtevala je poručenu aplikacijsku podršku koja je specifična za sistem kako bi se osigurala prodaja. Jedan primer je sistem Maper koga je razvio Speri. Iako ima korene u početku, sistem se pokazao uspešnim u mnogim aplikacijama i on je prebačen na moderne platforme. Najnovija varijanta je ugrađen u BIS[5] poklon Junisisa. Mark-IV je sada poznat kao Vision: Bilder i njega nudi Kompjuterska asocijacija.

Santa Fe pruga je koristila Maper da razvije sistem, u projektu koji je bio jedan od prvih primera 4GJ, brze izrade prototipova i programiranje od strane korisnika.[6] Ideja je bila da je lakše naučiti železničkog stručnjaka kako da koristi Maper nego da nauči programera "složenostima železničkih operacija".[7]

Jedan od ranog (i prenosivi) jezika koji su imali 4GJ svojstva je Ramis koga je razvio Gerald C. Kohen u Matematici, matematičkoj softverskoj kompaniji. Kohen je ostavio Matematiku i osnovao Informacijske bildere da stvori sličan izveštavanju orijentisan 4GJ, pod nazivom Fokus.

Kasnije 4GJ vrste su vezane za sistem baze podataka i daleko su drugačiji od ranijih tipova u njihovom korišćenju tehnike i resursa koji su rezultat opšteg poboljšanja računarstva sa vremenom.

Zanimljiv obrt u sceni 4GJ je saznanje da grafički interfejs i srodno obrazloženje učinjeno od strane korisnika formiraju 'jezik' koji se slabo razume.

Tipovi uredi

Postoji veliki broj različitih vrsta jezika 4GJ:

  • Tabelom-vođeno (bez koda) programiranje, obično radi sa runtime okvirima i bibliotekama. Umesto korišćenja koda, programer definiše svoju logiku izborom operaciju u unapred utvrđenoj listi memorijskih ili tabelarnim podacima manipulisanim komandama. Drugim rečima, umesto kodiranja, programer koristi Tabelom-vođene algoritme programiranja (videti takođe kontrolne tablice koje se mogu koristiti za ovu svrhu). Dobar primer ove vrste jezika 4GJ je PoverBilder. Ove vrste alata mogu da se koristi za poslovni razvoj aplikacija i obično se sastoji u paketu koji omogućava i poslovnu manipulaciju podataka i izveštavanja, zbog toga oni dolaze sa GUI ekranima i editorima prijava. Oni obično nude integraciju sa nižim nivoima DLL ostvarenih od tipičnog 3GJ kada se ukaže potreba za više hardverskih / Os specifičnih operacija.
  • Izveštaj-generatorski programski jezici uzimaju opis formata podataka i izveštaj da generišu i od toga oni ili generišu potreban izveštaj direktno ili generišu program za generisanje izveštaja. Vidi još RPG.
  • Slično tome, oblični generatori upravljaju onlajn interakcijama sa korisnicima aplikacionog sistema, ili prave programe za to.
  • Više ambiciozni jezici 4GJ (ponekad nazivani četvrtom generacijom okruženja) pokušavaju da automatski generišu čitave sisteme iz izlaza Kejs alata, specifikacije ekrana i izveštaja, a možda i specifikaciju neke dodatne logike procesuiranja.
  • Upravljanje podacima jezika 4GL kao što su SRS, SPSS i Stata obezbeđuju sofisticirane komande kodiranja za manipulaciju podataka, preoblikovanje fajlova, izbor predmeta i dokumentaciju podataka u pripremi za statističku analizu i izveštavanje.

Neki jezici 4GL imaju integrisane alatke koje omogućavaju jednostavnu specifikaciju svih potrebnih informacija:

  • Verzija Džejmsa Martina Informatičke inženjering metodologije razvoja sistema je automatizovana da dozvoli unos rezultata analize sistema i dizajna u obliku dijagrama toka podatakamodela objekti-veze, diagram entitetske istorije života, itd od kojih stotine hiljada linija Kobol će da sakupi preko noći.
  • U skorije vreme Orakl korporacijski Orakl Dizajner i Orakl Razvijač 4GJ proizvodi mogu biti integrisani da proizvode definicije baze podataka i programe obrazaca i izveštaja.

Primeri uredi

Opšta upotreba / svestran

Upitni jezik baze podataka

Report generatori

Manipulacija podataka, analiza i jezici izveštavanja

GUI creators

GUI kreatori

Matematička optimizacija

Razvoj GUI aplikacija vođen-bazom podataka

Ekran slikari i generatori

Veb razvijajući jezici

  • ActiveVFP
  • CFML
  • Wavemaker otvorenog koda, platforma razvoja bazirana na pretraživaču za Ajaks, razvoj zasnovan na Dojo, Spring, Hibernate
  • OutSystems

Vidi još uredi

Napomene uredi

  • Ovaj članak je zasnovan na materijalu preuzetom iz Fre On-line rečnika računarstva pre 1. novembra 2008. godine i ugrađene pod "ponovno izdavanom licencom" uslovima GFDL, verzija 1.3 ili noviji.

Reference uredi

  1. ^ 35th Hawaii International Conference on System Sciences - 1002 Domain-Specific Languages for Software Engineering Arhivirano na sajtu Wayback Machine (16. maj 2011)
  2. ^ Arie van Deursen; Paul Klint; Joost Visser (1998). „Domain-Specific Languages:An Annotated Bibliography”. Arhivirano iz originala 02. 02. 2009. g. Pristupljeno 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 Arhivirano na sajtu 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.

Literatura uredi

Spoljašnje veze uredi