BETA

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.

Historia

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]

Conceptos básicos de sintaxis

Las variables estáticas se declaran usando construcciones como:

yo: @entero; r: @real;

Dinámica:

i: ^objetoentero

La 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)

Mecanismos de abstracción

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:

Ejemplo de declaración

empleado: (#nombre:@Texto; fecha de cumpleaños; departamento: ^Departamento; horastotales: @ Entero; registrar trabajo: (#noOfHours: @Integer ingrese noOfHours hacer noOfHours + totalhours -> totalHours #); Calcular Salario:< (#salario: @entero hacer interior salario de salida #); #); Trabajador: Empleado (#antigüedad: @integer; CalcularSalario::< (#do noOfHours*80+antigüedad*4 -> salario; 0 -> totalHours #) #); Vendedor: Empleado (nº de unidades vendidas: @integer; CalcularSalario::< (#do noOfHours*80+noOfSoldUnits*6 -> salario; 0 -> número de unidades vendidas -> total de horas #) #) María: @trabajadora el Capataz: ^ Trabajador mary[] -> el capataz[] &Trabajador[] -> el Capataz[] presidente: @ Empleado(#ComputeSalary::< (#hacer GRANDE -> salario #) #)

Literatura

Notas

  1. 1 2 Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Møller-Pedersen. El cuándo, por qué y por qué no del lenguaje de programación BETA  (enlace no disponible) , HOPL III Archivado el 7 de julio de 2011 en Wayback Machine .
  2. Kristensen, BB, Madsen, OL, Møller-Pedersen, B. y Nygaard, K. : A Survey of the BETA Programming Language, Norwegian Computing Center, Oslo, Report No 698, 1981.
  3. Kristensen, BB, Madsen, OL, Møller-Pedersen, B. y Nygaard, K .: Mecanismos de abstracción en el lenguaje de programación BETA, Décimo Simposio ACM sobre principios de lenguajes de programación, Austin, Texas, 1983.
  4. Dos capítulos con una descripción general del lenguaje BETA y el sistema Mjølner están disponibles en línea

Enlaces