Knowledge (XXG)

CPL (programming language)

Source 📝

173:, but instead of being extremely small, elegant and simple, CPL was intended for a wider application area than scientific calculations and was therefore much more complex and not as elegant as ALGOL 60. CPL was a big language for its time. CPL attempted to go beyond ALGOL to include industrial process control, business data processing and possibly some early command line games. CPL was intended to allow low-level programming and high level abstractions using the same language. 210:
Max(Items, ValueFunction) = value of § (Best, BestVal) = (NIL, -∞) while Items do § (Item, Val) = (Head(Items), ValueFunction(Head(Items))) if Val > BestVal then (Best, BestVal) := (Item, Val) Items := Rest(Items) ̸§ result is Best ̸§
176:
However, CPL was only implemented very slowly. The first CPL compiler was probably written about 1970, but the language never gained much popularity and seems to have disappeared without trace sometime in the 1970s.
622: 602: 612: 254: 400: 150:
Computer Unit as the "Combined Programming Language" (CPL was also nicknamed by some as "Cambridge Plus London" or "Christopher's Programming Language").
230:
It is thought that CPL was never fully implemented in the 1960s, existing as a theoretical construct with some research work on partial implementations.
617: 607: 492: 456: 440: 375: 158:
and others were involved in its development. The first paper describing it was published in 1963, while it was being implemented on the
119: 32: 365: 40: 430: 556: 241: 183:(for "Basic CPL", although originally "Bootstrap CPL") was a much simpler language based on CPL intended primarily as a 339: 163: 218:) is an approximation of the original symbol, in which the cross stroke is vertical. This is available in Unicode as 497:"Computer Resurrection Issue 62 / The Compiler Compiler - Reflections of a User 50 Years On / The CPL1 Compiler" 555:
Collected papers of Christopher Strachey, section pertaining to CPL, archived at the Bodleian Library, Oxford;
196: 192: 131: 143: 579: 48: 44: 36: 159: 151: 147: 60: 27: 184: 401:"Prescient but Not Perfect: A Look Back at a 1966 Scientific American Article on Systems Analysis" 585:
University of London Institute of Computer Science and The Mathematical Laboratory, Cambridge.
436: 371: 298: 237: 146:
as the "Cambridge Programming Language" and later published jointly between Cambridge and the
472: 426: 288: 191:; it was first implemented in 1967, prior to CPL's first implementation. BCPL then led, via 586: 572: 155: 55: 562: 275:
Barron, D. W.; Buxton, J. N.; Hartley, D. F.; Nixon, E.; Strachey, C. (1 August 1963).
596: 561:
D. W. Barron, J. N. Buxton, D. F. Hartley, E. Nixon, and C. Strachey.
316: 396: 233: 522: 551: 496: 123: 477: 460: 302: 293: 276: 188: 170: 91: 142:
CPL was developed initially at the Mathematical Laboratory at the
180: 127: 103: 122:
developed in the early 1960s. It is an early ancestor of the
580:
CPL Elementary Programming Manual, Edition II (Cambridge)
219: 215: 97: 85: 67: 54: 26: 550:How BCPL evolved from CPL, Martin Richards, 2011 222:but does not display correctly on many systems. 207:The function MAX as formulated by Peter Norvig: 391: 389: 387: 340:""A damn stupid thing to do"—the origins of C" 255:Fundamental Concepts in Programming Languages 8: 214:The closing section block symbol used here ( 21: 623:University of Cambridge Computer Laboratory 603:History of computing in the United Kingdom 20: 578:J. Buxton, J. C. Gray, and D. Park. 476: 292: 16:Computer programming language from 1960s 267: 613:Programming languages created in 1963 523:"Complete Annotated Checkers Program" 7: 338:Jensen, Richard (9 December 2020). 187:language, particularly for writing 120:multi-paradigm programming language 14: 432:Concepts in Programming Languages 236:has written (for Yapps, a Python 195:, to the popular and influential 618:Structured programming languages 608:Procedural programming languages 405:Scientific American Blog Network 244:translator for modern machines. 317:"Clive Feather on CPL and BCPL" 435:. Cambridge University Press. 370:. Discovery Publishing House. 1: 571::2:134-143 (1963), available 501:Computer Conservation Society 169:It was heavily influenced by 116:Combined Programming Language 73:; 61 years ago 639: 563:"The main features of CPL" 461:"The London CPL1 compiler" 277:"The Main Features of CPL" 102: 90: 557:CSAC 71.1.80/C.136-C.184 144:University of Cambridge 478:10.1093/comjnl/11.1.26 367:Computer and Languages 294:10.1093/comjnl/6.2.134 197:C programming language 162:at Cambridge and the 566:The Computer Journal 465:The Computer Journal 281:The Computer Journal 152:Christopher Strachey 148:University of London 61:Christopher Strachey 425:Mitchell, John C.; 185:systems programming 68:First appeared 23: 587:CPL Working Papers 459:(1 January 1968). 399:(23 August 2011). 364:Yadav, P. (2005). 240:) a simple CPL to 493:Coulouris, George 442:978-0-521-78098-8 377:978-81-8356-041-2 238:compiler-compiler 109: 108: 630: 538: 537: 535: 533: 518: 512: 511: 509: 507: 489: 483: 482: 480: 457:Coulouris, G. F. 453: 447: 446: 422: 416: 415: 413: 411: 393: 382: 381: 361: 355: 354: 352: 350: 335: 329: 328: 326: 324: 319:. Lysator.liu.se 313: 307: 306: 296: 272: 221: 217: 81: 79: 74: 56:Designed by 24: 638: 637: 633: 632: 631: 629: 628: 627: 593: 592: 547: 542: 541: 531: 529: 521:Norvig, Peter. 520: 519: 515: 505: 503: 491: 490: 486: 455: 454: 450: 443: 424: 423: 419: 409: 407: 395: 394: 385: 378: 363: 362: 358: 348: 346: 337: 336: 332: 322: 320: 315: 314: 310: 274: 273: 269: 264: 250: 228: 226:Implementations 212: 205: 140: 77: 75: 72: 17: 12: 11: 5: 636: 634: 626: 625: 620: 615: 610: 605: 595: 594: 591: 590: 583: 576: 559: 553: 546: 543: 540: 539: 513: 484: 448: 441: 427:Apt, Krzysztof 417: 383: 376: 356: 330: 308: 287:(2): 134–143. 266: 265: 263: 260: 259: 258: 249: 246: 227: 224: 209: 204: 201: 164:Atlas Computer 160:Titan Computer 139: 136: 107: 106: 100: 99: 95: 94: 88: 87: 83: 82: 69: 65: 64: 58: 52: 51: 33:Multi-paradigm 30: 15: 13: 10: 9: 6: 4: 3: 2: 635: 624: 621: 619: 616: 614: 611: 609: 606: 604: 601: 600: 598: 588: 584: 581: 577: 574: 570: 567: 564: 560: 558: 554: 552: 549: 548: 544: 528: 524: 517: 514: 502: 498: 494: 488: 485: 479: 474: 470: 466: 462: 458: 452: 449: 444: 438: 434: 433: 428: 421: 418: 406: 402: 398: 397:Norvig, Peter 392: 390: 388: 384: 379: 373: 369: 368: 360: 357: 345: 341: 334: 331: 318: 312: 309: 304: 300: 295: 290: 286: 282: 278: 271: 268: 261: 257: 256: 252: 251: 247: 245: 243: 239: 235: 231: 225: 223: 208: 202: 200: 198: 194: 190: 186: 182: 178: 174: 172: 167: 165: 161: 157: 153: 149: 145: 137: 135: 133: 129: 125: 121: 117: 113: 105: 101: 96: 93: 89: 86:Influenced by 84: 70: 66: 62: 59: 57: 53: 50: 46: 42: 38: 34: 31: 29: 25: 19: 568: 565: 545:Bibliography 530:. Retrieved 526: 516: 504:. Retrieved 500: 487: 468: 464: 451: 431: 420: 408:. Retrieved 404: 366: 359: 347:. Retrieved 344:Ars Technica 343: 333: 321:. Retrieved 311: 284: 280: 270: 253: 234:Peter Norvig 232: 229: 213: 206: 179: 175: 168: 156:David Barron 141: 115: 111: 110: 18: 410:10 December 349:10 December 166:at London. 134:languages. 597:Categories 527:norvig.com 262:References 124:C language 98:Influenced 49:functional 45:structured 41:imperative 37:procedural 471:: 26–30. 323:18 August 303:0010-4620 189:compilers 495:(2013). 429:(2003). 248:See also 171:ALGOL 60 126:via the 92:ALGOL 60 28:Paradigm 589:(1966). 582:(1966). 532:11 June 203:Example 118:) is a 76: ( 573:online 439:  374:  301:  242:Python 138:Design 63:et al. 506:3 May 534:2021 508:2023 437:ISBN 412:2020 372:ISBN 351:2020 325:2013 299:ISSN 181:BCPL 130:and 128:BCPL 104:BCPL 78:1963 71:1963 473:doi 289:doi 112:CPL 22:CPL 599:: 525:. 499:. 469:11 467:. 463:. 403:. 386:^ 342:. 297:. 283:. 279:. 220:§⃒ 216:̸§ 199:. 154:, 47:, 43:, 39:, 35:: 575:. 569:6 536:. 510:. 481:. 475:: 445:. 414:. 380:. 353:. 327:. 305:. 291:: 285:6 193:B 132:B 114:( 80:)

Index

Paradigm
Multi-paradigm
procedural
imperative
structured
functional
Designed by
Christopher Strachey
ALGOL 60
BCPL
multi-paradigm programming language
C language
BCPL
B
University of Cambridge
University of London
Christopher Strachey
David Barron
Titan Computer
Atlas Computer
ALGOL 60
BCPL
systems programming
compilers
B
C programming language
Peter Norvig
compiler-compiler
Python
Fundamental Concepts in Programming Languages

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.