CPL ( Lenguaje de programación combinado ) es un lenguaje de programación multiparadigma desarrollado a principios de los años 1960. Es un ancestro temprano del lenguaje C a través de los lenguajes BCPL y B.
CPL [1] fue desarrollado inicialmente en el Laboratorio de Matemáticas de la Universidad de Cambridge como el "Lenguaje de programación de Cambridge" y luego publicado conjuntamente entre Cambridge y la Unidad de Computación de la Universidad de Londres como el "Lenguaje de programación combinado" (CPL también fue apodado por algunos como "Cambridge Plus London" [2] o "Christopher's Programming Language" [3] ). Christopher Strachey , David Barron y otros participaron en su desarrollo. El primer artículo que lo describe se publicó en 1963, mientras se implementaba en Titan Computer en Cambridge y Atlas Computer en Londres.
Estaba fuertemente influenciado por ALGOL 60 , pero en lugar de ser extremadamente pequeño, elegante y simple, CPL estaba destinado a un área de aplicación más amplia que los cálculos científicos y, por lo tanto, era mucho más complejo y no tan elegante como ALGOL 60. CPL era un gran lenguaje para es la hora. CPL intentó ir más allá de ALGOL para incluir control de procesos industriales, procesamiento de datos comerciales y posiblemente algunos de los primeros juegos de línea de comandos. [4] CPL estaba destinado a permitir programación de bajo nivel y abstracciones de alto nivel utilizando el mismo lenguaje.
Sin embargo, la CPL se implementó muy lentamente. El primer compilador CPL probablemente se escribió alrededor de 1970, [5] pero el lenguaje nunca ganó mucha popularidad y parece haber desaparecido sin dejar rastro en algún momento de la década de 1970.
BCPL (para "Basic CPL", aunque originalmente "Bootstrap CPL") era un lenguaje mucho más simple basado en CPL pensado principalmente como un lenguaje de programación de sistemas , particularmente para escribir compiladores ; [6] se implementó por primera vez en 1967, antes de la primera implementación de CPL. BCPL luego condujo, a través de B , al popular e influyente lenguaje de programación C.
La función MAX formulada por Peter Norvig: [5]
Max(Items, ValueFunction) = valor de§ (Mejor, MejorVal) = (NIL, -∞)mientras que los artículos lo hacen §(Artículo, Val) = (Cabeza (Artículos), ValorFunción (Cabeza (Artículos)))si Val > BestVal entonces (Best, BestVal) := (Artículo, Val)Artículos := Resto(Artículos) ̸§el resultado es Mejor ̸§
El símbolo del bloque de la sección de cierre utilizado aquí ( ̸§
) es una aproximación del símbolo original, en el que el trazo transversal es vertical. Está disponible en Unicode, §⃒
pero no se muestra correctamente en muchos sistemas.
Se cree que CPL nunca se implementó completamente en la década de 1960, existiendo como una construcción teórica con algunos trabajos de investigación sobre implementaciones parciales. [7] [8]
Peter Norvig ha escrito (para Yapps, un compilador-compilador de Python ) un sencillo traductor de CPL a Python para máquinas modernas. [5] [9]