정보 처리 언어

Information Processing Language
IPL(정보 처리 언어)
패러다임조립
설계자앨런 뉴웰, 클리프 쇼, 허버트 A. 사이먼
개발자앨런 뉴웰, 클리프 쇼, 허버트 A. 사이먼
첫 등장1956
안정적 해제
IPL-VI
OS크로스 플랫폼: JOHNIAC, IBM 650, IBM 704, IBM 7090
영향받은
리스프

IPL(Information Processing Language)은 앨런 뉴웰, 클리프 쇼, 허버트 A가 만든 프로그래밍 언어. 1956년경 랜드 사와 카네기 공과대학의 사이먼. 뉴웰은 언어 지정자-응용프로그램 프로그래머, 쇼는 시스템 프로그래머, 사이먼은 응용프로그램 프로그래머-사용자라는 직업을 가졌다.

이 코드에는 목록, 동적 메모리 할당, 데이터 유형, 재귀, 인수, 생성기, 협력 멀티태스킹과 같은 간단한 문제 해결 작업을 수행하는 프로그램에 도움을 주기 위한 기능이 포함되어 있다. IPL은 비록 조립 언어 스타일이지만 목록 처리의 개념을 발명했다.

IPL의 기본 사항

IPL 컴퓨터에는 다음이 있다.

  1. 기호 세트. 모든 기호는 주소와 이름 셀이다. 후기 언어의 기호와 달리 기호는 숫자 뒤에 나오는 문자로 구성되며 H1, A29, 9-7, 9-100으로 표기된다.
    1. 문자로 시작하는 셀 이름은 지역적이며 절대 주소다.
    2. "9-"로 시작하는 셀 이름은 로컬이며 단일 목록의 컨텍스트 내에서 의미가 있다. 한 리스트의 9-1은 다른 리스트의 9-1과 독립적이다.
    3. 다른 기호(예: 순수한 숫자)는 내부에 있다.
  2. 세포 세트. 목록은 상호 참조를 포함한 여러 셀로부터 만들어진다. 셀에는 다음과 같은 여러 필드가 있다.
    1. P, 셀을 명령으로 사용할 때는 운용 코드에, 셀이 데이터일 때는 사용하지 않는 3비트 필드.
    2. Q, 셀을 지시로 사용할 때 간접 참조에 사용하고 셀이 데이터일 때는 사용하지 않는 3값 필드.
    3. 세포의 값으로 사용되는 기호인 SIVM.
  3. 현대 언어에서 원시적 기능이라고 불릴 수 있는 일련의 원시적 과정.

IPL의 데이터 구조가 목록이지만, 목록은 여러 언어보다 더 복잡한 구조다. 목록은 예상대로 기호의 단일 연결 순서와 일부 설명 목록으로 구성되며, 이 목록들은 속성 이름과 값이 서로 번갈아 연결된 것으로 해석된다. IPL은 속성 값에 접근하여 이름별로 변이시킬 수 있는 원시성을 제공한다. 설명 목록에는 (9-1 양식의) 로컬 이름이 부여된다. 따라서, 기호 S4와 S5를 포함하고 값 V1을 계수 A1과 계수 V2를 계수 A2에 연관시켜 설명함으로써 L1이라는 이름을 가진 목록은 다음과 같이 저장될 것이다. 0은 목록의 끝을 나타내며, 셀 이름 100, 101 등은 값이 무관한 내부 기호가 자동으로 생성된다. 이 세포들은 기억력 전체에 흩어질 수 있다; 세계적으로 알려져야 하는 지역 이름을 사용하는 L1만이 특정한 장소에 거주하면 된다.

IPL-V 목록 구조 예제
이름 SIV 링크
L1 9-1 100
100 S4 101
101 S5 0
9-1 0 200
200 A1 201
201 V1 202
202 A2 203
203 V2 0

IPL은 목록을 조작하기 위한 어셈블리 언어다. 그것은 특수한 용도의 레지스터로 사용되는 몇 개의 셀을 가지고 있다. 예를 들어 H1은 프로그램 카운터다. H1의 SIV 필드는 현재 지시의 이름이다. 그러나, H1은 목록으로 해석된다; H1의 LINK는 현대적인 용어로, 통화 스택의 시작을 가리키는 포인터다. 예를 들어 서브루틴 호출은 H1의 SIV를 이 스택에 밀어 넣는다.

H2는 프리리스트다. H2에서 메모리를 할당해야 하는 절차, 메모리로 끝나는 절차 등은 H2에 배치한다. 함수에 진입할 때 매개변수 목록은 H0으로 제공되며, 종료 시 결과는 H0으로 반환되어야 한다. 많은 절차들이 성공 또는 실패를 나타내는 부울 결과를 반환하는데, 이 결과는 H5에 입력된다. 10개의 셀인 W0-W9는 공공 작업 저장용으로 예약되어 있다. 절차는 이러한 셀의 값을 저장하고 복원하기 위해 "도덕적으로 구속"(CACM 기사를 인용)된다.

P의 값에 근거한 8가지 지침이 있다: 서브루틴 호출, Push/pop S to H0; S에 첨부된 목록에 S의 기호를 푸시/팝한다; S에 값을 복사한다; 조건부 분기. 이 지침에서는 S가 대상이다. S는 Q=0일 경우 SIB 필드의 값, Q=1일 경우 SIB에 의해 명명된 셀에 있는 기호 또는 Q=2일 경우 SIB에 의해 명명된 셀에 있는 기호에 의해 명명된 셀에 있는 기호 중 하나이다. 조건부 분기를 제외한 모든 경우, 셀의 LINK 필드는 다음에 실행할 명령을 알려준다.

IPL에는 150여 개의 기본 운영 도서관이 있다. 여기에는 다음과 같은 작업이 포함된다.

  • 동일성에 대한 검정 기호
  • 목록의 속성 찾기, 설정 또는 지우기
  • 목록에서 다음 기호 찾기, 목록에 기호 삽입, 전체 목록 지우기 또는 복사
  • 산술 연산(기호 이름)
  • 기호 조작(예: 기호가 정수를 나타내는지 테스트하거나 기호를 로컬로 만드는 방법)
  • I/O 작업
  • 기능 프로그래밍의 반복기와 필터에 해당하는 "Generator". 예를 들어, 생성자는 숫자 목록을 승인하고 제곱 목록을 생성할 수 있다. 발전기는 적절하게 설계된 기능들(강력하게 설계된 기능의 코드 주소)을 논거로 받아들일 수 있다.

역사

IPL은 먼저 베르트랑 러셀알프레드 노스 화이트헤드에 의해 수작업으로 입증된 프린시비아 매티매틱스의 이론들이 실제로 계산에 의해 증명될 수 있다는 것을 증명하기 위해 활용되었다. 사이먼의 자서전 '내의 모델'에 따르면, 이 애플리케이션은 원래 그의 아이들을 컴퓨터 요소로 사용하면서, 프로그램의 상태 변수가 포함된 등록기로 노트 카드를 쓰고 들고 손으로 시뮬레이션을 통해 처음 개발되었다.

IPL은 여러 초기 인공지능 프로그램을 구현하는데 사용되었는데, 또한 같은 저자들, 즉 논리 이론가(1956), 일반 문제 해결사(1957), 그리고 그들의 컴퓨터 체스 프로그램 NSS(1958)에 의해서도 사용되었다.

IPL의 몇 가지 버전은 IPL-I (실행되지 않음), IPL-II (JOHNIAC의 경우 1957년), IPL-III (간단히 제외됨), IPL-IV, IPL-V (1958년, IBM 650, IBM 704, IBM 7090, Philco 모델 212, 그 밖의 많은 버전들이다. 널리 사용), IPL-VI.

그러나 그 언어는 훨씬 더 강력한 특징과 더 간단한 구문, 그리고 자동 쓰레기 수거의 이점을 가진 Lisp에 의해 곧 대체되었다.

레거시 - 컴퓨터 프로그래밍

IPL은 거의 틀림없이 다음과 같은 몇 가지 프로그래밍 언어 특징을 도입했다.

  • 목록 조작 - 일반 목록이 아닌 원자의 목록만 표시
  • 속성 목록—다른 목록에 첨부된 경우에만 해당
  • 고차 기능—조립 프로그래밍은 항상 함수의 주소를 사용하여 컴퓨팅을 허용했지만, IPL은 이러한 조립 언어의 속성을 원칙적인 방법으로 일반화하려는 초기 시도였습니다.
  • 기호를 사용한 계산—기호는 IPL에서 제한된 형태를 가지고 있지만(문자 뒤에 숫자 표시)
  • 가상 시스템

이러한 특징들 중 많은 것들이 일반화, 합리화, 그리고 이후 수 십 년 동안 Lisp와[1] 다른 많은 프로그래밍 언어로 통합되었다.

참조

추가 읽기

  • 뉴웰, A., FC 쇼 "논리 이론 기계 프로그래밍" 1957년 2월 서부 합동 컴퓨터 회의의 진행, 230-240페이지.
  • 뉴웰, 앨런, 프레드 M. 통계로1960번길 "정보 처리 언어 V 소개." CACM 3(4): 205-211.
  • 뉴웰, 앨런 1964년 정보 처리 언어-V 설명서, 제2판. 랜드 코퍼레이션 [앨런 뉴웰], 엥글우드 절벽, NJ: 프렌티스 홀.
  • 새뮤얼, 아서 L.: 게임을 하도록 컴퓨터 프로그래밍. in: 컴퓨터의 진보, Vol. 1, 1960, 페이지 165–192 (esp.: 171-175)

외부 링크