Az OpenEdge Advanced Business Language, vagy röviden OpenEdge ABL (korábban Progress 4GL) egy üzleti alkalmazásfejlesztő nyelv, melyet a Progress Software Corporation (PSC) hozott létre és tart karban. A nyelv osztálya tipikusan egy negyedik generációs programozási nyelv, amely angolhoz hasonló v. angol-szerű szintaxist használ a szoftver fejlesztés leegyszerűsítésére.Campbell, John, Programmer's Progress, a guide to the progress language. white star software, 1991 A nyelvet PROGRESS-nek vagy Progress 4GL-nek hívták a 10.0-s verzió kiadása előtt, de a PSC 2006-ban a OpenEdge Advanced Business Language-re (OpenEdge ABL) változtatta, azért, hogy leküzdjék azt az ipari feltételezést, mi szerint a 4GL-es nyelvek rosszabb képességekkel rendelkeznek, mint más nyelvek.Salvador Vinals, Introducing OpenEdge Advanced Business Language (ABL), PSC whitepaper, 2007 A nyelv egy részhalmazát SpeedScript-nek hívják és web alkalmazás fejlesztésre használják.Crawford, G. WebSpeed Complete, Innov8 Computer Solutions,

Az OpenEdge ABL segít a fejlesztőknek az alkalmazás fejlesztésben, opcionálisan használva a saját integrált relációs adatbázisát és programozási eszközeit. Ezek az alkalmazások hordozhatók a számítógépes rendszerek között és lehetővé teszik számos népszerű adatforrás elérését az adatelérés módjának ismerete nélkül. Ez azt jelenti, hogy ezen termékek végfelhasználójának nem kell tudatában lennie a mögöttes architektúrának.

A negyedik generációs nyelv és a relációs adatbázis kombinációjával az OpenEdge ABL lehetővé teszi a gyors alkalmazásfejlesztés modell használatát a szoftverfejlesztésben. A fejlesztő, de még a végfelhasználó is tud készíteni egy gyors prototípust az integrált fejlesztő környezet és GUI eszközök használatával.

Verziótörténet Kiadás dátuma Verzió Megjegyzések1984 Első kereskedelmi kiadás19895-ös verzió19906-os verzió 19937-es verzió 19958-as verzió 19989-es verzió 2002. december 10Progress Dynamics 2.0 bejelentették az OpenEdge üzleti platform alkalmazás környezetétProgress Dynamics 2.0 announced2004. február 17.OpenEdge 10 bejelentéseOpenEdge 10 announcement2005OpenEdge Studio csomagok:Progress OpenEdge Studio Progress Version 9 Progress WebClient Progress Dynamics Version 2.1 2006. február 8.OpenEdge 10.1 bejelentették az ABL objektumorientált kiterjesztését, és egy új auditing szolgáltatástOpenEdge 10.1 announcement2007. február 13.OpenEdge 10.1b bejelentették, hogy támogatást adnak a 64 bites adatformátumokhozOpenEdge 10.1b announcement2008. április 15.OpenEdge 10.1c bejelentették az első üzleti alkalmazás fejlesztő platformot, amelyik támogatja az IPv6-tOpenEdge 10.1c announcement2008. november 3.OpenEdge 10.2A bejelentették az új OpenEdge GUI-t a .NET-hez, mely lehetővé teszi a fejlesztők számára, hogy modern WinForms-stílusú UI-t készítsenek anélkül, hogy elhagynák az OpenEdge környezetet.2009. decemberOpenEdge 10.2B kiadás javított OpenEdge GUI .Net integrációt és további online adatbázis funkciókat nyújt.2011. decemberOpenEdge 11.0 kiadásbevezette a patent-pending multi-tenancy, multi-Cloud fejlesztési opciókat és a kiterjesztett platform támogatást.2012. júniusOpenEdge 11.1 kiadás teljesítményi és hatékonysági eszközöket nyújtott a SaaS (software as a service) és Cloud alkalmazások fejlesztéséhez. Továbbá erősebb biztonságot nyújtott párosulva a leegyszerűsített felhasználói autentikációval. 2013. februárOpenEdge 11.2 kiadás továbbfejlesztett mobilitási képességeket nyújtott: vizuális tervezés és UI eszköztár telefon- és táblagépalkalmazásokhoz, REST támogatás az OpenEdge alkalmazásszerverhez, JavaScript Data Binding támogató könyvtárak, és "írd meg egyszer, futtasd bárhol" támogatás iOS-hoz és Androidhoz; 2013 nyárOpenEdge 11.3 kiadás2014. augusztusOpenEdge 11.4 kiadás tartalmazott horizontális táblaparticionálást és ABL unit tesztelést.2014. december 17.OpenEdge 11.5 kiadás tartalmazza a Pacific Application Server for OpenEdge-t.2015. október 26.OpenEdge 11.6 kiadás Progress alkalmazáskiszolgálóba épített WebSpeedet tartalmaz2017. március 31.OpenEdge 11.7 kiadás CDC-t és autentikációs átjárót tartalmaz

