# bc

> UNIX utility which implements an arbitrary-precision arithmetic language

**Wikidata**: [Q300897](https://www.wikidata.org/wiki/Q300897)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Bc_(programming_language))  
**Source**: https://4ort.xyz/entity/bc

## Summary
bc is a UNIX utility that implements an arbitrary-precision arithmetic language, enabling calculations with numbers of unlimited size beyond hardware limitations. Created by Lorinda Cherry in 1975, it remains a standard tool in Unix-like systems for precise numerical computation.

## Key Facts
- Created in 1975 by computer scientist Lorinda Cherry, an original Unix team member.
- Implements an arbitrary-precision arithmetic language, supporting numbers of unlimited size.
- Based on the dc (Desk Calculator) utility with a more user-friendly infix notation.
- A standard UNIX utility and command included in POSIX specifications.
- Distinguished from GNU bc, a separate implementation with differing features.
- Aliases include "Basic Calculator," "UNIX bc," and Spanish variants "Lenguaje de programación bc."
- Official specification published by The Open Group (http://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html).
- Available in 10 Wikipedia languages including English, Spanish, and German.
- Has 23 sitelinks on Wikidata and a Gentoo Wiki entry (ID: 309286).

## FAQs
### Q: What is bc used for?  
A: bc performs arbitrary-precision arithmetic calculations, handling very large or precise numbers that exceed standard hardware limitations. It operates as both an interactive shell tool and a command-line calculator, essential for scientific, financial, and engineering tasks requiring exact numerical results.

### Q: Who created bc and when?  
A: bc was created by Lorinda Cherry in 1975. Cherry, a computer scientist and original Unix team member, designed it as a more user-friendly alternative to the earlier dc utility.

### Q: How does bc differ from dc?  
A: bc is based on dc but uses infix notation (e.g., "5 + 3") instead of dc's postfix notation. It adds a programming language interface while retaining dc's arbitrary-precision core, offering improved usability for interactive calculations.

### Q: Is bc the same as GNU bc?  
A: No, bc and GNU bc are distinct implementations. bc is the original Unix utility, while GNU bc is part of the GNU project with additional features. They are not interchangeable and have separate development histories.

## Why It Matters
bc revolutionized computational precision in Unix environments by solving the critical problem of limited numerical accuracy in fixed-precision systems. Its arbitrary-precision capabilities enable exact calculations for scientific research, cryptography, and financial modeling, where floating-point errors would compromise results. As a POSIX-standardized tool, bc ensures reliable, portable numerical computation across Unix-like systems, forming a foundational layer for higher-level applications and scripting. Its design influenced later tools by establishing best practices for precision arithmetic in command-line utilities, cementing its enduring relevance in technical workflows.

## Notable For
- Pioneering arbitrary-precision arithmetic as a standard UNIX utility in 1975.  
- Designed by Lorinda Cherry, linking it to foundational Unix development.  
- Inclusion in POSIX standards, guaranteeing cross-platform compatibility.  
- Distinct from GNU bc, maintaining original implementation history.  
- Spanish-language aliases ("Lenguaje de programación bc") reflecting global adoption.  

## Body
### Design and Functionality
- Implements an arbitrary-precision arithmetic language supporting numbers of unlimited size.  
- Based on dc (Desk Calculator) but adopts infix notation for improved usability.  
- Functions as both an interactive shell tool and a command-line calculator.  
- Includes a programming language with control structures and functions.  
- Aliases: "Basic Calculator," "UNIX bc," "Lenguaje de programación bc," "Lenguaje de programacion bc."  

### Standardization and Availability
- Official specification published by The Open Group in POSIX Base Specifications (Issue 7).  
- Documented at: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html.  
- Listed on Gentoo Wiki (English, article ID 309286).  
- Wikipedia coverage in 10 languages: Arabic, Belarusian, Czech, Danish, German, English, Spanish, Persian, Finnish, French.  
- Wikidata ID with 23 sitelinks.  

### Technical Context
- Instance of: programming language and standard UNIX utility/command.  
- FOLDOC ID: BC.  
- Freebase ID: /m/02_6bj (reference date: 2013-10-28).  
- Quora topic: Bc-programming-language.  
- Different from: GNU bc.

## References

1. [Lorinda Cherry](https://ncwit.org/profile/lorinda-cherry/)
2. Freebase Data Dumps. 2013
3. Quora