CPL (lenguaje de programación)
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.
Diseño
CPL se desarrolló inicialmente en el Laboratorio de Matemáticas de la Universidad de Cambridge como el "lenguaje de programación Cambridge" y posteriormente publicado conjuntamente entre Cambridge y la Unidad de Computación de la Universidad de Londres como "Lenguaje de programación combinado" (Algunos también apodaron a CPL como "Cambridge Plus London" o "Lenguaje de programación de Christopher"). 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 su época. 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. 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, 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 "CPL básico", 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; se implementó por primera vez en 1967, antes de la primera implementación de CPL. Luego, BCPL condujo, a través de B, al popular e influyente lenguaje de programación C.
Ejemplo
La función MAX formulada por Peter Norvig:
Max(Items, ValueFunction) = valor de § (Best, BestVal) = (NIL, -∞) mientras que los artículos hacen § (Item, Val) = (Head(Items), ValueFunction(Head(Items)))) si Val Mejor Val entonces (Best, BestVal):= (Item, Val) Artículos:= Descanso (temas) § el resultado es Best §
(El símbolo de cierre que coincide con el símbolo de apertura "§" es un "§" con un trazo vertical atravesado. En Unicode, "§⃒", pero eso no se muestra correctamente en muchos sistemas).
Implementaciones
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.
Peter Norvig ha escrito (para Yapps, un compilador-compilador de Python) un sencillo traductor de CPL a Python para máquinas modernas.