Język programowania czwartej generacji - Fourth-generation programming language

Język programowania czwartej generacji ( 4GL ) jest dowolny komputer język programowania , który należy do grupy języków przewidywał jako zaawansowania po języków programowania trzeciej generacji (3GL). Każda z generacji języka programowania ma na celu zapewnienie wyższego poziomu abstrakcji wewnętrznych szczegółów sprzętu komputerowego , dzięki czemu język jest bardziej przyjazny dla programistów , potężny i wszechstronny. Chociaż definicja 4GL zmieniała się z biegiem czasu, można ją scharakteryzować, operując bardziej na dużych zbiorach informacji naraz, zamiast skupiać się tylko na bitach i bajtach . Języki uznawane za 4GL mogą obejmować obsługę zarządzania bazami danych , generowanie raportów , optymalizację matematyczną , tworzenie GUI lub tworzenie stron internetowych . Niektórzy badacze twierdzą, że 4GL są podzbiorem języków specyficznych dla domeny .

Koncepcja 4GL była rozwijana od lat 70. do 90. XX wieku, pokrywając się z większością rozwoju 3GL, przy czym 4GLs określono jako języki „nieproceduralne” lub „generujące programy”, w przeciwieństwie do 3GL jako języków algorytmicznych lub proceduralnych. Podczas gdy 3GLs, takie jak C , C++ , C# , Java i JavaScript pozostają popularne w wielu różnych zastosowaniach, 4GLs, zgodnie z oryginalną definicją, znalazł zastosowania skupiające się na bazach danych, raportach i witrynach internetowych. Niektóre zaawansowane 3GL, takie jak Python , Ruby i Perl , łączą niektóre możliwości 4GL z ogólnym środowiskiem 3GL, a biblioteki z funkcjami podobnymi do 4GL zostały opracowane jako dodatki do najpopularniejszych 3GL, tworząc języki będące mieszanką 3GL i 4GL, zacierając rozróżnienie.

W latach 80. i 90. podjęto wysiłki w celu opracowania języków programowania piątej generacji (5GL).

Historia

Choć używany wcześniej w artykułach i dyskusjach, termin 4GL został po raz pierwszy użyty formalnie przez Jamesa Martina w jego książce Applications Development Without Programrs z 1981 roku w odniesieniu do nieproceduralnych języków specyfikacji wysokiego poziomu . W niektórych pierwotnego sposób wcześnie 4GLs zostały włączone Informatics MARK-IV (1967), a produkt Sperry jest MAPPER (1969 do użytku wewnętrznego, 1979 uwalnianiu).

Istnieje kilka motywacji powstania „4GL” i nieustającego zainteresowania. Termin ten może dotyczyć dużego zestawu produktów oprogramowania. Może również odnosić się do podejścia, które poszukuje większych właściwości semantycznych i mocy implementacji. Tak jak 3GL oferował większą moc programiście, tak samo 4GL otworzył środowisko programistyczne dla szerszej populacji.

Wczesny schemat wprowadzania dla 4GL wspierał wprowadzanie danych w ramach 72-znakowego limitu karty dziurkowanej (8 bajtów używanych do sekwencjonowania), gdzie znacznik karty identyfikowałby typ lub funkcję. Przy rozsądnym użyciu kilku kart talia 4GL może oferować szeroką gamę możliwości przetwarzania i raportowania, podczas gdy równoważna funkcjonalność zakodowana w 3GL może obejmować całe pudełko lub więcej kart .

72-znakowy format był kontynuowany przez jakiś czas w miarę postępu sprzętu w kierunku większej pamięci i interfejsów terminalowych. Nawet przy swoich ograniczeniach to podejście wspierało wysoce wyrafinowane aplikacje.

W miarę ulepszania interfejsów i zwiększania długości instrukcji oraz obsługi danych wejściowych opartych na gramatyce, uzyskano większą moc. Przykład tego jest opisany na stronie Nomad .

Inny przykład potęgi Nomada ilustruje Nicholas Rawlings w swoich komentarzach dla Muzeum Historii Komputerów na temat NCSS (patrz cytat poniżej). Donosi, że James Martin poprosił Rawlingsa o ​​rozwiązanie standardowego problemu Nomada, który Martin nazwał Problemem Inżyniera : „daj 6% podwyżek inżynierom, których oceny stanowisk wynosiły średnio 7 lub więcej”. Martin dostarczył „tuzin stron COBOL-a, a potem tylko stronę lub dwie Mark IV z Informatics ”. Rawlings zaproponował następujące pojedyncze stwierdzenie, wykonując operację set-at-a-time...

Na rozwój 4GL wpłynęło kilka czynników, a ograniczenia sprzętowe i systemowe miały dużą wagę. Kiedy 4GL został wprowadzony po raz pierwszy, odmienna mieszanka sprzętu i systemów operacyjnych nakazywała obsługę tworzenia niestandardowych aplikacji, która była specyficzna dla systemu w celu zapewnienia sprzedaży. Jednym z przykładów jest system MAPPER opracowany przez Sperry . Choć ma korzenie od początków, system sprawdził się w wielu aplikacjach i został przeniesiony na nowoczesne platformy. Najnowszy wariant jest osadzony w ofercie BIS firmy Unisys . MARK-IV jest teraz znany jako VISION:BUILDER i jest oferowany przez Computer Associates .

