bc (Unix)
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 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
$ 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
Note
- Cf. (en) Chad Perrin, « Cryptographer and computer scientist Robert Morris dies at 78 », IT Security, (lire en ligne).
Source
- Lorinda Cherry et Robert Morris, « BC − An Arbitrary Precision Desk-Calculator Language », Bell Laboratories,