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 podataka, modela 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
- Accell/SQL (4GL) od Unifi Korporacije.
- Clarion
- Clipper
- CA-Telon 4GL Cobol/PLI generator
- Cognos PowerHouse 4GL
- DataFlex
- Forté TOOL (transactional object-oriented language)
- FOCUS od Information Builders Ink.
- FoxPro
- GeneXus (Zasnovana na znanju više platformi za razvoj alata)
- IBM Rational EGL (Enterprise Generation Language)
- LabVIEW
- LINC
- Omnis Studio SDK
- OutSystems (Productivity/PaaS)
- Panter
- PowerBuilder
- Perl
- PHP
- Python
- Ruby
- Oracle Application Development Framework
- DEC RALLY
- SheerPower4GL (samo za majkrosoft vindous)
- SQLWindows/Team Developer
- Uniface
- Visual DataFlex (samo za Majkrosoft vindous)
- WinDev
- Unix Shell
- XBase++
- Manage (SDS Sigma series mainframe)
Upitni jezik baze podataka
Report generatori
- BuildProfessional
- LIRC
- NATURAL
- Oracle Reports
- Progress 4GL Upit / Rezultati
- Quest
- RPG-II
Manipulacija podataka, analiza i jezici izveštavanja
- Ab Initio
- ABAP
- Aubit-4GL
- Audit Command Language
- Clarion Programming Language
- CorVision
- Culprit
- ADS/Online (Plus obrada transakcija)
- Easytrieve
- FOCUS
- GraphTalk
- IDL
- IGOR Pro
- Informix-4GL
- JSL
- LANSA
- LabVIEW
- MANTIS
- MAPPER (Unisys/Sperry) sada deo BIS
- MARK-IV (Sterling/Informatics) Sada VIŽON: Bilder CA
- Simulink komponenta MATLAB
- NATURAL
- Nomad
- PL/SQL
- Progress 4GL
- PROIV
- R
- Ramis
- S
- Scilab
- SAS
- SPSS
- SQL PL
- SQR
- Stata
- Synon
- Wolfram jezik
- XBase++
- Xquery Natrag kompatibilan sa SQL i kompatibilan sa XML izvorima podataka.
GUI creators
- 4th Dimension (Software)
- MATLAB's GUIDE
- Omnis Studio
- OpenROAD
- Progress 4GL Apbilder
- SuperCard
- Revolution
- XUL Can be used with Xquery da stvori veb aplikaciju GUI baze podataka brzo.
- Visual DataFlex
GUI kreatori
Matematička optimizacija
Razvoj GUI aplikacija vođen-bazom podataka
Ekran slikari i generatori
- SB+/SystemBuilder
- Oracle Forms
- Progress 4GL ProVision
Veb razvijajući jezici
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
- ^ 35th Hawaii International Conference on System Sciences - 1002 Domain-Specific Languages for Software Engineering Arhivirano na sajtu Wayback Machine (16. maj 2011)
- ^ 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.
- ^ Martin, James. (1981). Application Development Without Programmers. Prentice-Hall. ISBN 978-0-13-038943-5.
- ^ Columbia University Computing History: IBM Cards
- ^ Unisys. Business Information Server Arhivirano na sajtu Wayback Machine (21. август 2006) (BIS).
- ^ Louis Schlueter, User-Designed Computing: The Next Generation, 1988. [book on report generator and MAPPER systems]
- ^ McNurlin & Sprague. Technologies for Developing Systems[мртва веза] Information Systems Management in Practice. Prentice Hall. 2003. ISBN 978-0-13-101139-7.
Literatura uredi
- Martin, James. (1981). Application Development Without Programmers. Prentice-Hall. ISBN 978-0-13-038943-5.
Spoljašnje veze uredi
- ČetriGen KASE alati - okruženje brzog razvoja aplikacija
- Četri J's alati razvoja Genero, Genero studio
- IBM-Informiks Genero
- 4GJ GPJ / GNU-OpenSource projekat razvojnih alata
- Zaboravljeni sajt.
- Giliani četrigen sajt .
- Gore! 5GJ da konsoliduje ili da se izgradi komponentno-bazirane aplikacije.