Szintaxis és szemantika A Progress ABL egy erősen típusos, késői kötésű angol-szerű programozási nyelv. Habár eredetileg procedurális nyelvnek tervezték, a 10.1-es verzióval kezdődően kiegészítették objektumorientált nyelvtani elemekkel is, amely keverhető az eredeti procedurális stílussal. A kód egy blokkja lehet tranzakciós scope-ú is, ebben az esetben az adatbázis-változások akkor lesznek jóváhagyva, amikor a blokk befejeződik. Amennyiben hiba dobódik egy ilyen blokkba, akkor a változások visszavonásra kerülnek. Ezt a beépített funkcionalitást a fejlesztő felüldefiniálhatja.

Az egyszerű programok GUI nélkül futnak, de lehetőség van GUI-s alkalmazás létrehozására is a mellékelt eszközök segítségével.

Példák

Hello világ

A következő ABL-kód egy ablakot készít „Hello, világ!” felirattal, és azon egy „OK”-gombot. DEFINE VARIABLE ablak AS HANDLE NO-UNDO.

CREATE WINDOW ablak ASSIGN WIDTH = 50 HEIGHT = 5 MESSAGE-AREA = FALSE STATUS-AREA = FALSE.

CURRENT-WINDOW = ablak.

DEFINE BUTTON gomb LABEL "OK" SIZE 12 BY 1.2. FORM "Hello világ!" VIEW-AS TEXT AT COL 20 ROW 2 gomb AT COL 20 ROW 4 WITH FRAME keret SIZE 50 BY 5 NO-BOX THREE-D.

VIEW FRAME keret. ENABLE gomb WITH FRAME keret. WAIT-FOR "CHOOSE" OF gomb. DELETE OBJECT ablak.

Ugyanezt eredményezi egy „message-box” kirakása is: MESSAGE "Hello világ!" VIEW-AS ALERT-BOX INFO BUTTONS OK.

Az ERROR vagy a WARNING használata az INFO helyett megváltoztatja a üzenethez tartozó ikont.

A legegyszerűbb „Hello, világ” program, a következő: DISPLAY "Hello világ!".

Az SQL-es SELECT ekvivalense

Az SQL-utasítás: SELECT * FROM vevo;

Ugyanez Progress/ABL-kifejezéssel: FOR EACH vevo NO-LOCK: DISPLAY vevo. END.

Az SQL-es UPDATE ekvivalense

Az SQL-utasítás: UPDATE vevo SET uzletkoto = 'Kovács István' WHERE vevokod = 14;

Ugyanez Progress/ABL-kifejezéssel: FOR vevo WHERE vevo.vevokod = 14 EXCLUSIVE-LOCK: ASSIGN vevo.uzletkoto = 'Kovács István'. END.

Jegyzetek

További információk

Sadd, J. OpenEdge Development: Progress 4GL Handbook, Progress Software Corporation, , Kassabgi, G. Special Edition : Using Progress, Que Publishing,

Fordítás

Kategória:Objektumorientált programozási nyelvek