Componente Pascal

Componente Pascal
clase de idioma imperativo , estructural , modular , componente , objeto
Apareció en 2001 [1]
Autor Microsistemas Oberon
sistema de tipos fuerte , estático
sido influenciado Cadena de herencia: PascalModulaModula-2OberonOberon-2
Sitio web oberon.ch

Component Pascal es un lenguaje de programación  con un paradigma de programación orientado a componentes . Basado en el lenguaje Oberon-2 de Oberon microsystems , Inc. Es un descendiente directo del lenguaje Pascal [2] .

Sintaxis del lenguaje

Los principales refinamientos de Component Pascal en comparación con Oberon-2 se refieren a lo siguiente:

  1. La idea principal detrás de los refinamientos de Oberon 2 fue darle al diseñador del marco de componentes (es decir, interfaces de módulos que definen clases abstractas para un área de problema particular) un mayor control sobre sus propiedades de diseño en términos de seguridad [3] . Se han introducido atributos especiales para tipos (ABSTRACTO, EXTENSIBLE, LIMITADO) [1] y métodos (ABSTRACTO, VACÍO, EXTENSIBLE) [1] , lo que permite, en primer lugar, controlar estáticamente la coherencia de las jerarquías de herencia y, por lo tanto, restaurar esencialmente el principio de tipeo estático total. En segundo lugar, el autor de un componente de programa (un grupo de módulos) ahora puede permitir o prohibir que los módulos de cliente amplíen los tipos que ofrecen.
  2. El sistema de tipos básicos algo obsoleto de Oberon se ha modernizado: el conjunto de tipos básicos de Component Pascal ahora es un superconjunto [4] de los tipos básicos del lenguaje Java . Los principales tipos "de trabajo" INTEGER, REAL y CHAR corresponden a variables de 32, 64 (denominadas doble precisión) y 16 ( Unicode ) bits, lo que reduce la variedad de tipos básicos realmente utilizados en la mayoría de los casos; el uso de otros tipos (LONGINT, SHORTREAL, SHORTCHAR, etc.) se limita a aplicaciones especiales.
  3. Se han agregado herramientas básicas para trabajar con cadenas de caracteres (tipo String implícito) que, junto con el módulo Strings estándar en el sistema de programación BlackBox , hace que Component Pascal sea más conveniente que Pascal o Oberon clásico para trabajar con cadenas. Las cadenas de caracteres se representan mediante matrices de caracteres ( ARRAY OF CHAR o ARRAY OF SHORTCHAR ), donde se considera que el valor es la secuencia de caracteres hasta la primera aparición del carácter delimitador especial 0X . Las cadenas de caracteres pueden compararse (es decir, comparación lexicográfica) y sumarse (concatenación). La construcción a := b$ le permite copiar la cadena almacenada en la matriz de caracteres b ( incluido el carácter delimitador 0X ) en la matriz de caracteres a, incluso si la asignación a := b está prohibida (por ejemplo, debido a las diferentes longitudes de las matrices a y b ).

En las páginas de Component Pascal Communications [1] se proporciona una descripción completa de la sintaxis del lenguaje en formato Backus-Naur extendido . Contiene 34 expresiones gramaticales, que es solo una más que Oberon-2 .

Implementaciones del compilador para Component Pascal

Generador de componentes BlackBox

El entorno de desarrollo BlackBox Component Builder (Blackbox) fue desarrollado por Oberon microsystems Inc. (Suiza) y está disponible en versión estable para SO Microsoft Windows , en versión alfa - para SO basado en GNU/Linux ( Debian , Ubuntu ), así como FreeBSD y OpenBSD . Blackbox se lanza bajo la licencia BSD-2-Clause . El entorno de desarrollo incluye: un editor de texto de código fuente, un compilador, un entorno de tiempo de ejecución (cargador de módulos, recolector de basura), un generador de perfiles, un exe , dll , elf , etc. desarrollo de aplicaciones (creación de cuadros de diálogo, gráficos interactivos, documentos compuestos, así como una interfaz para acceder a WinApi, WinOle, COM; un subsistema para trabajar con bases de datos, protocolos de transferencia de datos TCP / IP , V24 ). La versión de Microsoft Windows es adecuada para el desarrollo OLE . El compilador y el framework han sido "pulidos" desde 1993, y por el momento[ ¿cuándo? ] es mantenido y desarrollado por la comunidad de usuarios ( BlackBox Framework Center , OberonCore , equipo de compilación multiplataforma ). La distribución incluye documentación y un conjunto de ejemplos. Se han publicado varios tutoriales dedicados a trabajar con Blackbox. Blackbox es totalmente compatible con Unicode , incluidos (en versiones recientes) identificadores Unicode para módulos, procedimientos, constantes, tipos y variables.

Gardens Point Componente Pascal

Gardens Point Component Pascal [5] [6] [7]  es otro compilador para el lenguaje Component Pascal, creado en la Universidad Tecnológica de Queensland en Australia [8] (empleo del cofundador de Oberon microsystems, Clemens Shipersky, antes de mudarse a Microsoft Research) . Hay limitaciones: no hay punteros de función y no hay acceso a variables no locales en procedimientos anidados [9] . El compilador gpcp de la Universidad Tecnológica de Queensland tiene una versión tanto para el entorno .NET como para la máquina virtual Java ( JVM ) [10] . El compilador está escrito en Component Pascal [9] . Aquí, Component Pascal se ha integrado en Visual Studio [11] y en el entorno de desarrollo multiplataforma Eclipse [11] .

Notas

  1. 1 2 3 4 Mensaje sobre el lenguaje Componente Pascal (enlace descendente) . Consultado el 21 de agosto de 2012. Archivado desde el original el 16 de agosto de 2012. 
  2. Cadena de herencia: PascalModulaModula-2OberonOberon-2 → Component Pascal
  3. Tkachev F. V. Una breve historia de Pascal Archivado el 12 de marzo de 2013 en Wayback Machine // PC WORLD. Disco. 2005, págs. 2 a 5.
  4. The Evolution of Oberon-2 to Component Pascal (Informe técnico de Oberon Microsystems) (2001), sección "Dominios de tipos especificados" . Consultado el 25 de agosto de 2012. Archivado desde el original el 12 de marzo de 2013.
  5. Gough KJ Apilándolos: una comparación de máquinas virtuales // Actas de la sexta conferencia de arquitectura de sistemas informáticos de Australasia. ACSAC 2001. Cómputo IEEE. soc. págs. 55-61.
  6. Gough KJ Paso de parámetros para la máquina virtual Java // Actas de la 23.ª Conferencia de Ciencias de la Computación de Australasia. ACSC 2000 (Cat. No. PR00518). Cómputo IEEE. soc. págs. 81-87.
  7. Gough J. Máquinas virtuales, código administrado y tecnología de componentes // Conferencia de ingeniería de software australiana de 2005. Ieee. pág. 5-12.
  8. Componente Pascal en .NET (enlace descendente) . Consultado el 1 de febrero de 2011. Archivado desde el original el 18 de febrero de 2011. 
  9. 1 2 John Gough, Universidad Tecnológica de Queensland The .NET Runtime as a Compiler Target (enlace no disponible) . Consultado el 2 de febrero de 2011. Archivado desde el original el 16 de febrero de 2011. 
  10. Descargar Gardens Point Component Pascal (enlace descendente) . Consultado el 2 de febrero de 2011. Archivado desde el original el 20 de agosto de 2006. 
  11. 1 2 Componente Pascal para IDE (enlace descendente) . Consultado el 1 de febrero de 2011. Archivado desde el original el 18 de febrero de 2011. 

Literatura

Enlaces