CPL ( Combined Programming Language ) es un lenguaje de programación de múltiples paradigmas , que se desarrolló a principios de la década de 1960. Es un antepasado del lenguaje C a través de los BCPL y B idiomas.
Paradigma | Multi-paradigma : procedimental , imperativo , estructurado , funcional |
---|---|
Diseñada por | Christopher Strachey y col. |
Apareció por primera vez | 1963 |
Influenciado por | |
ALGOL 60 | |
Influenciado | |
BCPL , POP-2 |
Diseño
CPL [1] se desarrolló inicialmente en el Laboratorio de Matemáticas de la Universidad de Cambridge como el "Lenguaje de Programación de Cambridge" y luego se publicó conjuntamente entre Cambridge y la Unidad de Computación de la Universidad de Londres como el "Lenguaje de Programación Combinado". Christopher Strachey , David Barron y otros participaron en su desarrollo. (CPL también fue apodado por algunos como "Cambridge Plus London" [2] o "Lenguaje de programación de Christopher" [3] ). El primer artículo que lo describe se publicó en 1963, mientras se implementaba en Titan Computer en Cambridge y Atlas Computer en Londres.
Fue 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 el control de procesos industriales, el 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, CPL solo 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 dio lugar, a través de B , a la popular e influyente lenguaje de programación C .
Ejemplo
La función MAX formulada por Peter Norvig: [5]
Max (Items, ValueFunction) = valor de§ (Mejor, MejorValor) = (NULO, -∞)mientras que los elementos lo hacen §(Item, Val) = (Head (Items), ValueFunction (Head (Items)))si Val> BestVal entonces (Best, BestVal): = (Item, Val)Elementos: = Descanso (Elementos) §⃒el resultado es el mejor §⃒
(El símbolo de cierre que coincide con el símbolo de apertura "§" es un "§" con un trazo vertical que lo atraviesa. Ese símbolo puede estar compuesto en Unicode como "§⃒", que es § (U + 00A7, SECTION SIGN) compuesto con ⃒ (U + 20D2, COMBINACIÓN DE SUPERPOSICIÓN DE LÍNEA VERTICAL LARGA), pero es posible que no se muestre correctamente en su navegador).
Implementaciones
Se piensa que CPL nunca se implementó por completo en la década de 1960, existiendo como un constructo teórico con algunos trabajos de investigación sobre implementaciones parciales. [7]
Peter Norvig ha escrito (para Yapps, un compilador-compilador de Python ) un sencillo traductor de CPL a Python para máquinas modernas. [5] [8]
Ver también
Referencias
- ^ Barron, DW; Buxton, JN; Hartley, DF; Nixon, E .; Strachey, C. (1 de agosto de 1963). "Las principales características de CPL" . The Computer Journal . 6 (2): 134-143. doi : 10.1093 / comjnl / 6.2.134 . ISSN 0010-4620 .
- ^ "Clive Feather en CPL y BCPL" . Lysator.liu.se . Consultado el 18 de agosto de 2013 .
- ^ Jensen, Richard (9 de diciembre de 2020). " " Una maldita cosa estúpida ", los orígenes de C" . Ars Technica . Consultado el 10 de diciembre de 2020 .
- ^ Yadav, P. (2005). Informática e Idiomas . Editorial Discovery. ISBN 978-81-8356-041-2.
- ^ a b c Norvig, Peter (23 de agosto de 2011). "Profético pero no perfecto: una mirada hacia atrás en un artículo de 1966 Scientific American sobre análisis de sistemas" . Red de blogs de Scientific American . Consultado el 10 de diciembre de 2020 .
- ^ Mitchell, John C .; Apt, Krzysztof (2003). Conceptos en lenguajes de programación . Prensa de la Universidad de Cambridge. ISBN 978-0-521-78098-8.
- ^ Coulouris, GF (1 de enero de 1968). "El compilador de CPL1 de Londres" . The Computer Journal . 11 : 26-30. doi : 10.1093 / comjnl / 11.1.26 .
- ^ Norvig, Peter. "Programa completo de damas anotadas" . norvig.com . Consultado el 11 de junio de 2021 .
Bibliografía
- Artículos recopilados de Christopher Strachey, sección perteneciente a CPL, archivados en la Bodleian Library, Oxford; CSAC 71.1.80 / C.136-C.184
- D. W. Barron, J. N. Buxton, D. F. Hartley, E. Nixon y C. Strachey. "Las principales características de CPL" The Computer Journal 6 : 2: 134-143 (1963), disponible en línea .
- J. Buxton, J. C. Gray y D. Park. Manual de programación de la escuela primaria CPL, edición II (Cambridge) .
- Instituto de Ciencias de la Computación de la Universidad de Londres y Laboratorio de Matemáticas, Cambridge. Documentos de trabajo de CPL .