BETA (lenguaje de programación) - BETA (programming language)
Paradigma | Orientado a objetos |
---|---|
Diseñada por | Bent Bruun Kristensen , Ole Lehrmann Madsen , Birger Møller-Pedersen , Kristen Nygaard |
Sitio web | beta |
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
- Página web oficial
- gbeta BETA generalizada