BETA (lenguaje de programación) - BETA (programming language)

BETA
Paradigma Orientado a objetos
Diseñada por Bent Bruun Kristensen , Ole Lehrmann Madsen , Birger Møller-Pedersen , Kristen Nygaard
Sitio web beta .cs .au .dk
Influenciado por
Simula

BETA es un lenguaje orientado a objetos puro que se origina dentro de la "Escuela Escandinava" en la orientación a objetos donde se desarrolló el primer lenguaje orientado a objetos Simula . Entre sus características notables, introdujo clases anidadas y clases unificadas con procedimientos en los llamados patrones.

El proyecto está inactivo a octubre de 2020.

Características

Resumen técnico

Desde una perspectiva técnica, BETA ofrece varias características únicas. Las clases y los procedimientos se unifican en un concepto, un patrón . Además, las clases se definen como propiedades / atributos de objetos. Esto significa que no se puede crear una instancia de una clase sin un contexto de objeto explícito. Una consecuencia de esto es que BETA admite clases anidadas . Las clases se pueden definir virtualmente, al igual que los métodos virtuales en la mayoría de los lenguajes de programación orientados a objetos. Las entidades virtuales (como métodos y clases) nunca se sobrescriben; en cambio, se redefinen o se especializan.

BETA es compatible con la perspectiva de programación orientada a objetos y tiene instalaciones integrales para la programación funcional y de procedimientos. Tiene poderosos mecanismos de abstracción para apoyar la identificación de objetos, clasificación y composición. BETA es un lenguaje escrito de forma estática como Simula, Eiffel y C ++ , y la mayoría de las comprobaciones de tipos se realizan en tiempo de compilación. BETA tiene como objetivo lograr un equilibrio óptimo entre la verificación de tipos en tiempo de compilación y la verificación de tipos en tiempo de ejecución.

Patrones

Una característica importante y peculiar del lenguaje es el concepto de patrones. En otro lenguaje de programación, como C ++ , uno tendría varias clases y procedimientos. BETA expresa ambos conceptos utilizando patrones.

Por ejemplo, una clase simple en C ++ tendría la forma

class point {
    int x, y;
};

En BETA, la misma clase podría estar representada por el patrón

point: (#
    x, y: @integer
#)

Esto es, una clase llamada punto tendrá dos campos, x y y , de tipo entero . Los símbolos (# y #) introducen patrones. Los dos puntos se utilizan para declarar patrones y variables. El signo @ antes del tipo de número entero en las definiciones de campo especifica que estos son campos de números enteros y no, por el contrario, referencias, matrices u otros patrones.

Como otra comparación, un procedimiento en C ++ podría tener la forma

int max(int x, int y)
{
    if (x >= y)
    {
        return x;
    }
    else
    {
        return y;
    }
}

En BETA, tal función podría escribirse usando un patrón

max: (#
    x, y, z: @integer
enter (x, y)
do
    (if x >= y // True then
        x -> z
    else
        y -> z
    if)
exit z
#)

Las x , y y z son variables locales. La palabra clave enter especifica los parámetros de entrada al patrón, mientras que la palabra clave exit especifica el resultado de la función. Entre los dos, la palabra clave do antepone la secuencia de operaciones a realizar. El bloque condicional está delimitado por (if y if) , es decir, la palabra clave if pasa a formar parte del paréntesis de apertura y cierre. La verdad se comprueba a través de // Verdadero dentro de un bloque if. Finalmente, el operador de asignación -> asigna el valor de su lado izquierdo a la variable de su lado derecho.

¡Hola Mundo!

Este fragmento imprime la línea estándar "¡Hola, mundo!" :

(#
do ’Hello world!’->PutLine
#)

Otras lecturas

  • Ole Lehrmann Madsen, Birger Møller-Pedersen, Kristen Nygaard: Programación orientada a objetos en el lenguaje de programación BETA, [2]
  • Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Møller-Pedersen: El cuándo, el por qué y el por qué no del lenguaje de programación BETA, ACM History of Programming Languages ​​III, Conferencia, San Diego 2007, [3]

Referencias

enlaces externos