**BCPL** é un acrónimo inglés de *Basic Combined Programming Language* (Linguaxe de Programación Básico Combinado). Foi deseñado por Martin Richards da Universidade de Cambridge en 1966 debido ás dificultades experimentadas coa linguaxe de programación CPL durante os anos 60. O primeiro compilador implementado foi escrito en 1967 mentres Richards visitaba o MIT. A linguaxe foi descrito por primeira vez nun proxecto presentado nunha conferencia informática en 1969. Anos despois, Dennis Ritchie utilizouno como base para desenvolver B (que á súa vez, máis tarde daría lugar ao popular linguaxe de programación C).

É un linguaxe de programación ordenado, potente e moi fácil de adaptar a diferentes arquitecturas. Popularizouse nos programas de arranque das computadoras (*bootstraps* en inglés) debido aos seus compiladores simples e compactos, algúns con capacidade para correr en só 16 kilobytes. Inclusive algúns sistemas operativos foron escritos total ou parcialmente en BCPL (TRIPOS e Amiga Kickstart entre outros).

A principal razón da capacidade de adaptación ás diferentes arquitecturas é a estrutura da súa compilador, o que foi dividido en dous partes. A cara visible do mesmo interpretaba o código fonte e xeraba código máquina para unha máquina virtual; a outra cara do compilador tomaba dito código máquina e traducíao ao código necesario para a arquitectura desexada. Non moito despois, este deseño de compiladores fíxose popular; pero o compilador de Richards foi o primeiro en definir unha máquina virtual para este propósito. Algúns das linguaxes que utilizan o mesmo formato son Xava e Pascal.

A linguaxe ten a peculiaridade de ter só un tipo de dato: a **palabra** (*word* en inglés) composta dunha cantidade fixa de bits elixidos xeralmente para coincidir co tamaño dunha palabra da arquitectura correspondente. A interpretación de calquera valor é determinado polos operadores utilizados para procesalos (***+*** utilizábaos como enteiros, ***!*** como punteiros etc. ). Para poder lograr isto, a implementación carecía dun recoñecemento de tipos. A notación húngara foi desenvolvida para anotar información nos nomes das variables sobre o seu uso e tipo.

Parte da comunidade informática sostén que foi a primeira linguaxe de programación no que se desenvolveron os orixinais do clásico programa "*Ola mundo*" e o primeiro MUD.

En 1979 coñecíanse implementación para polo menos 25 arquitecturas diferentes; pero o seu uso decaeu para os comezos do novo milenio. O seu sucesor B foi fonte de inspiración para C, unha das linguaxes de programación máis utilizados na actualidade para programación de sistemas.

Véxase tamén
------------

### Ligazóns externas

* Distribución oficial de BCPL (en inglés).

| * v
* c
* e
Linguaxes de programación |
| --- |
| Baixo nivel | 

|  |  |
| --- | --- |
| Primeira xeración | Código máquina |
| Segunda xeración | Assembly |

 |
| Alto nivel | 

|  |  |
| --- | --- |
| Terceira xeración | 
* A+
* ABC
* Algol
* B
* BASIC
* C
* C++
* C#
* COBOL
* CPL
* D
* E
* Fortran
* Go
* Java
* JavaScript
* Lisp
* Objective-C
* PL/1
* Pascal
* Smalltalk
* Visual Basic .NET

 |
| Cuarta xeración | 
* Clarion
* Clipper
* Clojure
* Common Lisp
* Erlang
* GNU Octave
* Haskell
* Lisp
* Lua
* Julia
* Perl
* PHP
* Prolog
* Python
* R
* Ruby
* Rust
* S
* Scilab
* Stata
* SQL

 |
| Quinta xeración | 
* Mercury
* OPS5
* Prolog

 |

 |
| 
* Ambiente de desenvolvemento
* Metaprogramación
* Programación a nivel funcional
* Programación estruturada
* Programación non estruturada
* Programación imperativa
* Programación modular
* Programación multidimensional
* Orientación a obxectos

 |

|  |  |
| --- | --- |
| Control de autoridades | 
* Wd: Q810009
* LCCN: sh85012591
* MAG: 2775895771

 |