Komponenta Pascal
Component Pascal je programovací jazyk s komponentně orientovaným programovacím paradigmatem . Na základě jazyka Oberon-2 od Oberon microsystems , Inc. Je přímým potomkem jazyka Pascal [2] .
Syntaxe jazyka
Hlavní vylepšení Component Pascal ve srovnání s Oberon-2 se týkají následujícího:
- Hlavní myšlenkou vylepšení z Oberonu 2 bylo poskytnout návrháři rámce komponent (tj. rozhraní modulů, která definují abstraktní třídy pro určitou problémovou oblast) větší kontrolu nad jeho konstrukčními vlastnostmi z hlediska bezpečnosti [3] . Pro typy (ABSTRACT, EXTENSIBLE, LIMITED) [1] a metody (ABSTRACT, EMPTY, EXTENSIBLE) [1] byly zavedeny speciální atributy , které umožňují za prvé staticky řídit konzistenci hierarchií dědičnosti a tím v podstatě obnovit princip totální statické psaní. Za druhé, autor programové komponenty (skupiny modulů) nyní může povolit nebo zakázat klientským modulům rozšiřovat typy, které nabízejí.
- Oberonův poněkud zastaralý základní typový systém byl modernizován: Základní typová sada Component Pascal je nyní nadmnožinou [4] základních typů jazyka Java . Hlavní „pracovní“ typy INTEGER, REAL a CHAR odpovídají 32-, 64- (tzv. double precision) a 16- ( Unicode )-bitovým proměnným, což ve většině případů snižuje rozmanitost skutečně používaných základních typů; použití jiných typů (LONGINT, SHORTREAL, SHORTCHAR atd.) je omezeno na speciální aplikace.
- Přibyly základní nástroje pro práci s řetězci znaků (implicitní typ String), což spolu se standardním modulem Strings v programovacím systému BlackBox dělá Component Pascal pro práci s řetězci pohodlnějším než Pascal nebo klasický Oberon. Řetězce znaků jsou reprezentovány poli znaků ( ARRAY OF CHAR nebo ARRAY OF SHORTCHAR ), přičemž za hodnotu je považována posloupnost znaků až do prvního výskytu speciálního oddělovacího znaku 0X . Řetězce znaků lze porovnávat (myšleno lexikografické srovnání) a sčítat (zřetězení). Konstrukce a := b$ umožňuje zkopírovat řetězec uložený v poli znaků b ( včetně oddělovacího znaku 0X ) do pole znaků a, i když je přiřazení a := b zakázáno (např. různé délky polí aab ) .
Úplný popis syntaxe jazyka v rozšířené formě Backus-Naur je uveden na stránkách Component Pascal Communications [1] . Obsahuje 34 gramatických výrazů, což je jen o jeden více než Oberon-2 .
Implementace kompilátoru pro Component Pascal
BlackBox Component Builder
Vývojové prostředí BlackBox Component Builder (Blackbox) bylo vyvinuto společností Oberon microsystems Inc. (Švýcarsko) a je k dispozici ve stabilní verzi pro OS Microsoft Windows , v alfa verzi - pro OS založené na GNU/Linux ( Debian , Ubuntu ), stejně jako FreeBSD a OpenBSD . Blackbox je vydán pod licencí BSD-2-Clause . Vývojové prostředí obsahuje: textový editor zdrojového kódu, kompilátor, runtime prostředí (zavaděč modulů, garbage collector), profiler, exe , dll , elf a tak kolektor, a také sadu hotových komponent pro rychlé vývoj aplikací (vytváření dialogových oken, interaktivní grafiky, složených dokumentů, ale i rozhraní pro přístup k WinApi, WinOle, COM; subsystém pro práci s databázemi, protokoly přenosu dat TCP / IP , V24 ). Verze pro Microsoft Windows je vhodná pro vývoj OLE . Kompilátor a rámec byly „vyleštěny“ od roku 1993 a v současné době[ kdy? ] je udržován a vyvíjen uživatelskou komunitou ( BlackBox Framework Center , OberonCore , cross-platformní sestavovací tým ). Distribuce obsahuje dokumentaci a sadu příkladů. Bylo vydáno několik návodů věnovaných práci s Blackboxem. Blackbox plně podporuje Unicode , včetně (v posledních verzích) Unicode identifikátorů pro moduly, procedury, konstanty, typy a proměnné.
Zahrady Point Component Pascal
Gardens Point Component Pascal [5] [6] [7] je další kompilátor pro jazyk Component Pascal, vytvořený na australské Queensland University of Technology [8] (zaměstnání spoluzakladatele Oberon microsystems Clemense Shiperskyho, než přešel do Microsoft Research) . Existují omezení: žádné ukazatele funkcí a žádný přístup k nelokálním proměnným ve vnořených procedurách [9] . Kompilátor gpcp Queensland University of Technology má verzi jak pro prostředí .NET , tak pro Java Virtual Machine ( JVM ) [10] . Kompilátor je napsán v Component Pascal [9] . Zde byl Component Pascal integrován do Visual Studia [11] a do multiplatformního vývojového prostředí Eclipse [11] .
Poznámky
- ↑ 1 2 3 4 Zpráva o jazyce Component Pascal (downlink) . Získáno 21. srpna 2012. Archivováno z originálu 16. srpna 2012. (neurčitý)
- ↑ Řetězec dědičnosti: Pascal → Modula → Modula-2 → Oberon → Oberon-2 → Komponentní Pascal
- ↑ Tkachev F.V. Stručná historie Pascalu archivována 12. března 2013 na Wayback Machine // PC WORLD. Disk. 2005, s. 2–5.
- ↑ The Evolution of Oberon-2 to Component Pascal (Oberon Microsystems Technical Report) (2001), sekce "Specifikované domény typů" . Získáno 25. srpna 2012. Archivováno z originálu 12. března 2013. (neurčitý)
- ↑ Gough KJ Stacking them up: srovnání virtuálních strojů // Proceedings 6th Australasian Computer Systems Architecture Conference. ACSAC 2001. Výpočet IEEE. soc. S. 55-61.
- ↑ Gough KJ Předávání parametrů pro virtuální stroj Java // Proceedings 23rd Australasian Computer Science Conference. ACSC 2000 (kat. č. PR00518). IEEE výpočetní. soc. S. 81-87.
- ↑ Gough J. Virtuální stroje, řízený kód a technologie komponent // 2005 Australian Software Engineering Conference. eee. S. 5-12.
- ↑ Component Pascal na .NET (downlink) . Získáno 1. února 2011. Archivováno z originálu 18. února 2011. (neurčitý)
- ↑ 1 2 John Gough, Queensland University of Technology. .NET Runtime jako cíl kompilátoru (odkaz není dostupný) . Získáno 2. února 2011. Archivováno z originálu 16. února 2011. (neurčitý)
- ↑ Stáhněte si komponentu Gardens Point Pascal (downlink) . Získáno 2. února 2011. Archivováno z originálu 20. srpna 2006. (neurčitý)
- ↑ 1 2 Component Pascal pro IDE (downlink) . Získáno 1. února 2011. Archivováno z originálu 18. února 2011. (neurčitý)
Literatura
Odkazy