Linguaxe de programación B: Diferenzas entre revisións

Contido eliminado Contido engadido
MastiBot (conversa | contribucións)
Sen resumo de edición
Liña 1:
{{LinguaxeFicha de lenguaje de programación
|nomenombre = B
|logo =
|paradigma = [[Programación imperativa|imperativo]] ([[Programación procedural|procedural]])
|anoaño = 1969
|deseñadordiseñador = [[Ken Thompson|Kenneth L. Thompson]], [[Dennis M. Ritchie]]
|tipadotipo_dato = [[linguaxelenguaje sensin tipos]]
|implementaciónsimplementaciones = múltiples
|dialectos =
|influído_porinfluido_por = [[BCPL]]
|influíuha_influido = [[LinguaxeLenguaje de programación C|C]]
}}
 
'''B''' ées oel nomenombre dunde un [[linguaxelenguaje de programación]] desenvolvidodesarrollado en noslos [[Bell Labs]], predecesor dodel [[linguaxelenguaje de programación C]].
 
FoiFue maioritariamentemayoritariamente un traballotrabajo de [[Ken Thompson|Kenneth L. Thompson]] con contribuciónscontribuciones de [[Dennis M. Ritchie]]. Apareceupublicado primeiropor sobreprimera ovez anoen el año [[1969]] {{cita requerida}}.
 
== Historia ==
 
'''B''' foifue esencialmente unhauna simplificación dadel linguaxelenguaje [[BCPL]], eliminando calqueracualquier compoñentecomponente que Thompson considerase prescindible de forma que coubesecupiese naen la memoria dasde las [[minicomputador|minicomputadoras]]as de dala época.
AEl linguaxelenguaje taméntambién incluíuincluyó algúnsalgunos cambios de acordoacuerdo coascon las preferencias de Thompson (ala maioríamayoría para reducir oel número de carácterescaracteres de dunun programa típico).
 
DoAl mesmo xeitoigual que [[BCPL]], y [[FORTH]], B sólo tiñatenía un [[tipo de datos]], que correspondía cunhacon una [[palabra de máquina]]. ALa maioríamayoría de operadores manexábanolo manejaban como un enteiroentero; por exemploejemplo '''+''' (suma), '''-''' (resta), '''*''' (multiplicación) ó '''/''' (división).
OutrosOtros operadores tratábanolo trataban como unhauna dirección de memoria áa la que facerhacer referencia: un [[punteiropuntero (programación)|punteiropuntero]].
B ofrecía operadores que permitían obterobtener ala dirección dunhade una determinada variable, ouo escribir naen la dirección apuntada por unhauna variable punteiropuntero.
 
AsLas primeirasprimeras implementaciones foronfueron para aslas [[minicomputadoras]] [[PDP-7]] ey [[PDP-11]] executandoejecutando versiónsversiones antigasantiguas de [[UNIX]]; ey para oslos [[mainframes]] de 36 bits [[Honeywell]] executandoejecutando oel sistema [[GCOS]].
 
== Evolución ==
 
ALa naturezanaturaleza ''sensin tipos'' de B tiñatenía sentido noen el Honeywell, naen la PDP-7 ey moitasmuchas outrasotras computadoras antigasantiguas, pero foifue un problema naen la PDP-11 porque era difícil acceder a tipos de carácterescaracteres de datos que ala PDP-11 ey ala maioríamayoría de computadoras modernas soportaban. ComezandoComenzando en [[1971]], Ritchie fixohizo cambios áal linguaxelenguaje aoal mesmomismo tempotiempo que convertía a súasu [[compilador]] para producir [[linguaxelenguaje de máquina]] nativo.
OEl máismás notable foifue ala adición de [[tipo de datos|tipos de datos]] diferentes para aslas variables.
 
Durante 1971 ey [[1972]] B evolucionouevolucionó primeiroprimero en Novo "Nuevo B" (''New B'', '''NB''') ey despoisdespués en '''C'''. MáisMás tarde, a principios de 1973, foifue engadidoañadido un [[preprocesador]] a petición de Alan Snyder.
 
OEl esforzoesfuerzo foifue olo suficientemente completo nesteen anoeste año como para que durante oel veránverano oel [[núcleo (computación)|núcleo]] dodel sistema UNIX para ala PDP-11 fosefuese reescrito en C.
 
