Babbage
Babbage는 영국의 GEC Computers가 제조한 GEC 4000 계열 미니컴퓨터를 대상으로 1971년경 등장한 고수준 어셈블리 언어(High-Level Assembly Language, HLA)다. 일반적인 고급 언어처럼 식과 제어 구조를 제공하면서도 실제 생성되는 기계 명령과...
| 분류 | 프로그래밍 언어, 고수준 어셈블리어 |
|---|---|
| 최초 등장 | 1971년 |
| 개발 대상 | GEC 4000 계열 미니컴퓨터 |
| 관련 회사 | GEC Computers |
| 명칭 유래 | 찰스 배비지 |
| 프로그래밍 방식 | 명령형 프로그래밍, 절차적 프로그래밍 |
| 추상화 수준 | 고수준 어셈블리 언어 |
| 실행 모델 | 기계 명령으로 변환 |
| 핵심 특징 | 누산기 중심 식, 간단한 구조적 제어문 |
| 대상 아키텍처 | GEC 4000 명령어 집합 |
| 개발 상태 | 역사적 언어 |
| 관련 기술 | GEC 4000, OS4000 |
Babbage는 영국의 GEC Computers가 제조한 GEC 4000 계열 미니컴퓨터를 대상으로 1971년경 등장한 고수준 어셈블리 언어(High-Level Assembly Language, HLA)다. 일반적인 고급 언어처럼 식과 제어 구조를 제공하면서도 실제 생성되는 기계 명령과 레지스터의 동작을 비교적 직접적으로 기술할 수 있도록 설계되었다. 이름은 계산 기계의 선구자인 찰스 배비지에서 유래했으며, 같은 이름의 역사적 인물이나 해석기관용 계산 절차를 직접 가리키는 것은 아니다.[1]
Babbage의 산술·논리 식은 전통적인 수학식과 겉모습이 비슷하지만 우선순위와 괄호를 중심으로 하는 일반 고급 언어의 평가 규칙과 다르다. 연산자와 피연산자를 순서대로 읽어 누산기와 인덱스 레지스터에 대한 기계 명령으로 옮기도록 구성되었다. 덕분에 어셈블러는 복잡한 식 구문 분석 없이도 소스 코드의 연산 순서를 명령어 열로 바꿀 수 있었으며, 프로그래머는 누산기의 이전 값을 의식하면서 계산과 저장 동작을 작성했다.[2]
이 언어에는 IF–THEN–ELSE, WHILE, REPEAT에 해당하는 구조적인 분기·반복 구문과 프로시저 또는 루틴을 작성하는 기능이 포함되었다. 배열이나 바이트 단위 데이터의 접근, 외부 루틴과의 연결 등 하드웨어 및 운영체제에 가까운 작업도 명시적으로 기술할 수 있었다. 고수준 문법을 추가했더라도 실행 모델은 대상 기계의 명령어와 레지스터에 긴밀하게 결합되어 있어, C나 B와 같은 범용 시스템 프로그래밍 언어의 이식성과는 구분된다.
Babbage는 GEC 4000 계열의 시스템 프로그램과 실제 응용 프로그램을 작성하는 수단으로 사용되었다. 이 컴퓨터 계열은 실시간 제어, 다중 사용자 처리 및 특수 장비 등에 활용되었고, 운영체제 서비스의 일부를 펌웨어 Nucleus로 제공하는 독특한 구조를 가졌다. Babbage의 역사는 기계어와 고급 언어 사이의 경계를 재설계해 어셈블러 수준의 제어와 구조적 소스 코드를 함께 제공했던 미니컴퓨터 시대의 언어 설계를 보여준다.