ALGOL 60
ALGOL 60은 1960년에 유럽과 미국의 컴퓨터 과학자들이 공동으로 설계한 ALGOL 계열의 프로그래밍 언어이다. 정식 명칭은 Algorithmic Language 1960이며, 수치 계산을 비롯한 알고리즘을 기계와 출판물에서 공통으로 표현할 수 있는 국제적인 언어를 만드는 것을 목...
| 정식 명칭 | Algorithmic Language 1960 |
|---|---|
| 분류 | 프로그래밍 언어, 범용 프로그래밍 언어 |
| 계열 | ALGOL |
| 설계 | 존 배커스, 프리드리히 L. 바우어, 줄리언 그린, 찰스 카츠, 존 매카시, 페테르 나우르, 앨런 펄리스, 하인츠 루티스하우저, 클라우스 자멜손, 아드리안 판 베인하르던, 베르나르 보쿠아, 조지프 웨그스타인, 마이클 우저 |
| 최초 발표 | 1960년 |
| 주요 보고서 | 《Report on the Algorithmic Language ALGOL 60》, 《Revised Report on the Algorithmic Language ALGOL 60》 |
| 패러다임 | 명령형 프로그래밍, 절차적 프로그래밍, 구조적 프로그래밍 |
| 타입 체계 | 정적 타입, 명시적 타입 선언 |
| 스코프 | 어휘적 스코프 |
| 매개변수 전달 | 값에 의한 호출, 이름에 의한 호출 |
| 주요 구현체 | X1 ALGOL 60, Burroughs ALGOL, Elliott ALGOL |
| 이전 언어 | ALGOL 58 |
| 후속 언어 | ALGOL 68 |
| 영향을 준 언어 | Simula, CPL, Pascal, Ada, C, Modula, Scheme |
ALGOL 60은 1960년에 유럽과 미국의 컴퓨터 과학자들이 공동으로 설계한 ALGOL 계열의 프로그래밍 언어이다. 정식 명칭은 Algorithmic Language 1960이며, 수치 계산을 비롯한 알고리즘을 기계와 출판물에서 공통으로 표현할 수 있는 국제적인 언어를 만드는 것을 목적으로 개발되었다. 1958년에 발표된 ALGOL 58을 바탕으로 1960년 1월 파리에서 열린 회의를 통해 설계되었고, 같은 해 5월 언어 보고서가 발표되었다.
ALGOL 60은 프로그램을 begin과 end로 둘러싸인 블록으로 구성하고, 블록 안에서 선언된 이름의 유효 범위를 제한하는 어휘적 스코프를 사용했다. 프로시저 내부에 다른 프로시저를 정의할 수 있었으며, 재귀 호출, 조건문, 반복문, 배열, 값에 의한 호출과 이름에 의한 호출 등을 언어 수준에서 제공했다. 이러한 구조는 이후 구조적 프로그래밍과 블록 구조 프로그래밍 언어가 발전하는 기반이 되었다.
언어의 구문은 메타언어를 이용해 체계적으로 기술되었다. 존 배커스가 ALGOL 계열 언어의 구문을 설명하기 위해 제안한 표기법을 페테르 나우르가 ALGOL 60 보고서에서 확장했으며, 이 표기법은 이후 배커스-나우르 형식으로 불리게 되었다. 프로그래밍 언어의 구문을 형식 문법으로 기술하는 방식은 컴파일러와 프로그래밍 언어 이론의 기본적인 방법으로 자리 잡았다.
ALGOL 60 자체는 FORTRAN이나 COBOL처럼 상업 환경에서 광범위하게 보급되지는 않았다. 표준 보고서가 입출력 기능을 정의하지 않았고 컴퓨터 제조사마다 문자 집합과 구현 방식이 달랐기 때문에 여러 방언과 호환성 차이가 생겼다. 그러나 대학과 연구 기관에서는 알고리즘 작성, 컴파일러 연구와 프로그래밍 언어 교육에 널리 사용되었으며, 오랫동안 학술 논문과 교재에서 알고리즘을 표현하는 사실상의 표준 언어로 기능했다.
ALGOL 60의 영향은 직접적인 사용 규모보다 언어 설계 방식에서 두드러진다. Simula는 ALGOL 60을 확장해 클래스와 객체 개념을 발전시켰고, CPL과 BCPL, B를 거쳐 C로 이어지는 계통에도 영향을 주었다. Pascal, Modula, Ada를 비롯한 여러 언어 역시 ALGOL 60의 블록 구조, 선언 방식과 제어 구조를 계승했다. 이러한 언어들은 넓은 의미에서 ALGOL 계열 언어 또는 ALGOL형 언어로 분류된다.