Articulo de referencia

CPL (lenguaje de programación)

CPL ( Combined Programming Language ) es un lenguaje de programación multiparadigma desarrollado a principios de la década de 1960. Es un antecesor temprano del lenguaje C a tra...

CPL ( Combined Programming Language ) es un lenguaje de programación multiparadigma desarrollado a principios de la década de 1960. Es un antecesor temprano del lenguaje C a través de los lenguajes BCPL y B.

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 posteriormente se publicó 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 "Lenguaje de Programación de Christopher" [ 3 ] ). Christopher Strachey , David Barron y otros participaron en su desarrollo. El primer artículo que lo describía se publicó en 1963, mientras se implementaba en la computadora Titan de Cambridge y en la computadora Atlas de Londres.

Estuvo fuertemente influenciado por ALGOL 60 , pero en lugar de ser extremadamente pequeño, elegante y simple, CPL fue diseñado para un área de aplicación más amplia que los cálculos científicos y, por lo tanto, era mucho más complejo y menos elegante que ALGOL 60. CPL fue un lenguaje importante para su época, e intentó ir más allá de ALGOL para incluir el control de procesos industriales, el procesamiento de datos comerciales y posiblemente algunos juegos de línea de comandos primitivos. [ 4 ] CPL fue diseñado para permitir la programación de bajo nivel y las abstracciones de alto nivel utilizando el mismo lenguaje.

Sin embargo, CPL se implementó muy lentamente. El primer compilador de CPL probablemente se escribió alrededor de 1970, [ 5 ] pero el lenguaje nunca alcanzó mucha popularidad y parece haber desaparecido sin dejar rastro en algún momento de la década de 1970.

BCPL (por "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.

Ejemplo

La función MAX tal como la formuló Peter Norvig : [ 5 ]

Max(Items, ValueFunction) = valor de § (Mejor, MejorValor) = (NULO, -∞) mientras que los artículos lo hacen § (Elemento, Valor) = (Encabezado(Elementos), FunciónValor(Encabezado(Elementos))) Si Val > BestVal, entonces (Best, BestVal) := (Item, Val) Elementos := Resto(Elementos) ̸§ El resultado es el mejor. 

El símbolo de bloque de sección de cierre utilizado aquí ( ̸§) es una aproximación del símbolo original, en el que la cruz es vertical. Está disponible en Unicode como , §⃒pero no se muestra correctamente en muchos sistemas.

Implementaciones

Se cree que el CPL nunca se implementó completamente en la década de 1960, existiendo como un constructo teórico 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 ]

Véase también

Referencias

  1. 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 . 
  2. "Clive Feather sobre CPL y BCPL" . Lysator.liu.se . Consultado el 18 de agosto de 2013 .
  3. ^ Jensen, Richard (9 de diciembre de 2020). ""Una estupidez mayúscula"—los orígenes de C" . Ars Technica . Consultado el 10 de diciembre de 2020 .
  4. Yadav, P. (2005). Computadoras y lenguajes . Discovery Publishing House. ISBN 978-81-8356-041-2.
  5. 1 2 3 Norvig, Peter (23 de agosto de 2011). "Presencial pero no perfecto: una mirada retrospectiva a un artículo de Scientific American de 1966 sobre análisis de sistemas" . Scientific American Blog Network . Recuperado el 10 de diciembre de 2020 .
  6. Mitchell, John C.; Apt, Krzysztof (2003). Concepts in Programming Languages . Cambridge University Press. ISBN 978-0-521-78098-8.
  7. Coulouris, GF (1 de enero de 1968). "El compilador London CPL1" . The Computer Journal . 11 : 26–30 . doi : 10.1093/comjnl/11.1.26 .
  8. Coulouris, George (2013). "Computer Resurrection Número 62 / El compilador: reflexiones de un usuario 50 años después / El compilador CPL1" . Computer Conservation Society . Consultado el 3 de mayo de 2023 .
  9. Norvig, Peter. "Programa completo de damas anotadas" . norvig.com . Consultado el 11 de junio de 2021 .

Bibliografía

  • Cómo evolucionó BCPL a partir de CPL, Martin Richards, 2011
  • Documentos recopilados de Christopher Strachey, sección relativa a CPL, archivados en la Biblioteca Bodleiana de 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 elemental de CPL, segunda edición (Cambridge) (1966).
  • Instituto de Informática de la Universidad de Londres y Laboratorio Matemático de Cambridge. Documentos de trabajo del CPL (1966).