BETA (langage de programmation) - BETA (programming language)

BÊTA
Paradigme Orienté objet
Conçu par Bent Bruun Kristensen , Ole Lehrmann Madsen , Birger Møller-Pedersen , Kristen Nygaard
Site Internet bêta .cs .au .dk
Influencé par
Simulateur

BETA est un pur langage orienté objet originaire de l' "école scandinave" en orientation objet où le premier langage orienté objet Simula a été développé. Parmi ses caractéristiques notables, il a introduit des classes imbriquées et des classes unifiées avec des procédures dans ce qu'on appelle des modèles.

Le projet est inactif depuis octobre 2020.

Caractéristiques

Aperçu technique

D'un point de vue technique, BETA offre plusieurs fonctionnalités uniques. Les classes et les procédures sont unifiées en un seul concept, un modèle . De plus, les classes sont définies comme des propriétés/attributs d'objets. Cela signifie qu'une classe ne peut pas être instanciée sans un contexte d'objet explicite. Une conséquence de ceci est que BETA prend en charge les classes imbriquées . Les classes peuvent être définies virtuellement, tout comme les méthodes virtuelles peuvent l'être dans la plupart des langages de programmation orientés objet. Les entités virtuelles (telles que les méthodes et les classes) ne sont jamais écrasées ; au lieu de cela, ils sont redéfinis ou spécialisés.

BETA prend en charge la perspective orientée objet sur la programmation et dispose d'installations complètes pour la programmation procédurale et fonctionnelle. Il dispose de puissants mécanismes d'abstraction pour prendre en charge l'identification des objets, la classification et la composition. BETA est un langage à typage statique comme Simula, Eiffel et C++ , la plupart des vérifications de type étant effectuées au moment de la compilation. BETA vise à atteindre un équilibre optimal entre la vérification du type à la compilation et la vérification du type à l'exécution.

Motifs

Une caractéristique majeure et particulière de la langue est le concept de motifs. Dans un autre langage de programmation, tel que C++ , on aurait plusieurs classes et procédures. BETA exprime ces deux concepts à l'aide de modèles.

Par exemple, une classe simple en C++ aurait la forme

class point {
    int x, y;
};

En BETA, la même classe pourrait être représentée par le modèle

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

C'est-à-dire qu'une classe appelée point aura deux champs, x et y , de type entier . Les symboles (# et #) introduisent des motifs. Les deux points sont utilisés pour déclarer des modèles et des variables. Le signe @ avant le type d'entier dans les définitions de champs spécifie qu'il s'agit de champs d'entiers et non, par contraste, de références, de tableaux ou d'autres modèles.

Comme autre comparaison, une procédure en C++ pourrait avoir la forme

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

En BETA, une telle fonction pourrait être écrite en utilisant un modèle

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

Les x , y et z sont des variables locales. Le mot-clé enter spécifie les paramètres d'entrée du modèle, tandis que le mot-clé exit spécifie le résultat de la fonction. Entre les deux, le mot - clé do préfixe la séquence d'opérations à effectuer. Le bloc conditionnel est délimité par (if et if) , c'est-à-dire que le mot - clé if devient une partie de la parenthèse ouvrante et fermante. La vérité est vérifiée par // True dans un bloc if. Enfin, l'opérateur d'affectation -> affecte la valeur de son côté gauche à la variable de son côté droit.

Bonjour le monde!

Cet extrait imprime la ligne standard "Hello world!" :

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

Lectures complémentaires

  • Ole Lehrmann Madsen, Birger Møller-Pedersen, Kristen Nygaard : programmation orientée objet dans le langage de programmation BETA, [2]
  • Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Møller-Pedersen : Le quand, pourquoi et pourquoi pas du langage de programmation BETA, ACM History of Programming Languages ​​III, Conférence, San Diego 2007, [3]

Les références

Liens externes