Componenta Pascal

Componenta Pascal
Clasa de limba imperativ , structural , modular , component , obiect
Aparut in 2001 [1]
Autor Microsisteme Oberon
Tip sistem puternic , static
A fost influențat Lanț de moștenire: PascalModulaModula-2OberonOberon-2
Site-ul web oberon.ch

Componenta Pascal este un limbaj de programare  cu o paradigmă de programare orientată pe componente . Bazat pe limbajul Oberon-2 de către Oberon microsystems , Inc. Este un descendent direct al limbajului Pascal [2] .

Sintaxa limbii

Principalele rafinamente ale componentei Pascal în comparație cu Oberon-2 se referă la următoarele:

  1. Ideea principală din spatele perfecționărilor de la Oberon 2 a fost de a oferi proiectantului cadrului de componente (adică, interfețe de module care definesc clase abstracte pentru o anumită zonă cu probleme) un control mai mare asupra proprietăților sale de proiectare în termeni de securitate [3] . Au fost introduse atribute speciale pentru tipuri (RESUM, EXTENSIBIL, LIMITAT) [1] și metode (RESUM, GOL, EXTENSIBIL) [1] , ceea ce permite, în primul rând, controlul static al consistenței ierarhiilor de moștenire și, prin urmare, restabilirea în esență a principiului tastare statică totală. În al doilea rând, autorul unei componente de program (un grup de module) poate acum să permită sau să interzică modulelor client să extindă tipurile pe care le oferă.
  2. Sistemul de tipuri de bază oarecum învechit al lui Oberon a fost modernizat: Setul de tipuri de bază al componentei Pascal este acum un superset [4] al tipurilor de bază ale limbajului Java . Principalele tipuri „de lucru” INTEGER, REAL și CHAR corespund variabilelor de 32-, 64- (așa-numita precizie dublă) și 16- ( Unicode )-biți, ceea ce reduce varietatea tipurilor de bază utilizate efectiv în majoritatea cazurilor; utilizarea altor tipuri (LONGINT, SHORTREAL, SHORTCHAR etc.) este limitată la aplicații speciale.
  3. Au fost adăugate instrumente de bază pentru lucrul cu șiruri de caractere (tip String implicit), care, împreună cu modulul standard Strings din sistemul de programare BlackBox , face Componenta Pascal mai convenabilă decât Pascal sau Oberon clasic pentru lucrul cu șiruri. Șirurile de caractere sunt reprezentate de matrice de caractere ( ARRAY OF CHAR sau ARRAY OF SHORTCHAR ), unde valoarea este considerată a fi succesiunea de caractere până la prima apariție a caracterului delimitator special 0X . Șirurile de caractere pot fi comparate (adică comparație lexicografică) și adăugate împreună (concatenare). Construcția a := b$ vă permite să copiați șirul stocat în tabloul de caractere b ( inclusiv caracterul delimitator 0X ) în tabloul de caractere a, chiar dacă alocarea a := b este interzisă (de exemplu, din cauza diferitele lungimi ale tablourilor a și b ).

O descriere completă a sintaxei limbajului în formă extinsă Backus-Naur este furnizată în paginile Component Pascal Communications [1] . Conține 34 de expresii gramaticale, care este doar cu una mai mult decât Oberon-2 .

Implementări de compilator pentru Componenta Pascal

BlackBox Component Builder

Mediul de dezvoltare BlackBox Component Builder (Blackbox) a fost dezvoltat de Oberon microsystems Inc. (Elveția) și este disponibil într-o versiune stabilă pentru sistemul de operare Microsoft Windows , în versiune alfa - pentru sistemul de operare bazat pe GNU/Linux ( Debian , Ubuntu ), precum și pentru FreeBSD și OpenBSD . Blackbox este lansat sub licența BSD-2-Clause . Mediul de dezvoltare include: un editor de text de cod sursă, un compilator, un mediu de rulare (încărcător de module, colector de gunoi), un profiler, un colector exe , dll , elf și așa, precum și un set de componente gata făcute pentru rapid dezvoltarea aplicațiilor (crearea de casete de dialog, grafică interactivă, documente compuse, precum și o interfață pentru accesarea WinApi, WinOle, COM; un subsistem pentru lucrul cu baze de date, protocoale de transfer de date TCP / IP , V24 ). Versiunea Microsoft Windows este potrivită pentru dezvoltarea OLE . Compilatorul și framework -ul au fost „lustruite” din 1993 și în prezent[ când? ] este întreținut și dezvoltat de comunitatea de utilizatori ( BlackBox Framework Center , OberonCore , echipa de construire multiplatformă ). Distribuția include documentație și un set de exemple. Au fost lansate mai multe tutoriale dedicate lucrului cu Blackbox. Blackbox acceptă pe deplin Unicode , inclusiv (în versiunile recente) identificatori Unicode pentru module, proceduri, constante, tipuri și variabile.

Gardens Point Component Pascal

Gardens Point Component Pascal [5] [6] [7]  este un alt compilator pentru limbajul Component Pascal, realizat la Australian Queensland University of Technology [8] (angajarea co-fondatorului Oberon microsystems, Clemens Shipersky, înainte de a se muta la Microsoft Research) . Există limitări: fără indicatori de funcție și fără acces la variabile non-locale în procedurile imbricate [9] . Compilatorul gpcp de la Queensland University of Technology are o versiune atât pentru mediul .NET , cât și pentru Java Virtual Machine ( JVM ) [10] . Compilatorul este scris în Componenta Pascal [9] . Aici, Componenta Pascal a fost integrată în Visual Studio [11] și în mediul de dezvoltare multiplatformă Eclipse [11] .

Note

  1. 1 2 3 4 Mesaj despre limbajul Component Pascal (downlink) . Preluat la 21 august 2012. Arhivat din original la 16 august 2012. 
  2. Lanț de moștenire: PascalModulaModula-2OberonOberon-2 → Componenta Pascal
  3. Tkachev F.V. O scurtă istorie a lui Pascal Arhivat pe 12 martie 2013 la Wayback Machine // PC WORLD. Disc. 2005, p. 2–5.
  4. ^ The Evolution of Oberon-2 to Component Pascal (Oberon Microsystems Technical Report) (2001), secțiunea „Specified Domains of Types” . Preluat la 25 august 2012. Arhivat din original la 12 martie 2013.
  5. Gough KJ Stacking them up: a comparison of virtual machines // Proceedings 6th Australasian Computer Systems Architecture Conference. ACSAC 2001. IEEE Comput. soc. P. 55-61.
  6. Trecerea parametrului Gough KJ pentru mașina virtuală Java // Proceedings 23rd Australasian Computer Science Conference. ACSC 2000 (Nr. cat. PR00518). Calculator IEEE. soc. P. 81-87.
  7. Gough J. Virtual Machines, Managed Code and Component Technology // 2005 Australian Software Engineering Conference. Ieee. P. 5-12.
  8. Componenta Pascal pe .NET (downlink) . Consultat la 1 februarie 2011. Arhivat din original la 18 februarie 2011. 
  9. 1 2 John Gough, Universitatea de Tehnologie din Queensland.The .NET Runtime as a Compiler Target (link nu este disponibil) . Consultat la 2 februarie 2011. Arhivat din original pe 16 februarie 2011. 
  10. Descărcați Gardens Point Component Pascal (link în jos) . Consultat la 2 februarie 2011. Arhivat din original pe 20 august 2006. 
  11. 1 2 Componenta Pascal pentru IDE-uri (downlink) . Consultat la 1 februarie 2011. Arhivat din original la 18 februarie 2011. 

Literatură

Link -uri