Firma kolejowa Santa Fe wykorzystała MAPPER do opracowania systemu w projekcie, który był wczesnym przykładem 4GL, szybkiego prototypowania i programowania przez użytkowników . Pomysł polegał na tym, że łatwiej było nauczyć ekspertów kolejowych korzystania z MAPPER niż uczyć programistów „zawiłości operacji kolejowych”.

Jednym z wczesnych (i przenośnych) języków, które miały właściwości 4GL, był Ramis opracowany przez Geralda C. Cohena w Mathematica , firmie zajmującej się oprogramowaniem matematycznym. Cohen opuścił Mathematica i założył firmę Information Builders, aby stworzyć podobny 4GL zorientowany na raportowanie, zwany FOCUS .

Późniejsze typy 4GL są powiązane z systemem baz danych i znacznie różnią się od wcześniejszych typów pod względem wykorzystania technik i zasobów, które wynikały z ogólnego ulepszania obliczeń w czasie.

Ciekawym zwrotem akcji na scenie 4GL jest uświadomienie sobie, że interfejsy graficzne i związane z nimi rozumowanie wykonywane przez użytkownika tworzą „język”, który jest słabo rozumiany.

Rodzaje

Istnieje kilka różnych typów 4GL:

  • Programowanie oparte na tabelach (bezkodowe), zwykle działające z frameworkiem i bibliotekami środowiska uruchomieniowego. Zamiast używać kodu, programista definiuje swoją logikę, wybierając operację ze wstępnie zdefiniowanej listy poleceń manipulacji pamięcią lub tabelą danych. Innymi słowy, zamiast kodować, programista używa algorytmów opartych na tablicach (zobacz także tablice sterujące, które można w tym celu wykorzystać). Dobrym przykładem tego typu języka 4GL jest PowerBuilder . Tego typu narzędzia mogą być wykorzystywane do tworzenia aplikacji biznesowych zwykle składających się z pakietu pozwalającego zarówno na manipulację danymi biznesowymi, jak i raportowanie, dlatego są wyposażone w ekrany GUI i edytory raportów. Zwykle oferują integrację z bibliotekami DLL niższego poziomu generowanymi z typowego 3GL, gdy zajdzie potrzeba większej liczby operacji specyficznych dla sprzętu/systemu operacyjnego.
  • Języki programowania generatora raportów pobierają opis formatu danych i raportu do wygenerowania, a następnie generują wymagany raport bezpośrednio lub generują program do generowania raportu. Zobacz także RPG
  • Podobnie generatory formularzy zarządzają interakcjami online z użytkownikami systemu aplikacji lub generują w tym celu programy.
  • Bardziej ambitne 4GL (czasami nazywane środowiskami czwartej generacji ) próbują automatycznie generować całe systemy z wyników narzędzi CASE , specyfikacji ekranów i raportów, a być może także specyfikacji dodatkowej logiki przetwarzania.
  • Zarządzanie danymi 4GLs, takie jak SAS , SPSS i Stata, zapewniają zaawansowane polecenia kodowania do manipulacji danymi, przekształcania plików, wyboru przypadków i dokumentacji danych podczas przygotowywania danych do analizy statystycznej i raportowania.
  • Tak zwane języki „XTalk”, opracowane początkowo wraz z Hypercard firmy Apple w 1987 roku. Hypercard był protoplastą bardziej nowoczesnych i zaawansowanych programów, takich jak SuperCard, Toolbook i LiveCode.

Niektóre 4GL mają zintegrowane narzędzia, które pozwalają na łatwą specyfikację wszystkich wymaganych informacji:

Środowiska o niskim kodzie

W XXI wieku systemy 4GL pojawiły się jako środowiska „low code” lub platformy dla problemu szybkiego rozwoju aplikacji w krótkich okresach czasu. Sprzedawcy często dostarczają przykładowe systemy, takie jak CRM, zarządzanie umowami, śledzenie błędów, z których rozwój może nastąpić przy niewielkiej ilości programowania.

Przykłady

Ogólne zastosowanie/wszechstronność

Języki zapytań do bazy danych

Generatory raportów

Wyodrębnianie danych z plików lub bazy danych w celu tworzenia raportów w szerokim zakresie formatów odbywa się za pomocą narzędzi generatora raportów.

Języki manipulacji danymi, analizy i raportowania

Twórcy oprogramowania

Optymalizacja matematyczna

Tworzenie aplikacji GUI opartej na bazie danych

Niski kod / Brak platform do tworzenia kodu

Malarze ekranowi i generatory

Języki tworzenia stron internetowych

Zobacz też

Bibliografia