DC (Unix)
# DC (Unix)

dc (desk calculator) es una calculadora en notación polaca inversa que soporta aritmética de precisión arbitraria. Fue programada por Robert Morris cuando se encontraba trabajando en los Bell Labs, es una de las utilidades de Unix más antiguas, precediendo incluso a la invención del lenguaje de programación C. Igual que otros programas de la época tiene un potente conjunto de características, pero una sintaxis muy escueta. En las versiones antiguas bc utilizaba las librerías de dc, aunque las implementaciones más modernas funcionan de manera opuesta, dc utiliza las librerías aritméticas de bc.

Este artículo provee algunos ejemplos en un intento de dar una idea original del lenguaje; para una lista completa de sus comandos así como de la sintaxis debe consultarse la página man de la implementación específica.

## Historia

dc es el lenguaje sobreviviente más antiguo en Unix. Cuando los Laboratorios Bell (Bell Labs) recibieron una computadora PDP-11, dc--escrito en el lenguaje de programación B--fue el primer lenguaje que corrió en esa computadora, aún antes que el ensamblador. Ken Thompson ha opinado que dc fue el primer programa escrito en la computadora.

## Operaciones básicas

Para multiplicar 4 y 5 en dc (nótese que la mayoría del espacio en blanco es opcional):

Puede obtenerse el mismo resultado con los comandos:

Lo anterior se traduce en "empujar 4 y 5 a la pila, a continuación utilizando el operador de multiplicación, extraer dos elementos de la pila, multipicarlos y empujar el resultado de vuelta en la pila, a continuación usar el comando p para imprimir en la pantalla el elemento tope en la pila.

## Ejemplos

Realiza una multiplicación y con p se muestra el resultado

Realiza esta operación: ${\sqrt {(24+(-6)^{2}) \over 13}}-21$

resultado: 11011110101011011011111011101111.

Realiza una conversión de hexadecimal a decimal

Para conocer a fondo la funcionalidad, hay que mirar la página man correspondiente.

**Cálculo de factorial**

El siguiente código calcula factorial de un número, en este caso 5:

Veámoslo explicado:

