Komponent Pascal
Komponent Pascal är ett programmeringsspråk med ett komponentorienterat programmeringsparadigm . Baserat på Oberon-2- språket av Oberon microsystems , Inc. Det är en direkt ättling till pascalspråket [2] .
Syntax för språket
De viktigaste förfiningarna av Component Pascal jämfört med Oberon-2 gäller följande:
- Huvudtanken bakom förfiningarna från Oberon 2 var att ge designern av komponentramverket (d.v.s. modulgränssnitt som definierar abstrakta klasser för ett visst problemområde) större kontroll över dess designegenskaper när det gäller säkerhet [3] . Särskilda attribut har införts för typer (ABSTRAKT, UTÖKNING, BEGRÄNSAD) [1] och metoder (ABSTRAKT, TOM, UTÖKNING) [1] , som för det första gör det möjligt att statiskt kontrollera konsistensen av arvshierarkier och därigenom i huvudsak återställa principen om total statisk typning. För det andra kan författaren till en programkomponent (en grupp av moduler) nu tillåta eller förbjuda klientmoduler att utöka de typer de erbjuder.
- Oberons något föråldrade bastypsystem har moderniserats: Komponent Pascals bastypuppsättning är nu en superset [4] av Java - språkets bastyper . De huvudsakliga "arbetande" typerna INTEGER, REAL och CHAR motsvarar 32-, 64- (så kallad dubbel precision) och 16- ( Unicode )-bitarsvariabler, vilket minskar mängden bastyper som faktiskt används i de flesta fall; användningen av andra typer (LONGINT, SHORTREAL, SHORTCHAR, etc.) är begränsad till speciella tillämpningar.
- Grundläggande verktyg för att arbeta med teckensträngar (implicit strängtyp) har lagts till, vilket tillsammans med standardmodulen Strings i programmeringssystemet BlackBox gör Component Pascal bekvämare än Pascal eller klassisk Oberon för att arbeta med strängar. Teckensträngar representeras av arrayer av tecken ( ARRAY OF CHAR eller ARRAY OF SHORTCHAR ), där värdet anses vara sekvensen av tecken fram till den första förekomsten av det speciella avgränsningstecknet 0X . Teckensträngar kan jämföras (vilket betyder lexikografisk jämförelse) och läggas ihop (sammansättning). Konstruktionen a := b$ låter dig kopiera strängen som är lagrad i teckenuppsättningen b ( inklusive avgränsningstecknet 0X ) till uppsättningen av tecken a, även om tilldelningen a := b är förbjuden (t.ex. p.g.a. de olika längderna av arrayerna a och b ).
En fullständig beskrivning av språkets syntax i utökad Backus-Naur-form finns på sidorna Component Pascal Communications [1] . Den innehåller 34 grammatiska uttryck, vilket bara är ett mer än Oberon-2 .
Kompilatorimplementeringar för komponent Pascal
BlackBox Component Builder
BlackBox Component Builder- utvecklingsmiljön (Blackbox) utvecklades av Oberon microsystems Inc. (Schweiz) och finns tillgänglig i en stabil version för Microsoft Windows OS , i alfaversion - för OS baserat på GNU/Linux ( Debian , Ubuntu ), samt FreeBSD och OpenBSD . Blackbox släpps under licensen BSD-2-klausul . Utvecklingsmiljön inkluderar: en textredigerare för källkod, en kompilator, en runtime-miljö (modulladdare, sopsamlare), en profilerare, en exe , dll , elf och så samlare, samt en uppsättning färdiga komponenter för snabb applikationsutveckling (skapa dialogrutor, interaktiv grafik, sammansatta dokument, samt ett gränssnitt för åtkomst till WinApi, WinOle, COM; ett undersystem för att arbeta med databaser, dataöverföringsprotokoll TCP / IP , V24 ). Microsoft Windows-versionen är väl lämpad för OLE- utveckling . Kompilatorn och ramverket har "polerats" sedan 1993, och för tillfället[ när? ] underhålls och utvecklas av användargemenskapen ( BlackBox Framework Center , OberonCore , plattformsbyggande team ). Distributionen innehåller dokumentation och en uppsättning exempel. Flera handledningar dedikerade till att arbeta med Blackbox har släppts. Blackbox stöder Unicode fullt ut , inklusive (i de senaste versionerna) Unicode-identifierare för moduler, procedurer, konstanter, typer och variabler.
Gardens Point Component Pascal
Gardens Point Component Pascal [5] [6] [7] är en annan kompilator för Component Pascal-språket, gjord vid Australian Queensland University of Technology [8] (anställning av Oberon microsystems medgrundare Clemens Shipersky innan han flyttade till Microsoft Research) . Det finns begränsningar: inga funktionspekare och ingen tillgång till icke-lokala variabler i kapslade procedurer [9] . Queensland University of Technologys gpcp-kompilator har en version för både .NET- miljön och Java Virtual Machine ( JVM ) [10] . Kompilatorn är skriven i Component Pascal [9] . Här har Component Pascal integrerats i Visual Studio [11] och i Eclipse [11] plattformsoberoende utvecklingsmiljö .
Anteckningar
- ↑ 1 2 3 4 Meddelande om komponent Pascal-språk (nedlänk) . Hämtad 21 augusti 2012. Arkiverad från originalet 16 augusti 2012. (obestämd)
- ↑ Arvskedja: Pascal → Modula → Modula-2 → Oberon → Oberon-2 → Komponent Pascal
- ↑ Tkachev F.V. En kort historia om Pascal Arkiverad 12 mars 2013 på Wayback Machine // PC WORLD. Disk. 2005, s. 2–5.
- ↑ Utvecklingen av Oberon-2 till komponent Pascal (Oberon Microsystems tekniska rapport) (2001), avsnitt "Specificerade domäner av typer" . Hämtad 25 augusti 2012. Arkiverad från originalet 12 mars 2013. (obestämd)
- ↑ Gough KJ Staplar dem upp: en jämförelse av virtuella maskiner // Proceedings 6th Australasian Computer Systems Architecture Conference. ACSAC 2001. IEEE Comput. soc. S. 55-61.
- ↑ Gough KJ Parameterpassering för den virtuella Java-maskinen // Proceedings 23rd Australasian Computer Science Conference. ACSC 2000 (kat.nr PR00518). IEEE Comput. soc. s. 81-87.
- ↑ Gough J. Virtuella maskiner, hanterad kod och komponentteknologi // Australian Software Engineering Conference 2005. Ieee. S. 5-12.
- ↑ Komponent Pascal på .NET (nedlänk) . Hämtad 1 februari 2011. Arkiverad från originalet 18 februari 2011. (obestämd)
- ↑ 1 2 John Gough, Queensland University of Technology. .NET Runtime as a Compiler Target (länk inte tillgänglig) . Hämtad 2 februari 2011. Arkiverad från originalet 16 februari 2011. (obestämd)
- ↑ Ladda ner Gardens Point Component Pascal (nedlänk) . Hämtad 2 februari 2011. Arkiverad från originalet 20 augusti 2006. (obestämd)
- ↑ 1 2 Komponent Pascal för IDE (nedlänk) . Hämtad 1 februari 2011. Arkiverad från originalet 18 februari 2011. (obestämd)
Litteratur
Länkar