BETA | |
---|---|
clase de idioma | programación orientada a objetos |
Apareció en | 1992 |
Autor | Kristen Nygor , Ole Lehrmann Madsen, Birger Møller-Pedersen y Bent Bruun Kristensen |
Desarrollador | Nygaard, Kristen |
sistema de tipos | estricto, estático |
Implementaciones principales | Mjolner, Beta.Net, BETA.Java |
Dialectos | gbeta |
sido influenciado | Simula , Algol-68 |
Sitio web |
daimi.au.dk/~beta cs.au.dk/~beta |
BETA es un lenguaje puramente orientado a objetos de la "escuela escandinava" iniciada por el primer lenguaje orientado a objetos del mundo, Simula . También soporta metodologías de programación procedimental y funcional . BETA, como Simula , Eiffel y C++ , es un lenguaje fuertemente tipado predominantemente estático (comprobación de tipos en tiempo de compilación). El lenguaje BETA tiene una serie de características únicas.
Kristen Nygor (uno de los autores de Simula) Ole Lehrmann Madsen, Birger Møller-Pedersen y Bent Bruun Kristensen comenzaron en 1975-1976. trabajar en un nuevo lenguaje orientado a objetos en el marco de The Joint Language Project (proyecto de lenguaje conjunto). El trabajo sobre el nuevo lenguaje se llevó a cabo en el Departamento de Ciencias de la Computación de la Universidad de Ahu (DAIMI) . Al igual que con Simula, este proyecto se centró en la simulación . Según los autores del lenguaje, [1] , este proyecto se planeó originalmente para completarse en uno o dos años. El desarrollo se basó en una extensión específica de dominio diseñada (pero nunca implementada) del lenguaje Simula llamada Delta, se decidió llamar al nuevo lenguaje Gamma.
En noviembre de 1976, debido a la falta de progreso en el proyecto, se decidió dividirlo en 6 subproyectos, uno de los cuales era el lenguaje Beta: se planeó como un "lenguaje de implementación" de nivel bastante bajo para el lenguaje Gamma. Sin embargo, en el proceso de trabajo sobre la lengua en 1978-1979. se decidió no limitarse al lenguaje de implementación, y se convirtió en un lenguaje completo: el heredero de Simula, destinado tanto al modelado de simulación como a ser un lenguaje universal de propósito general. Al mismo tiempo, se suponía que el nuevo lenguaje sería notablemente más eficiente en la implementación que Simula. En 1981, se completó la revisión del lenguaje de programación BETA [2] , que sirvió de base para la primera implementación del lenguaje, que se completó en 1983. [3]
En 1988 , los creadores del lenguaje BETA fundaron la empresa Mjølner Informatics Ltd., que lanzó en 1992 un entorno de programación RAD comercial y multiplataforma en el lenguaje BETA Mjølner (actualmente distribuido como software gratuito ). El marco de GUI de Mjølner se llama Lidskjalv y está construido sobre la biblioteca de widgets de Motif (también puede usar LessTif ). Un dato interesante es que James Gosling y Bill Joy fueron de los primeros en adquirir una licencia comercial para el sistema Mjølner . [una]
Las variables estáticas se declaran usando construcciones como:
yo: @entero; r: @real;Dinámica:
i: ^objetoenteroLa asignación en BETA se denota como valor -> variable , se permiten asignaciones múltiples.
2 -> i (* asignar valor 2 a la variable i *) i -> j (* asignar i a la variable j *) i*j -> k (* asignar valor i*j a la variable k *) (i,j) -> (x,y) (* asignar i a la variable x y * valor j variable y *)Las construcciones de control en términos del lenguaje BETA se denominan imperativos . Solo hay dos de ellos, if (puede tener varias ramas entonces , actuando como declaraciones como cambiar o seleccionar ... caso ) y para (que tiene muchas variaciones). Su sintaxis se asemeja ligeramente a la de construcciones similares en Algol 68 .
(si x // 17 entonces... // 33 entonces... // y+3 entonces... más... si); (si (x>0) y (y<0) // Cierto entonces... // Falso entonces... si) (si es verdad // (x<0) y (y=0) entonces... // (x=0) y (y=0) entonces... // x>=0 entonces... si)BETA tiene poderosos mecanismos de abstracción para apoyar la identificación, clasificación y composición de objetos . Clases , procedimientos , funciones , corrutinas , procesos , excepciones : todos se combinan en un solo concepto de plantillas . Relacionados con este concepto están los conceptos de subplantillas , plantillas virtuales y variables de plantilla . Las clases, subclases y procedimientos virtuales (métodos) se encuentran en la mayoría de los lenguajes orientados a objetos, y algunos lenguajes incluyen variables de procedimiento. Pero en BETA es posible la herencia , la “virtualización” y la definición de variables para plantillas de cualquier tipo: clases, procedimientos, corrutinas, etc. Además, existen mecanismos de programación genéricos para las plantillas del lenguaje BETA . Los objetos del lenguaje BETA, como los objetos Simula, son objetos activos , ellos, como corrutinas, permiten una ejecución cuasi-paralela.
Es posible declarar objetos que no pertenecen a ninguna plantilla (es decir, son la única instancia de su clase, ver el patrón de diseño singleton ).
Los objetos y las plantillas de objetos se pueden definir como una composición de otros objetos y plantillas. Hay tres formas de tal composición: