Projekt přístavu | |
---|---|
Typ | programovací jazyk , procedurální programovací jazyk , deklarativní programovací jazyk a multiparadigmatický programovací jazyk |
První vydání | 1999 |
webová stránka | harbor.github.io |
přístav | |
---|---|
Jazyková třída | imperativní , strukturovaný , objektově orientovaný |
Objevil se v | 1999 |
Autor | Antonio Linares |
Vývojář | Przemyslaw Czerpak, Viktor Szakáts a komunita |
Uvolnění | 3.0.0 |
Testovací verze | 3.2.x k dispozici od SVN |
Typový systém | volitelný implicitní , dynamický , chráněný , částečně přísný |
Dialekty | Clipper , Xbase++ , vlajková loď, FoxPro , xHarbour |
Byl ovlivněn | dBase , Clipper |
ovlivnil | xPřístav |
Licence | Open source kompatibilní s GPL |
webová stránka | harbor.github.io |
Harbor je programovací jazyk a multiplatformní kompilátor s preprocesorem , který je plně kompatibilní s Clipper . Umožňuje vytvářet 16-, 32- a 64bitové aplikace pro DOS , Windows , Unix / Linux , OS/2 , Mac OS X , Windows CE , BSD , Pocket PC , Symbian , iOS , QNX , VxWorks , eComStation , Haiku / BeOS , AIX . Harbor je svobodný software .
Kromě práce s lokálně umístěnými daty vám Harbor umožňuje pracovat s daty jak v režimu „souborový server“, tak v režimu klient-server (včetně režimu dotazů na vzdálený systém správy databází, který podporuje SQL ).
Jazyk využívá tradiční konstrukce Clipper, objektovou notaci C++ a aktivně se vyvíjí schopnost psát v C. Harbor a do jazyka jsou začleňovány některé moderní programovací technologie.
xHarbour ( angl. extend Harbor ) - pobočka projektu Harbour, existuje jak v komerční, tak ve volné verzi.
Existují knihovny GUI , komerční i bezplatné (zejména MiniGUI pro Windows ; HwGUI [1] pro Windows a GNU/ Linux ).
Harbor je šířen pod svobodnou licencí , podobnou GNU General Public License , s tím rozdílem, že na Harboru je možné volně vyvíjet a distribuovat komerční aplikace (jako příklad replikovaného komerčního softwaru - BEST-4+ System for Accounting and Enterprise Management [2] ). Viz také na konci článku Replikovatelný software napsaný v Harboru .
Zakladatelem projektu je španělský programátor Antonio Linares ( španělsky: Antonio Linares ). Nejprve zveřejnil „myšlenky ve vzduchu“ o přizpůsobení softwaru Clipper nové realitě, čímž zahájil diskusi, která vedla k vytvoření Harbor, ve skupině Comp.lang.clipper Usenet 16. března 1999 [2] . Jméno Harbor ( rusky zátoka, přístav ) navrhl Linares pro shodnost „námořního kontextu“ se jménem kompilátoru Clipper ( rusky clipper ) (ve smyslu „bezpečný přístav pro klipera“). Ve stejném roce 1999 vyšla skupina vývojářů, mezi nimiž kromě Linares, zejména Ryszarda Glaba ( polsky Ryszard Glab ), vyšly první verze kompilátoru.
V roce 2009 byl Harbour hluboce přepracován mezinárodní komunitou vývojářů v čele s Viktorem Szakátsem ( maďarsky Viktor Szakáts ) a Przemysławem Czerpakem ( polsky: Przemysław Czerpak ), od roku 2021 probíhá aktivní vývoj a vývoj, existují mezinárodní i jazykové -orientované komunity vývojářů a uživatelů (ruština, španělština, portugalština, italština a další jazyky).
V současné době jsou pomocí Harboru vytvářeny bezplatné i komerční aplikace.
Harbor rozšiřuje možnosti databázových ovladačů používaných v Clipperu (RDD, eng. Replaceable Database Drivers ). Podporuje tradiční Clipper RDD jako DBF , DBFNTX, DBFCDX, DBFDBT a DBFFPT. V Harboru můžete v jedné aplikaci používat různé ovladače (například přebírat data z tradiční databáze Clipper ve formátu DBFNTX a zapisovat je ve formátu FoxPro - DBFCDX), stejně jako vytvářet nové („logické“) RDD z kombinace několik stávajících. Architektura RDD umožňuje dědičnost, to znamená, že nový ovladač může využívat funkčnost stávajících. Nejoblíbenější ovladače třetích stran byly přepsány pro Harbor: RDDSQL, RDDSIX, RMDBFCDX, ADS ( Advantage Database Server ), Mediator . RDD jako NETIO a LetoDB [3] umožňují vzdálený přístup k databázím prostřednictvím protokolu TCP vytvářením webových aplikací, které fungují na serverové straně lokální sítě nebo webového serveru, s uživatelským přístupem k datům po síti pomocí libovolného internetového prohlížeče a libovolného operační systém.
Harbor využívá přístup k datům prostřednictvím technologií ODBC a ADO , byly vytvořeny speciální knihovny pro přístup k některým populárním DBMS : MySQL , PostgreSQL , SQLite , Firebird , Oracle Database , pomocí aplikačního programovacího rozhraní v jazyce
C.
V projektu Harbor se snaží zajistit multiplatformní na úrovni zdrojového kódu se specifickou kompilací pro každou platformu, podle konceptu ( napsáno jednou – zkompilováno všude ). Pokud existují vhodné kompilátory Harbor pro sadu operačních systémů, pak neexistuje žádná překážka pro vytváření identických programů pro všechny tyto platformy napsáním zdrojového kódu jednou, s výjimkou použití funkcí specifických pro různé operační systémy. Křížová kompilace je možná díky MinGW32 . Portování aplikace Clipper běžící pod DOSem na jiné platformy, jako je Linux nebo Windows Mobile , vyžaduje relativně malou adaptaci. . Velké množství programů, jejichž zdrojový kód byl dříve napsán pro práci s Xbase++ , Flagship[ upřesnit ] FoxPro , xHarbour a další dialekty xBase lze také snadno upravit pro kompilaci přes Harbor.
Harbor může používat mnoho kompilátorů C , zejména: GCC , MinGW , Clang , ICC , Microsoft Visual C++ (6.0+), Borland C++ , Watcom C , Pelles C a Sun Studio .
Project Harbor emuluje mnoho grafických terminálů, včetně ovladačů konzole, stejně jako hybridní konzolové grafiky, jako jsou GTWvt a GTWvg.
Harbor podporuje externí knihovny grafického uživatelského rozhraní , a to jak bezplatné (nejznámější jsou HWGui [1] , MiniGUI a Qt ), tak komerční (např. FiveWin nebo Xailer). Interakce s Qt se provádí prostřednictvím knihovny hbQt.
Vývojáři projektu tvrdí, že jazyk Harbor je 100% kompatibilní s Clipperem na úrovni zdrojového kódu [4] .
Jednou z nejvýkonnějších funkcí jazyků xBase je operátor makra '&'. Implementace příkazu makra v Harboru umožňuje vytvořit jakýkoli výraz platný v Harboru přímo v době provádění programu (run-time kompilace). Takto sestavený výraz lze použít jako hodnotu, tedy na pravé straně přiřazovacího operátoru (rvalue), ale také - což je zajímavější - také jako levou stranu přiřazovacího operátoru (lvalue), tedy jako PRIVATE nebo PUBLIC proměnnou. , nebo jako pole (FIELD) Databáze.
Kromě toho může příkaz makra kompilovat za běhu a provádět volání funkcí, provádět přiřazování hodnot nebo dokonce vytvářet seznam argumentů – a výsledek příkazu makra lze použít v libovolném ze specifikovaných kontextů v kompilovaném aplikačním programu. Jinými slovy, každá aplikace Harbor může za běhu změnit logiku své práce, vytvářet a spouštět potřebný kód „na vyžádání“.
Finální kompilátor maker může zkompilovat jakýkoli kód povolený v Harboru, včetně kódu preprocesoru zpracovaného před kompilací.
Syntaxe příkazu makra:
&(...)Textová hodnota výrazu v závorkách '…' bude zkompilována za běhu a výsledkem makra bude hodnota získaná jako výsledek provedení kompilovaného kódu.
&NěkteréIdje to kratší forma operátoru makra &(SomeId).
&SomeId.postfixtoto je kratší forma operátoru makra &(SomeId + "postfix").
Funkce poskytované operátorem maker výrazně zjednodušují programování.
Představme si například situaci, kdy má program do proměnné " data1 " načíst některá data z pole "FIELD1" jedné z četných dostupných databází (například adresářové databáze lišící se pouze jmény, ale strukturou identické) . Název zdrojové databáze zadává uživatel (nebo získá jiným způsobem) do proměnné " bd ".
Bez použití makrooperátoru bychom museli ve zdrojovém kódu programu popsat všechny možné hodnoty, které by proměnná „ bd “ mohla během činnosti programu obdržet , a popsat, jakou základnu v tomto konkrétním případě otevřít. - něco jako:
if bd == "BAZA1" použijte BAZA1 alias BAZASP nový endif if bd == "BAZA2" použijte BAZA2 alias BAZASP nový endif .... (a tolikrát, mnohokrát, pro všechny možné hodnoty) .... data1 := BAZASP->POLE1 ....V případě použití makrooperátoru nám stačí jednoduše napsat:
použijte &(bd) alias BAZASP nový data1 := BAZASP->POLE1a to je dost!... No, možná ještě před pokusem o otevření zkontrolujte existenci databáze s tímto názvem:
Pokud ne. soubor( bd + ".DBF") ? "Databáze s názvem " + bd + ".DBF nenalezena!" ... (a zde je řešení této situace - ... co by měl program nebo uživatel v tomto případě udělat) endifHarbor nevyžaduje další knihovny pro použití tříd, objektově orientované programování je zde součástí jazyka a Harbor poskytuje více funkcí než Clipper se všemi knihovnami třetích stran. [5]
Harbor – jako každý jazyk xBase – nerozlišuje velká a malá písmena (to znamená, že s příkazy nebo názvy proměnných se zachází stejně, když jsou napsány velkými nebo malými písmeny: například „sStr“, „sstr“ a „SStr“ jsou stejné proměnné; "DbCreate () " a "dbCREATE()" jsou stejné funkce) a obsahují možnost rozpoznat vyhrazená klíčová slova (například příkazy) podle prvních čtyř písmen (například místo příkazu "COPY STRUCTURE EXTENDED ... " můžete jednoduše napsat "COPY STRU EXTE ..." ).
Harbor má 6 skalárních datových typů: nic nula , řetězec String , datum datum , booleovský typ Logical , číslo Číslo , ukazatel ukazatele a 4 složené typy: pole Array , objekt Object , blok kódu CodeBlock a hash Hash . Skalární data obsahují jednu hodnotu, jako je řetězec, číslo nebo odkaz na proměnnou jakéhokoli jiného typu. Pole jsou uspořádané seznamy skalárních nebo složených hodnot (to znamená, že prvek pole může být jiné pole a jeho prvek může být jiný atd.), indexované podle čísla počínaje 1 (a ne od 0, jako v některých případech). jiné jazyky). Hashovací tabulky nebo asociativní pole jsou neuspořádané kolekce hodnot jakéhokoli typu, indexované klíčem spojeným s každou hodnotou, který může být jakéhokoli skalárního nebo složeného typu.
Doslovná (statická) reprezentace skalárních typů:
Složené typy lze také reprezentovat jako doslovné hodnoty:
V hašovacích tabulkách lze hodnotu libovolného typu použít jako klíč pro jakýkoli prvek, včetně jiné hašovací tabulky. Hashovací tabulky a pole mohou obsahovat libovolný typ hodnoty jako hodnotu libovolného prvku, včetně vnořených polí a hashovacích tabulek.
Bloky kódu mohou obsahovat odkazy na proměnné procedury, funkce nebo metody, ve které je blok kódu definován. Takové bloky kódu mohou být vráceny jako hodnota nebo jako argument předaný odkazem; v tomto případě blok kódu "přežije" podprogram, ve kterém je definován, a všechny proměnné, na které odkazuje, budou "odpojené" proměnné.
Odpojené proměnné si uchovávají svou hodnotu, dokud existuje blok kódu, který na ně odkazuje. Tyto hodnoty budou společné pro všechny bloky kódu, které mají přístup ke stejným proměnným. Pokud blok kódu nepřežije svůj obsahující podprogram a je vyhodnocen během životnosti podprogramu, ve kterém je definován, změny jeho oddělených proměnných způsobené jeho vyhodnocením se projeví v tomto podprogramu.
Blok kódu lze vyhodnotit neomezeně mnohokrát pomocí funkce Eval( Code Block ).
Leto DB Server (letodb) je 32/64bitový multiplatformní databázový server primárně určený pro klientské programy napsané v jazyce Harbor pro přístup k souborům ve formátu dbf . Projekt Letodb začal v roce 2008 , jeho autorem je Alexander Kresin [6] . V roce 2011 byl Letodb výrazně vylepšen a nadále je vylepšován vývojářskou komunitou, vývoj je koordinován prostřednictvím stránky projektu LetoDB [3] .
Letodb je vysoce výkonný relační DBMS s architekturou klient-server pro síťové, samostatné (lokální) a internetové databázové aplikace. Jedná se o software s otevřeným zdrojovým kódem , vyvinutý pod licencí GPL , která dává právo na jeho bezplatné používání. Výhodou letodb je kombinace tradičního přístupu k databázi xBase a technologie klient-server. Server letodb je zodpovědný za veškerý přístup k databázi (jménem klientů). S optimalizovanou metodikou přístupu k datům zajišťuje Letodb bezpečnost, stabilitu a integritu dat s minimálními požadavky na údržbu.
Databázový server Letodb zlepšuje výkon webové databáze. Letodb ukládá většinu práce, kterou obvykle provádí každá klientská pracovní stanice. Při práci se sítí letodb zpracovává požadavky na data a vrací informace klientům v síti. Databázový server letodb využívá architekturu klient-server, která zlepšuje prostředí pro více uživatelů, stabilitu databáze a zabezpečení databáze. Server letodb podporuje transakce . Zároveň je zaručeno, že komplexní operace aktualizace databáze bude dokončena v celém rozsahu. Je také možné vytvořit serverové procedury, které jsou volány z klienta a spouštěny na serveru.
Server Letodb (server i klient) lze použít pro operační systémy MS Windows , Linux a MacOS . Pro MS Windows jsou podporovány operační systémy Windows 98/ME, Windows NT/2000/2003, Windows XP 32/64 bit, Windows Vista 32/64 a Windows 7 32/64 bit.
Pod MS Windows běží letodb server jako služba, ale je možné jej postavit jako aplikaci. Pro celou řadu bitových OS Windows: od Windows 98 po Windows 7 se používá stejná serverová sestava. Pod operačním systémem Linux běží server letodb jako démon . Pro různé verze Linuxu musí být server letodb zpravidla sestaven pro každou zvlášť. Server letodb (jako Harbour) přichází se zdrojovým kódem a pravidly sestavování. Server letodb se snadno nastavuje: stačí zadat složku, kde jsou umístěny databáze, a některá další nastavení. Server letodb nevyžaduje během provozu žádnou speciální údržbu. Letodb se připojuje ke klientským aplikacím pomocí protokolu TCP/IP . Ve výchozím nastavení se používá port 2812, i když je možné pracovat přes jiný port. Připojení k serveru je možné jak prostřednictvím lokální sítě, tak prostřednictvím sítě Internet a intranet.
Server letodb poskytuje zabezpečení přístupu k datům. Je možné povolit režim šifrování přenášeného provozu . Existují také nástroje pro autorizaci uživatelů. V tomto případě bude server letodb obsluhovat pouze ta připojení, která specifikují parametry autorizace: uživatelské jméno a heslo. Uživatelům lze nastavit práva ke správě serveru, ke správě serveru a také právo na změnu údajů.
Klient letodb je knihovna, která obsahuje ovladač letodb pro Harbor, modul rdd, který splňuje standard pro náhradní ovladače jazykové databáze Harbor, které jsou kompatibilní s ovladači dbfcdx/dbfntx a podporují jejich základní funkce. Klientská knihovna letodb dále obsahuje sadu funkcí pro správu a administraci serveru letodb, funkce pro práci s transakcemi a sadu doplňkových funkcí pro optimalizaci práce s databází. Klientská knihovna letodb umožňuje sestavit aplikaci, která pracuje se serverem letodb, a to jak pro MS Windows, tak pro Linux. Klientská aplikace může pracovat v heterogenní síti, která využívá servery letodb s různými operačními systémy: MS Windows i Linux.
Ke konfiguraci klientské aplikace stačí zadat IP adresu nebo název počítače, na kterém běží server letodb, číslo použitého portu a složky na serveru, kde je databáze umístěna. Pro práci s databází není nutné otevírat síťové zdroje.
Přístup k různým metadatům (šablony dokumentů, skripty , sestavy) se také neprovádí prostřednictvím souborových operací, ale prostřednictvím požadavků na server letodb. Aplikace pomocí klientské knihovny letodb je možné připojit ke vzdáleným databázím přes internet a intranet .
Pro správu serveru je k dispozici samostatný nástroj, který lze spustit jak na klientovi, tak na počítači, na kterém běží server. Pomocí tohoto nástroje můžete zobrazit všechny klientské aplikace, které se připojily k serveru letodb, a také otevřít databázové tabulky. V případě potřeby je možné připojení spravovat (zakázat).
Seznam zahrnuje vývoj (komerční i bezplatný) replikovaného softwaru napsaného pomocí Harbor (xHarbour).
StůlStav (C = komerční, open source = zdarma, open source = open source) |
název | Rok zahájení dodávky | Oblast použití | Vývojář, země |
Posouzení | Co z přístavu a související se používá |
---|---|---|---|---|---|---|
Na | Systém pro účetnictví a řízení podniku "BEST - 4+" | 2010 | účetnictví | Společnost "BEST" , Rusko |
Přehled na webu společnosti | Přístav, Leto DB |
SPO | Softwarový komplex "BARS-Budget" | 2010 | účetnictví | Skupina společností "BARS Group" , Rusko |
BARS-Group : Rozpočtové účetnictví pro SPO | Přístav, Leto DB |
Na | Analýza hospodářské činnosti nemocnice pro CHI | 2008 | lék | MIAC (Sverdlovská oblast) , Rusko |
Přístav, MiniGUI Ext. | |
Na | "AS Poliklinika" (modul "Vyhledávání podle předpisu", podmodul "Export do Excelu") | 2008 | lék | MIAC (Sverdlovská oblast) , Rusko |
Přístav, MiniGUI Ext. | |
Na | Skladový účetní a analytický systém "BOOK" | na trhu od roku 1994 (Harbour - od ? roku) | účetnictví | Lukashevsky A. A. , Rusko |
Přehled na webu | přístav, + ? |
GRO | Univerzální komplexní informační systém pro účetnictví a analýzu průmyslových a obchodních malých podniků. "KIS Lack" a "US Land" | 2008 (od roku 2009 - OPO) | účetnictví | A. N. Žukov , Rusko |
webová stránka | přístav, + ? |
? | Hodnocení efektivnosti financování investičních projektů | 2011? | analytiky | Státní vědecká instituce Severokavkazský výzkumný ústav mechanizace a elektrifikace zemědělství Ruské akademie zemědělských věd, Rusko |
Recenze webu Archivováno 4. března 2016 na Wayback Machine | xHarbour, MiniGUI |
Na | Systém vyhledávání informací pro registraci občanů, kteří potřebují lepší podmínky bydlení a poskytování bytových prostor v okrese Dmitrovsky - "Účetnictví bydlení" okres Dmitrovsky (Moskevská oblast) | 1996 (přístav - od roku 2003) |
obecní účetnictví | Verčenko A. G., Rusko |
xPřístav | |
Na | Systém vyhledávání informací pro registraci občanů, kteří potřebují lepší podmínky bydlení a poskytování bytových prostor ve venkovských oblastech v okrese Dmitrovsky - „Účtování o bydlení ve venkovských oblastech“ Dmitrovsky okres (Moskevská oblast) | 2006 | obecní účetnictví | Verčenko A. G., Rusko |
xPřístav | |
Na | Systém vyhledávání informací pro účtování privatizovaného bytového fondu v okrese Dmitrovsky - "Privatizace bydlení" Okres Dmitrovsky (Moskevská oblast) | 2000 (přístav - od roku 2003) |
obecní účetnictví | Verčenko A. G., Rusko |
xPřístav | |
Na | Automatizovaný systém pro sledování provádění příchozích a odchozích dokumentů a jejich evidenci - "Kontrola" Dmitrovsky okres (Moskevská oblast) | 2000 (přístav - od roku 2003) |
obecní účetnictví | Verčenko A. G., Rusko |
xPřístav | |
Na | Informační a výpočetní systém pro sumarizaci rozložení obytné plochy, zařazení občanů do fronty, distribuci atd. v okrese Dmitrovsky - "Help-analýza" okres Dmitrovsky (Moskevská oblast) | 2003 | obecní účetnictví | Verčenko A. G., Rusko |
xPřístav | |
Na | Vypořádací systém pro vyhledávání informací "Subscriber4" pro automatizaci účtování údržby interkomů a video systémů | 1999 (přístav - od roku 2003) |
Vedení účetnictví, vedení účetnictví | Verčenko A. G., Rusko |
Přehled na webu | xHarbour, MiniGUI Ext. |
programovací jazyk xbase | |
---|---|
Implementace |
|
Rámce |
|
IDE | |
Nástroje |
|