PL360

PL360 또는 PL/360은 니클라우스 비르트가 설계하고 비르트, 조지프 W. 웰스 주니어, 에드윈 새터스웨이트 주니어가 스탠퍼드 대학교의 IBM 시스템/360 컴퓨터를 위해 작성한 시스템 프로그래밍 언어이다. PL360에 대한 설명은 1968년 초에 발표되었지만, 구현은 비르트가 1967년 스탠퍼드를 떠나기 전에 완료되었을 가능성이 있다.

설명
PL/360은 알골과 유사한 구문을 가진 원-패스 컴파일러로, 어셈블리어와 유사하게 정확한 기계어 (언어) 명령어 및 레지스터를 지정하는 기능을 제공하지만, 복잡한 산술 표현식 및 제어 구조와 같이 고급 프로그래밍 언어에서 흔히 볼 수 있는 기능도 제공한다. 비르트는 PL360을 사용하여 ALGOL W를 만들었다.

데이터 형식은 다음과 같다.
 바이트 또는 문자 – 1바이트
 짧은 정수 – 2바이트, 2의 보수 이진 표기법의 정수로 해석됨
 정수 또는 논리 – 4바이트, 2의 보수 이진 표기법의 정수로 해석됨
 실수 – 4바이트, 16진수 (십육진법) 짧은 부동소수점 수로 해석됨
 긴 실수 – 8바이트, 16진수 긴 부동소수점 수로 해석됨

레지스터에는 정수, 실수 또는 긴 실수를 포함할 수 있다.

개별 시스템/360 명령어는 형식 및 연산 코드로 명령어를 정의하는 PL360 "함수문"을 사용하여 인라인으로 생성할 수 있다. 함수 인수는 명령어의 필드에 순차적으로 할당되었다. 예시는 다음과 같다.

 정의  참조  UNPK(10,#F300)  UNPK(3,7,B2,worker)  EX(2,#4400)  EX(R1,MVC(0,lines,buffer)) 중첩된 참조 참고

예시
R0, R1, R2 및 FLAG는 사전 선언된 이름이다.

    BEGIN INTEGER BUCKET;
         IF FLAG THEN
         BEGIN BUCKET := R0; R0 := R1; R1 := R2;
               R2 := BUCKET;
         END ELSE
         BEGIN BUCKET := R2; R2 := R1; R1 := R0;
              R0 := BUCKET;
         END
         RESET(FLAG);
    END

구현
비르트는 1963년부터 1967년까지 스탠퍼드에 있었는데, 그 기간의 초반에는 그의 오일러 컴파일러와 인터프리터를 개발하고 있었고, 그 소스는 1965년으로 거슬러 올라간다. 또한 1965년에 스탠퍼드는 코어 메모리 기반 B5000을 드럼 스토리지와 함께 디스크 스토리지를 사용하는 코어 메모리 기반 B5500으로 업데이트했다.

대상 IBM S/360 (기존 IBM 7090을 대체할 예정이었던)이 1967년까지 설치되지 않았기 때문에, PL360의 초기 구현은 알골로 작성되었고 스탠퍼드의 B5500에서 테스트되었다. 일단 작동하면 컴파일러는 PL360으로 재코딩되고 버로스 시스템에서 재컴파일된 다음 바이너리 파일로 S/360으로 옮겨졌다.

B5500은 고급 알골 파생 언어인 ESPOL(Executive Systems Problem Oriented Language)로 프로그래밍되었으며, PL360은 IBM 메인프레임 아키텍처에 유사한 기능을 제공하기 위한 것이었지만, 어셈블러 F와 ESPOL의 주요 기능이 모두 부족했다. 이러한 의도는 대부분 무시되었고, 프로그래머들은 IBM의 매크로 어셈블러 구현을 계속 사용했다.

그러나 1970년대 초 PL360은 더 많은 기능을 제공하도록 확장되었고, 스탠퍼드의 데이터베이스 관리 시스템인 Stanford Physics Information Retrieval System (SPIRES)를 개발하는 데 선택된 프로그래밍 언어가 되었다.

 같이 보기 
 IBM PL/S
 고급 어셈블러
 PL-11

내용주

 각주 

 외부 링크 



 PL360 교과서
 PL360@Everything2

분류:절차적 프로그래밍 언어