fbpx
Wikipedia

DC (Unix)

dc (desk calculator) es una calculadora en notación polaca inversa que soporta aritmética de precisión arbitraria[1]​. Fue programada por Robert Morris cuando se encontraba trabajando en los Bell Labs[2]​, 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 lenguage 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.[3]​ 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):

dc <<EOT 4 5 * p EOT 20 

Puede obtenerse el mismo resultado con los comandos:

echo "4 5 * p" | dc 20 

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

3 24 * p 

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

24 _6 2 ^ + 13 / v 21 - p 

Realiza esta operación:  

16i2o DEADBEEFp 

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:

dc -e '[Calculando factorial de: ]n5p[d1-d1<F*]dsFxp' 

Veámoslo explicado:

dc -e '  # calcular de factorial [Calculando factorial de: ] n # imprimir etiqueta 5 # empujar a la pila el numero al que se calculara factorial p # imprimir numero despues de etiqueta [ # inicio de cadena con macro d # duplicar el tope de la pila 1 # empujar 1 a la pila - # sacar 2 valores de la pila, restarlos, empujar resultado a la pila d # duplicar tope de la pila 1 # empujar 1 a la pila <F # sacar 2 valores de la pila, numero 1 y el resultado de la resta  # si 1 es menor que el resultado, llamar a la macro de nuevo * # de lo contrario sacar 2 valores de la pila, multiplicarlos, empujar resultado a la pila ] # fin de cadena, empujarla a la pila d # duplicar tope de la pila (cadena que contiene macro),  # 1 valor para asignarlo al registro F, otra copia que sera invocada sF # asignar al registro F x # ejecutar tope de la pila p # imprimir tope de la pila que contiene resultado ' 

Referencias

  1. dc(1): an arbitrary precision calculator – Comandos de usuario en el manual de Linux (en inglés)
  2. Thompson, Ken. «A nerdy delight for any Vintage Computer Fest 2019 attendee: Kernighan interviewing Thompson about Unix» (en inglés). Consultado el 4 de abril de 2021. 
  3. Douglas McIlroy (1987). «A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986» (en inglés). 

Enlaces externos

  • dc, an arbitrary precision calculator
  • GNU bc source code
  •   Datos: Q344670

unix, desk, calculator, calculadora, notación, polaca, inversa, soporta, aritmética, precisión, arbitraria, programada, robert, morris, cuando, encontraba, trabajando, bell, labs, utilidades, unix, más, antiguas, precediendo, incluso, invención, lenguaje, prog. dc desk calculator es una calculadora en notacion polaca inversa que soporta aritmetica de precision arbitraria 1 Fue programada por Robert Morris cuando se encontraba trabajando en los Bell Labs 2 es una de las utilidades de Unix mas antiguas precediendo incluso a la invencion del lenguaje de programacion C Igual que otros programas de la epoca tiene un potente conjunto de caracteristicas pero una sintaxis muy escueta En las versiones antiguas bc utilizaba las librerias de dc aunque las implementaciones mas modernas funcionan de manera opuesta dc utiliza las librerias aritmeticas de bc Este articulo provee algunos ejemplos en un intento de dar una idea original del lenguaje para una lista completa de sus comandos asi como de la sintaxis debe consultarse la pagina man de la implementacion especifica Indice 1 Historia 2 Operaciones basicas 3 Ejemplos 3 1 Calculo de factorial 4 Referencias 5 Enlaces externosHistoria Editardc es el lenguage sobreviviente mas antiguo en Unix Cuando los Laboratorios Bell Bell Labs recibieron una computadora PDP 11 dc escrito en el lenguaje de programacion B fue el primer lenguaje que corrio en esa computadora aun antes que el ensamblador 3 Ken Thompson ha opinado que dc fue el primer programa escrito en la computadora Operaciones basicas EditarPara multiplicar 4 y 5 en dc notese que la mayoria del espacio en blanco es opcional dc lt lt EOT 4 5 p EOT 20Puede obtenerse el mismo resultado con los comandos echo 4 5 p dc 20Lo anterior se traduce en empujar 4 y 5 a la pila a continuacion utilizando el operador de multiplicacion extraer dos elementos de la pila multipicarlos y empujar el resultado de vuelta en la pila a continuacion usar el comando p para imprimir en la pantalla el elemento tope en la pila Ejemplos Editar3 24 p Realiza una multiplicacion y con p se muestra el resultado 24 6 2 13 v 21 p Realiza esta operacion 24 6 2 13 21 displaystyle sqrt 24 6 2 over 13 21 16i2o DEADBEEFp resultado 11011110101011011011111011101111 Realiza una conversion de hexadecimal a decimalPara conocer a fondo la funcionalidad hay que mirar la pagina man correspondiente Calculo de factorial EditarEl siguiente codigo calcula factorial de un numero en este caso 5 dc e Calculando factorial de n5 p d1 d1 lt F dsFxp Veamoslo explicado dc e calcular de factorial Calculando factorial de n imprimir etiqueta 5 empujar a la pila el numero al que se calculara factorial p imprimir numero despues de etiqueta inicio de cadena con macro d duplicar el tope de la pila 1 empujar 1 a la pila sacar 2 valores de la pila restarlos empujar resultado a la pila d duplicar tope de la pila 1 empujar 1 a la pila lt F sacar 2 valores de la pila numero 1 y el resultado de la resta si 1 es menor que el resultado llamar a la macro de nuevo de lo contrario sacar 2 valores de la pila multiplicarlos empujar resultado a la pila fin de cadena empujarla a la pila d duplicar tope de la pila cadena que contiene macro 1 valor para asignarlo al registro F otra copia que sera invocada sF asignar al registro F x ejecutar tope de la pila p imprimir tope de la pila que contiene resultado Referencias Editar dc 1 an arbitrary precision calculator Comandos de usuario en el manual de Linux en ingles Thompson Ken A nerdy delight for any Vintage Computer Fest 2019 attendee Kernighan interviewing Thompson about Unix en ingles Consultado el 4 de abril de 2021 Douglas McIlroy 1987 A Research Unix reader annotated excerpts from the Programmer s Manual 1971 1986 en ingles Enlaces externos Editardc an arbitrary precision calculator GNU bc source code Datos Q344670Obtenido de https es wikipedia org w index php title DC Unix amp oldid 134791717, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos