BCPL(Basic Combined Programming Language)은 1966년 영국의 마틴 리차즈(Martin Richards)에 의해 개발된 프로그래밍 언어이다. 주로 시스템 프로그래밍과 컴파일러 구현에 사용되었으며, 당시의 고급 언어 설계 목표인 기계 독립성과 간결한 문법을 추구하였다.
개요
- 형식: 절차형 고급 언어
- 개발 연도: 1966년
- 주요 설계자: 마틴 리차즈(Martin Richards)
- 표준화: 공식적인 국제 표준은 존재하지 않으며, 여러 구현체가 독립적으로 배포되었다.
역사
BCPL은 1960년대 후반에 영국 케임브리지 대학의 컴퓨터 과학 연구팀을 위해 설계되었다. 이름에서 알 수 있듯이, BCPL은 “Basic Combined Programming Language”의 약자로, 당시 널리 사용되던 언어인 CPL(Combined Programming Language)의 간소화된 버전을 목표로 했다.
1970년대 초반에는 BCPL을 기반으로 한 여러 파생 언어가 등장했으며, 그 중 가장 유명한 것이 C 언어이다. 데니스 리치(Dennis Ritchie)가 개발한 C는 BCPL의 문법과 개념을 차용하면서도 타입 시스템과 메모리 모델을 확장하였다. 따라서 BCPL은 현대 프로그래밍 언어 설계에 영향을 미친 초기 언어 중 하나로 평가된다.
특징
- 타입 시스템: BCPL은 기본적으로 타입이 없는 언어로 설계되었으며, 모든 데이터는 하나의 기본 유형(워드)으로 취급된다.
- 문법: 간결한 구문을 제공하여 코드 작성과 이해가 비교적 쉬웠다.
- 포터블성: 기계 독립적인 설계로 다양한 하드웨어 플랫폼에서 구현될 수 있었다.
- 전처리기: 매크로와 조건부 컴파일을 지원하는 전처리 기능을 제공하였다.
구현 및 사용
BCPL은 초기 컴퓨터 시스템과 운영체제 개발, 특히 영국과 유럽의 대학 및 연구기관에서 널리 사용되었다. 또한, 1970년대 말까지도 일부 임베디드 시스템과 교육용 언어로 활용되었다. 주요 구현체로는 bcpl 인터프리터와 여러 컴파일러가 존재한다.
영향
BCPL은 다음과 같은 분야에 영향을 미쳤다.
- C 언어: BCPL의 설계 원칙과 구문이 C의 초기 사양에 직접 반영되었다.
- 시스템 프로그래밍: 저수준 메모리 접근과 효율적인 코드 생성을 가능하게 하여 운영체제와 컴파일러 구현에 활용되었다.
- 프로그래밍 언어 연구: 타입 없는 언어 설계, 전처리 매크로, 포터블 어셈블리 등 다양한 연구 주제에 기초 자료를 제공했다.
현재 상태
오늘날 BCPL은 실무에서 활발히 사용되지 않으며, 주로 프로그래밍 언어의 역사와 초기 시스템 프로그래밍 연구 자료로 남아 있다. 일부 고전 컴퓨팅 애호가와 교육 기관에서는 역사적 관점에서 BCPL 코드를 학습하거나 실험용으로 활용하기도 한다.