POP-11
POP-11이 기사의 외부 링크 사용은 위키피디아의 정책이나 지침을 따르지 않을 수 있다.(2021년 12월)(이를 과 시기 |
POP-11은 해석된 언어의 많은 특징을 가진 반사적이고 점진적으로 컴파일된 프로그래밍 언어다.본래 서섹스 대학에서 개발한 팝로그 프로그래밍 환경의 핵심 언어로서, 최근에는 메인 팝로그 웹사이트를 호스트하는 버밍엄 대학의 컴퓨터 과학 학교에서 사용되고 있다.
POP-11은 에든버러 대학교에서 개발된 POP-2 언어의 진화로, 오픈 스택 모델(포스와 같은 것, 그 중에서도 포스와 같은 것)이 특징이다.주로 절차적이지만 패턴 매처(pattern mather)를 비롯한 선언적 언어구성을 지원하며, 다른 많은 계층의 문제점에 충분한 특징을 가지고 있지만 대부분 인공지능의 연구와 교습에 사용된다.Lisp보다 POP 구문이 더 친숙하다고 생각하는 Pascal과 같은 더 전통적인 언어의 프로그래머들에게 상징적인 프로그래밍 기법을 도입하는 데 종종 사용된다.POP-11의 특징 중 하나는 1등 기능을 지원한다는 점이다.
POP-11은 Poplog 시스템의 핵심 언어다.런타임에 컴파일러와 컴파일러 서브루틴을 이용할 수 있기 때문에(증분 컴파일을 위한 요구 사항) 매크로 시설만 사용할 수 있는 것보다 훨씬 더 광범위한 확장(신규 데이터 유형 추가와 같은 런타임 확장 포함)을 지원할 수 있다.이를 통해 (선택적) 증분 컴파일러를 Prolog, Common Lisp 및 Standard ML에 추가할 수 있게 되었으며, 이 컴파일러는 POP-11 구조를 사용하지 않고 제2 언어로 혼합 언어 개발 또는 개발을 지원하는 데 필요할 때 추가할 수 있었다.이를 통해 한 언어에만 관심이 있는 교사, 연구자, 개발자들이 팝로그를 사용할 수 있게 되었다.POP-11에서 개발된 제품 중 가장 성공적인 것은 ISL이 개발한 클레멘타인 데이터 마이닝 시스템이었다.SPSS가 ISL을 구입한 후 클레멘타인을 C++와 자바에 포팅하기로 결정하였고, 결국 큰 노력으로 (아마도 AI 언어를 사용함으로써 제공되는 유연성의 일부 상실) 성공했다.
POP-11은 한때 값비싼 상업용 패키지(Poplog)의 일부로서만 이용할 수 있었지만, 1999년경부터 다양한 추가 패키지 및 티칭 라이브러리를 포함한 Poplog의 오픈 소스 버전의 일부로 자유롭게 이용할 수 있게 되었다.POP-11을 이용한 ELIZA의 온라인 버전은 버밍엄에서 구할 수 있다.
서섹스 대학에서 데이비드 영은 C, 포트란과 결합하여 POP-11을 사용하여 이미지 처리와 비전을 위한 교육 및 대화형 개발 도구 세트를 개발했으며, 이를 팝비전의 연장선에서 팝로그까지 사용할 수 있게 했다.
단순 코드 예제
간단한 POP-11 프로그램의 예는 다음과 같다.
더블(소스) 정의 -> 결과; 소스*2 -> 결과; 엔드데핀;
더블(123) =>
인쇄된 내용은 다음과 같다.
** 246
여기에는 몇 가지 목록 처리가 포함된다.
;결과, 지수 lvars,[지 않는 한 지수 = 요소 또는 지수 그 지수 요소와 일치하는 지수에 소스에서 -LSB-%;endunless, endfor.%니]]->,시키고, enddefine, RemoveElementsMatching("는",[경우에는 그 고양이는 매트에 앉았습니다]])=>출력는 경우에는[고양이 RemoveElementsMatching(원소, 소스)-> 정의합니다. m에 앉았습니다at] 제거ElementsMatching("the", [[tat] [sat on]))=> ;;;; 출력 [cat] [sat on] RemoveElementsMatching([[=cat]), [[cat]]은 [[big cat]]] =];;; 출력 [[]은 a]이다. 학생들이 '머리'와 '꼬리' 기능(Lisp의 CAR과 CDR)이 접근하는 나무 구조로 패턴을 취급하지 않고도 비교적 쉽게 정교한 목록 처리 프로그램을 개발할 수 있도록 하는 POP-11 패턴 매처(Pattern-11 pattern-processing)를 사용하는 예는 온라인 입문 튜토리얼에서 찾아볼 수 있다.Matcher는 SimAgent(Sim_에이전트) 툴킷의 핵심에 있다.패턴 변수를 인라인 코드 변수에 연결하는 것과 같은 툴킷의 강력한 기능 중 일부는 증분 컴파일러 기능이 없었다면 구현이 매우 어려웠을 것이다.
참고 항목
- COWSEL(일명 POP-1) 프로그래밍 언어
참조
- R. 버스타올, A. 콜린스와 R. Popplstone, 1968년 Edinburgh, Pop-2 University Press의 프로그래밍
- D.J.M. 데이비스, POP-10 사용자 설명서, 컴퓨터 과학 보고서 #25, 웨스턴 온타리오 대학교, 1976
- S. 하디와 C.Mellish, 'Poplog 환경에서 Prolog를 통합'한 J.A. Campbell, Wiley, 1983년 뉴욕, 페이지 147–162
- R. Barrett, A, Ramsay, A.Sloman, POP-11: 인공지능을 위한 실용 언어, Ellis Horwood, Chicester, 1985년
- M. 버튼과 N.애디슨-웨슬리, 1987년 인공지능 POP-11 프로그래밍 샤드볼트
- J. Laventhol, 1987년 블랙웰 과학 출판사 POP-11의 프로그래밍
- R. 배럿과 A.Ramsay, 인공지능 실행:팝-11, 엘리스 호우드, 체스터, 1987의 예.
- M. 샤플스 외, 컴퓨터와 생각, MIT 프레스, 1987. (팝-11을 이용한 인지과학 소개).위에서 참조한 온라인 버전)
- 제임스 앤더슨, 에드, 팝-11 시대: 엘리스 호우드, 치체스터, 1989년 AI 프로그래밍 언어의 발전
- G. 가즈다르와 C.Mellish, Natural Language Processing in Pop11/Prolog/Lisp, Addison Wesley, 1989. (온라인 읽기)
- R. Smith, A. Sloman 및 J. Gibson, POPLOG의 인터랙티브 언어에 대한 2단계 가상 머신 지원, 인지 과학 제5권: 인공지능, Eds. D.Sleeman and N. Bernsen, Lawrence Erlbaum Associates, 페이지 203–231, 1992. (인지과학 연구 보고서 153, School of Informatics, University of Sussex)로 이용 가능.
- 크리스 손튼과 베네딕트 듀 불레이, 검색을 통한 인공지능, 클루워어 아카데미(Paperback 버전 Intelligence Books) 도드레히트 네덜란드 & 노웰, MA USA(Oxford) 1992년.
- A. Sloman, Pop-11 Primer, 1999년 (제3판)
외부 링크
- 무료 Poplog 포털
- POP-11 교육 자료에 대한 정보
- Poplog.org 웹 사이트(프리 팝로그 웹 사이트의 부분 미러 포함) (현재 삭제된 웹 사이트: 인터넷 아카이브 웨이백 머신에서 더 최신 버전 보기)
- POP-11 개요(경험이 풍부한 프로그래머를 위한 프라이머) (alt. PDF)
- 월덱 헤비쉬는 Pop-11에서 작은 프로그래밍 예시를 제작하여 기호 조작, 수치 계산, 논리, 수학에 어떻게 사용될 수 있는지를 보여 주었다.
- 컴퓨터와 생각: Pop-11을 통해 인지과학을 소개하는 온라인 인공지능의 실용적인 소개서.
- OpenPoplog sourceforge 프로젝트.
- SimAgent(Sim_에이전트) 툴킷
- 팝-11 Eliza의 팝로그 시스템.엘리자 자습서
- 1976년 이후 Pop-11의 AI 교수 역사.
- Pop-11의 2-D(X) 그래픽
- 객체 지향 프로그래밍 확장을 Pop-11(일부 CLOST로 모델링 및 다중 상속 지원)으로 객체 분류
- Pop-11의 객체 지향 프로그래밍에 대한 자습서 소개.
- 추가 참조사항
- Pop-11 및 Poplog에 대한 온라인 설명서
- 포팅 정보를 포함한 온라인 시스템 문서
- HOPL(History of Programming Languages) 웹 사이트의 Pop-11에 대한 항목