BCPL (lenguaje de programación)
# BCPL (lenguaje de programación)

BCPL es la sigla en inglés de Basic Combined Programming Language (Lenguaje de Programación Básico Combinado). Fue diseñado por Martin Richards de la Universidad de Cambridge en 1966 debido a las dificultades experimentadas con el lenguaje de programación CPL durante los años 60. El primer compilador implementado fue escrito en 1967 mientras Richards visitaba el MIT. El lenguaje fue descrito por primera vez en un proyecto presentado en una conferencia informática en 1969. Años después, Dennis Ritchie y Ken Thompson lo utilizaron como base para desarrollar B (que a su vez, más tarde daría lugar al popular lenguaje de programación C).

Es un lenguaje de programación ordenado, potente y muy fácil de adaptar a diferentes arquitecturas. Se popularizó en los programas de arranque de las computadoras (bootstraps en inglés) debido a sus compiladores simples y compactos, algunos con capacidad para correr en solo 16 kilobytes. Inclusive algunos sistemas operativos fueron escritos total o parcialmente en BCPL (TRIPOS y Amiga Kickstart entre otros).

La principal razón de la capacidad de adaptación a las diferentes arquitecturas es la estructura de su compilador, el que fue dividido en dos partes. La cara visible del mismo interpretaba el código fuente y generaba código máquina para una máquina virtual; la otra cara del compilador tomaba dicho código máquina y lo traducía al código necesario para la arquitectura deseada. No mucho después, este diseño de compiladores se hizo popular; pero el compilador de Richards fue el primero en definir una máquina virtual para este propósito. Algunos de los lenguajes que utilizan el mismo formato son Java y Pascal.

El lenguaje tiene la peculiaridad de tener solo un tipo de dato: la palabra (word en inglés) compuesta de una cantidad fija de bits elegidos generalmente para coincidir con el tamaño de una palabra de la arquitectura correspondiente. La interpretación de cualquier valor es determinado por los operadores utilizados para procesarlos (por ejemplo, + sumaba dos valores tratandolos como enteros, ! realizaba una indirección tratando el valor como puntero). Para poder lograr esto, la implementación carecía de un chequeo de tipos. La notación húngara fue desarrollada para anotar información en los nombres de las variables sobre su uso y tipo.

Parte de la comunidad informática sostiene que fue el primer lenguaje de programación en el que se desarrollaron los originales del clásico programa "Hola mundo" y el primer MUD.

En 1979 se conocían implementación para al menos 25 arquitecturas diferentes; pero su uso decayó para los comienzos del nuevo milenio. Su sucesor B fue fuente de inspiración para C, uno de los lenguajes de programación más utilizados en la actualidad para programación de sistemas.

