Opera : un langage et un interpréteur pour effectuer des opérations arithmétiques mathématiquement exactes

Par:
fredericmazue

lun, 11/10/2021 - 15:48

Opera est un interpréteur et un langage de programmation pour effectuer des opérations arithmétiques mathématiquement exactes. Dans les applications informatiques habituelles, on utilise les entiers et les flottants natifs qui sont de tailles fixes. Pour cette raison, la précision des calculs est limitée.

En pratique, les approximations qui en résultent sont admises et suffisantes pour des calculs ordinaires en vie courante. Pour effectuer des opérations arithmétiques exactes, les nombres utilisés par Opera sont représentés et mémorisés en tant que nombres rationnels, en fractions réduites, avec pour numérateurs et dénominateurs des entiers de tailles aussi grandes que nécessaires.

Opera a deux modes de fonctionnement : l'exécution d'un fichier de commandes et le mode conversationnel, ou interactif. L'interpréteur, dans les deux modes d'utilisation, effectue les calculs écrits en langage Opera.

Opera est disponible pour Windows et Linux. Sous Windows il fonctionne dans une fenêtre en mode console.

Voici, à titre d'exemple, un programme écrit en Opera qui calcule une fraction dont le numérateur et le dénominateur ont chacun 155 chiffres décimaux pour une approximation de la constante e d'Euler. La valeur de cette fraction qui a 157 décimales exactes après la virgule peut s'écrire : 2,1828182...5956307.

# Approximation de la constante d'Euler
# e = 1 + somme{n=1 à l'infini}( 1/n! )
n = 0
fn = 1
e = 1
n < 99
boucle
n = n+1
fn = fn*n
e = e + 1/fn
retour
valeur e
enti e*10^157
# (1 + 1/1! + 1/2! + 1/3! + ... + 1/99!) : 157 décimales exactes.
envoyer e e

Si on change n < 99 en n < 999 dans ce programme, on obtient une fraction dont la valeur a 2567décimales exactes après la virgule : on peut l'écrire : 2,1828182...3529133.

Opera est un logiciel libre créé par un mathématicien et informaticien français : Pierre Germain-Lacour. Opera est disponible sur GitHub.