bc (linguagem de programação)
Este artigo não cita fontes confiáveis. (Junho de 2013) |
Esta página ou se(c)ção precisa ser formatada para o padrão wiki. (Junho de 2013) |
bc, de basic calculator (calculadora básica), é "uma linguagem de calculadora de precisão arbitrária" com uma sintaxe semelhante à linguagem de programação C. bc é tipicamente usada tanto como uma linguagem matemática de script como um shell matemático interativo.
bc é muitas vezes referenciado como calculadora banco.
Uma utilização interativa típica é digitar o comando bc em um prompt de comando do Unix e inserir uma expressão matemática, como: (1 + 3) * 2, em que 8 será a saída. Uma vez que bc pode trabalhar com precisão arbitrária, ele efetivamente omite os dígitos zero após o ponto decimal - portanto, a expressão 2/3 produz 0. Isso pode surpreender novos usuários da bc que desconhecem este fato. A opção "-l" para o bc define a escala padrão (dígitos depois do ponto decimal) para 20 e adiciona várias funções matemáticas adicionais para o idioma.
bc apareceu pela primeira vez na versão 6 Unix em 1975, e foi escrito por Robert Morris e Lorinda Cherry do Bell Labs. Bc foi precedida por dc, uma calculadora de precisão arbitrária anteriormente escrita pelos mesmos autores. dc poderia fazer cálculos de precisão arbitrária, mas sua sintaxe reversa notação polonês era inconveniente para os usuários e, portanto, Bc foi escrito como um front-end para Dc. Bc foi um compilador muito simples (um único arquivo fonte yacc com algumas centenas de linhas) que converteu o novo C-like, sintaxe bc em notação polonês inversa da DC, e os resultados canalizada através dc.
Em 1991, POSIX rigorosamente definida e bc padronizado. Duas implementações deste padrão sobrevivem até hoje: O primeiro é a implementação tradicional Unix, um front-end para dc, que sobrevive em Unix e Plano 9 sistemas. O segundo é o software livre GNU bc, lançado pela primeira vez em 1991 por Philip A. Nelson. A implementação GNU tem inúmeras extensões além do padrão POSIX, e não é mais um front-end para a DC (que é um interpretador de bytecode).