Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Lenguaje de programación B - Wikipedia, la enciclopedia libre

Lenguaje de programación B

De Wikipedia, la enciclopedia libre

B
Paradigma: imperativo (procedural)
Apareció en: 1969
Diseñado por: Ken Thompson, Dennis Ritchie
Tipo de dato: lenguaje sin tipos
Implementaciones: múltiples
Influido por: BCPL
Ha influido: C

B fue el nombre de un lenguaje de programación desarrollado en los Bell Labs, predecesor del lenguaje de programación C.

Fue mayoritariamente un trabajo de Ken Thompson con contribuciones de Dennis Ritchie. Apareció primero sobre el año 1969.

Tabla de contenidos

[editar] Historia

B fue esencialmente una simplificación del lenguaje BCPL, eliminando cualquier componente que Thompson considerase prescindible de forma que cupiese en la memoria de las minicomputadoras de la época. El lenguaje también incluyó algunos cambios de acuerdo con las preferencias de Thompson (la mayoría para reducir el número de caracteres de un programa típico).

Al igual que BCPL, B sólo tenía un tipo de datos, que correspondía con una palabra de máquina. La mayoría de operadores lo manejaban como un entero; por ejemplo + (suma), - (resta), * (multiplicación) ó / (división). Otros operadores lo trataban como una dirección de memoria a la que hacer referencia: un puntero. B ofrecía operadores que permitían obtener la dirección de una determinada variable, o escribir en la dirección apuntada por una variable puntero.

Las primeras implementaciones fueron para las minicomputadoras PDP-7 y PDP-11 ejecutando versiones antiguas de UNIX; y para los mainframes de 36 bits Honeywell ejecutando el sistema GCOS.

[editar] Evolución

La naturaleza sin tipos de B tenía sentido en el Honeywell, en la PDP-7 y muchas otras computadoras antiguas, pero fue un problema en la PDP-11 porque era difícil acceder a tipos de caracteres de datos que la PDP-11 y la mayoría de computadoras modernas soportaban. Comenzando en 1971, Ritchie hizo cambios al lenguaje al mismo tiempo que convertía su compilador para producir lenguaje de máquina nativo. El más notable fue la adición de tipos de datos diferentes para las variables.

Durante 1971 y 1972 B evolucionó primero en "Nuevo B" (New B, NB) y después en C. Más tarde, a principios de 1973, fue añadido un preprocesador a petición de Alan Snyder.

El esfuerzo fue lo suficientemente completo en este año como para que durante el verano el núcleo del sistema UNIX para la PDP-11 fuese reescrito en C.

Durante el periodo 1972-1973 hubo la necesidad de portarlo al Honeywell 635 y al IBM 360/370, por lo que Mike Lesk escribió el "paquete de E/S portable" que se convertiría en la "E/S estándar" (standard I/O ó stdio) del lenguaje C.

B se continuó utilizando hasta los años 90 en los mainframes Honeywell y en ciertos sistemas embedidos por una variedad de razones, incluyendo el uso de hardware limitado en estos sistemas; librerías extensivas, herramientas; o simplemente porque era lo suficientemente bueno como para hacer el trabajo.

El enormemente influencial AberMUD fue escrito en B.

[editar] Nombre

B fue enormemente influenciado por BCPL, y su nombre fue probablemente una contracción de "BCPL". Sin embargo es posible que su nombre se hubiera basado en el lenguaje de programación Bon, un lenguaje más antiguo y no relacionado con B, diseñado por Thompson para su uso en MULTICS.

[editar] Ejemplos

La siguiente función de ejemplo está tomada del Users' Reference to B por Ken Thompson:

/* La siguiente función imprime un número no-negativo, n, en
   base b, donde 2<=b<=10. Esta rutina utiliza el hecho de
   que en el juego de caracteres ANSCII, los digitos 0 a 9
   tienen valores de código secuenciales.
 */

printn(n,b) {
        extrn putchar;
        auto a;

        if(a=n/b) /* asignación, no comprobación de igualdad */
                printn(a, b); /* recursivo */
        putchar(n%b + '0');
}

Este programa de ejemplo en B utiliza la función anterior para sumar tres números imprimiendo por pantalla el resultado.

main( ) {
  auto a, b, c, sum;
  extrn printn;

  a = 1; b = 2; c = 3;
  sum = a+b+c;
  printn(sum,10);
}

[editar] Enlaces externos

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com