bc (Unix)

bc UNIX de calcul en précision arbitraire

bc, abréviation de « basic calculator » (« calculatrice basique »), est un interpréteur de commandes Unix qui permet d'effectuer des calculs en arithmétique multiprécision. Sa syntaxe est proche du langage C.

Bc

Informations
Première version Voir et modifier les données sur Wikidata
Type Langage de programmation
Utilitaire UNIX (d)Voir et modifier les données sur Wikidata

bc peut interpréter un script ou être invoqué en ligne de commande, de façon interactive. Dans ce dernier cas, il suffit de taper en ligne de commande : bc, puis de saisir une expression mathématique, par exemple (1 + 3) * 2, et une fois entré cette ligne, l'interpréteur affichera 8.

Bien que bc effectue des calculs en arithmétique multiprécision (donc sans passer par la représentation en virgule flottante), il est réglé par défaut sur un résultat arrondi à l'unité : ainsi l'expression 2/3 renverra le résultat 0. L'option - l (taper bc - l) déclenche un arrondi par défaut à 20 décimales, tout en intégrant quelques fonctions mathématiques courantes à l'interpréteur (sin, cos, atan, ln, exp essentiellement).

bc, écrit par deux chercheurs des Bell Labs (le cryptographe Robert Morris Sr. (en)[1] et Lorinda Cherry) a été intégré à Unix en 1975 (version 6). Ses auteurs avaient d'abord écrit un interpréteur arithmétique multiprécision utilisant la notation polonaise inverse : dc (desk calculator). bc n'est, fondamentalement, qu'un préprocesseur de dc, et c'est un programme très court (il est obtenu par traitement d'un seul fichier par yacc) qui ne fait que traduire les expressions algébriques en notation polonaise inverse avant d'appeler dc.

Depuis 1991, POSIX a normalisé la syntaxe de bc. Il en existe aujourd'hui deux implémentations : celle d'Unix, qui est un préprocesseur de dc, que l'on retrouve sur le système d'exploitation Plan 9 ; l'autre est GNU bc, publié en 1991 par Philip A. Nelson.

GNU bc modifier

$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+1
2
scale = 20
sqrt(2)
1.41421356237309504880

Notes et références modifier

Note modifier

  1. Cf. (en) Chad Perrin, « Cryptographer and computer scientist Robert Morris dies at 78 », IT Security,‎ (lire en ligne).

Source modifier

Lien externe modifier

(en) Site officiel