BCPL(Basic Combined Programming Language)은 1966년케임브리지 대학교에서마틴 리처드가 설계한절차적명령형,구조적컴퓨터프로그래밍 언어이다.
원래 다른 언어들을 위한컴파일러를 작성하기 위해 고안하였다가, BCPL은 더 이상 일반적으로 쓰이지 않게 되었다. 그러나 이 언어의 영향력은 여전한데 BCPL을 문법적으로 변경한 것이 이른바B이고,C 프로그래밍 언어가 이것 위에 기반을 두었기 때문이다. 이로 말미암아 수많은 C 프로그래머들에게Before C Programming Language라는 유머러스한배크로님을 선사해 주었다.[1]
BCPL은 활 괄호({ }
)를 사용한 최초의 프로그래밍 언어이다. 괄호는 거듭되는 문법의 변화를 생존시켰고, 프로그램 소스 코드의 문들을 표기하는 일반적인 수단이 되었다. 현실적으로 당시 키보드의 제한으로 소스 프로그램들은 종종 { } 기호 대신 $( 와 $) 기호를 종종 사용하였다. BCPL에서 쓰이는 '//'라는 한 줄주석은C에 도입되지 않았지만C++과 나중에C99에 다시 등장하였다.
아래의 완전하고 호환성 있는 예제는 마틴 리처드의 BCPL 배포판에서 가져온 것이다.
팩토리얼 인쇄:
GET "LIBHDR"LET START() = VALOF $(FOR I = 1 TO 5 DOWRITEF("%N! = %I4*N", I, FACT(I))RESULTIS 0$)AND FACT(N) = N = 0 -> 1, N * FACT(N - 1)
N퀸 문제의 카운트 해결책:
GET "LIBHDR"GLOBAL $(COUNT: 200ALL: 201$)LET TRY(LD, ROW, RD) BETEST ROW = ALL THENCOUNT := COUNT + 1ELSE $(LET POSS = ALL & ~(LD | ROW | RD)UNTIL POSS = 0 DO $(LET P = POSS & -POSSPOSS := POSS - PTRY(LD + P << 1, ROW + P, RD + P >> 1)$)$)LET START() = VALOF $(ALL := 1FOR I = 1 TO 12 DO $(COUNT := 0TRY(0, 0, 0)WRITEF("%I2-QUEENS PROBLEM HAS %I5 SOLUTIONS*N", I, COUNT)ALL := 2 * ALL + 1$)RESULTIS 0$)
![]() | 이 글은 프로그래밍 언어에 관한토막글입니다. 여러분의 지식으로 알차게문서를 완성해 갑시다. |