Durante oel períodoperiodo 1972-1973 houbohubo ala necesidadenecesidad de portaloportarlo aoal Honeywell 635 ey aoal [[IBM]] 360/370, polopor lo que [[Mike Lesk]] escribiuescribió oel "paquete de E/S portable" que se converteríaconvertiría en nala "E/S estándar" (''standard I/OuO'' ó '''stdio''') dadel linguaxelenguaje C.
 
B continuousese continuó utilizando atahasta oslos [[AnosAños 1990|anosaños 90]] nosen los mainframes Honeywell ey en certosciertos [[sistema embebido|sistemas embedidosembebidos]] por unhauna variedadevariedad de razónsrazones, incluíndoincluyendo oel uso de ''[[hardware]]'' limitado nestesen estos sistemas; librerías extensivas, ferramentasherramientas; ouo simplemente porque era olo suficientemente bobueno como para facerhacer oel traballotrabajo.
 
OEl enormemente influencial [[AberMUD]] foifue escrito en B.
 
==Nome Nombre ==
 
B foifue enormemente influenciadoinfluido por BCPL, ey osu seunombre nome foifue probablemente unhauna contracción de "BCPL "".
ConSin todoembargo ées posible que osu seunombre nomese baseousehubiera nobasado en el [[linguaxelenguaje de programación Bon]], unhaun linguaxelenguaje máismás antigaantiguo ey nonno relacionado con B, deseñadodiseñado por Thompson para o seusu uso en [[MULTICS]].
 
==Exemplos Ejemplos ==
 
ALa seguintesiguiente función de exemploejemplo está tomada dodel ''Users' Reference to B'' por Ken Thompson:
 
<source lang="c">
<pre>
/* ALa seguintesiguiente función imprime un número nonno-negativo, n, en
base b, ondedonde 2<=b<=10. Esta rutina utiliza oel feitohecho de
que noen xogoel juego de carácterescaracteres ANSCII, oslos digitos 0 a 9
teñentienen valores de código secuenciales.
*/
 
Liña 62:
auto a;
 
if(a=n/b) /* asignación, nonno comprobación de igualdadeigualdad */
printn(a, b); /* recursivo */
putchar(n%b + '0');
}
</presource>
 
Este programa de exemploejemplo en B utiliza ala función anterior para sumar tres números imprimindoimprimiendo por pantalla oel resultado.
 
<source lang="c">
<pre>
main( ) {
extrn printn;
Liña 79:
printn(sum,10);
}
</presource>
 
== Enlaces externos ==
==Ligazóns externas==
 
* ''[http://cm.bell-labs.com/cm/cs/who/dmr/chist.html The Development of the C Language]'', Dennis M. Ritchie. PonPone B noen el contexto de BCPL ey C.
* ''[http://cm.bell-labs.com/cm/cs/who/dmr/kbman.html Users' Reference to B]'', Ken Thompson. Describe ala versión para PDP-11.
* ''[http://cm.bell-labs.com/cm/cs/who/dmr/bintro.html The Programming Language B]'', S. C. Johnson & B. W. Kernighan, Technical Report CS TR 8, Bell Labs (XaneiroEnero de 1973). Describe ala versión para GCOS.
 
[[Categoría:LinguaxesLenguajes compiladascompilados|B]]
[[Categoría:LinguaxesLenguajes de programación imperativa|B]]
 
[[ar:بي (لغة برمجة)]]
[[ca:Llenguatge B]]
[[cs:B (programovací jazyk)]]
[[de:B (Programmiersprache)]]
[[en:B (programming language)]]
[[es:B (lenguaje de programación)]]
[[fr:B (langage)]]
[[he:שפת B]]
[[id:B (bahasa pemrograman)]]
[[it:B (linguaggio)]]
[[ja:B言語]]
[[ko:B 프로그래밍 언어]]
[[ms:Bahasa pengaturcaraan B]]
[[nl:B (programmeertaal)]]
[[pl:B (język programowania)]]
[[pt:B (linguagem de programação)]]
[[ru:Би (язык программирования)]]
[[sl:Programski jezik B]]
[[sv:B (programspråk)]]
[[tr:B (programlama dili)]]
[[zh:B語言]]