BCPL

BCPL ("Basic Combined Programming Language", hay "Ngôn ngữ lập trình kết hợp cơ bản") là một ngôn ngữ lập trình máy tính thủ tục, mệnh lệnh, và cấu trúc. Ban đầu được định dùng để viết trình biên dịch cho các ngôn ngữ khác, nhưng BCPL không còn được sử dụng phổ biến nữa. Tuy vậy, ảnh hưởng của BCPL vẫn còn với một phiên bản rút gọn và thay đổi cú pháp, gọi là B, là ngôn ngữ mà ngôn ngữ lập trình C dựa vào. BCPL giới thiệu một số tính năng của các ngôn ngữ lập trình hiện đại, gồm dấu ngoặc nhọn để phân định khối mã; biên dịch thông qua bytecode máy ảo; và 'chương trình "Hello, World!"' đầu tiên trên thế giới.

Ví dụ

(LƯU Ý: nếu các chương trình được chạy bằng phiên bản Cintsys hiện tại (tháng 12 năm 2018) của Martin Richards, LIBHDR, START và WRITEF phải được thay đổi sang chữ thường để tránh lỗi.)

In ra các giai thừa:
GET "LIBHDR"

LET START() = VALOF $(
	FOR I = 1 TO 5 DO
		WRITEF("%N! = %I4*N", I, FACT(I))
	RESULTIS 0
$)

AND FACT(N) = N = 0 -> 1, N * FACT(N - 1)

Giải pháp đếm cho bài toán tám quân hậu:
GET "LIBHDR"

GLOBAL $(
	COUNT: 200
	ALL: 201
$)

LET TRY(LD, ROW, RD) BE
	TEST ROW = ALL THEN
		COUNT:= COUNT + 1
	ELSE $(
		LET POSS = ALL & ~(LD | ROW | RD)
		UNTIL POSS = 0 DO $(
			LET P = POSS & -POSS
			POSS:= POSS - P
			TRY(LD + P << 1, ROW + P, RD + P >> 1)
		$)
	$)

LET START() = VALOF $(
	ALL:= 1
	FOR I = 1 TO 12 DO $(
		COUNT:= 0
		TRY(0, 0, 0)
		WRITEF("%I2-QUEENS PROBLEM HAS %I5 SOLUTIONS*N", I, COUNT)
		ALL:= 2 * ALL + 1
	$)
	RESULTIS 0
$)

Lịch sử
BCPL được hiện thực đầu tiên bởi Martin Richards của Đại học Cambridge in 1967.

Tham khảo

Đọc thêm
 Martin Richards, The BCPL Reference Manual (Memorandum M-352, Project MAC, Cambridge, MA, USA, July, 1967) 
 Martin Richards, BCPL - a tool for compiler writing and systems programming (Proceedings of the Spring Joint Computer Conference, Vol 34, pp 557–566, 1969)
 Martin Richards, Arthur Evans, Robert F. Mabee, The BCPL Reference Manual (MAC TR-141, Project MAC, Cambridge, MA, USA, 1974)
 Martin Richards, C. Whitby-Strevens, BCPL, the language and its compiler (Cambridge University Press, 1980)

Liên kết ngoài
 Martin Richards' BCPL distribution
 Martin Richards' BCPL Reference Manual, 1967 by Dennis M. Ritchie
 BCPL entry in the Jargon File
 Nordier & Associates' x86 port
 ArnorBCPL manual
 Ritchie's The Development of the C Language has commentary about BCPL's influence on C

History of computing in the United Kingdom
Procedural programming languages
Programming languages created in 1967
Structured programming languages
Systems programming languages
University of Cambridge Computer Laboratory