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:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.