마클리스프

Maclisp
마클리스프
패러다임멀티패러다임: 기능성, 절차성, 반사성, 메타
가족리스프
설계자리처드 그린블랫
존 L. 화이트
개발자MIT: 프로젝트 MAC
처음 등장한1966년 7월, 56년 전(1966-07)
타이핑 분야다이내믹, 스트롱
구현 언어어셈블리 언어, PL/I
플랫폼PDP-6, PDP-10
OS호환되지 않는 타임셰어링 시스템, TOPS-10, TOPS-20, 멀티틱스
파일 이름 확장자.lisp, .fasl
영향을 받다
리스프 1.5
영향받은
일반적인 리스프

Maclisp(또는 MacLISP, MacLisp 또는 MacLISP)는 리스프 언어의 방언프로그래밍 언어입니다.1960년대 후반 Massachusetts Institute of Technology(MIT) Project[1] MAC에서 시작되었으며 Lisp 1.5에 [2]기반을 두고 있습니다.Richard GreenblattPDP-6[1]원래 코드 기반 개발자인 John L.White는 나중에 유지 보수와 개발을 담당했습니다.Maclisp라는 이름은 1970년대 초에 PDP-6 Lisp의 다른 포크, 특히 BBN Lisp와 구별하기 위해 사용되기 시작했습니다.

역사

Maclisp는 Lisp 1.5[3]후손입니다.Maclisp은 변수[4]동적 값에 액세스하고 저장하기 위해 값 셀을 사용하여 Lisp 1.5에서 출발합니다. Lisp 1.5는 변수의 [5]값을 결정하기 위해 연관 목록의 선형 검색을 사용합니다.Maclisp 변수 평가는 더 빠르지만 변수 의미가 다릅니다.Maclisp는 또한 리더 매크로를 사용하여 입출력(I/O)이라고 불리는 읽기 쉬운 입출력을 만들었습니다.입장하는 대신(QUOTE A), 를 입력할 수 있습니다.'A같은 s-dion을 얻을 수 있습니다.두 구현 모두 함수를 속성 목록에 넣지만 Maclisp는 함수를 [6]정의하기 위해 다른 구문을 사용합니다.Maclisp에는 로드 온 디맨드 [7]기능도 있습니다.

Maclisp은 호환되지 않는 타임셰어링 시스템(ITS)을 실행하는 Digital Equipment Corporation PDP-6PDP-10 컴퓨터에서 시작되었으며, 이후 다른 모든 PDP-10 운영 체제(예: 타임셰어링/토탈 운영 체제, TOPS-10TOPS-20)로 이식되었습니다.원래 구현은 어셈블리 언어로 이루어졌지만, 이후 멀티픽스 구현에서는 PL/I를 사용했습니다.Maclisp은 일생 동안 상당히 발전했다.다른[which?] 언어 시스템에서는 일반적으로 메이저릴리즈 [dubious ]번호에 대응하는 주요 기능이 추가되었습니다.

Maclisp는 Macsyma 컴퓨터 대수 체계(CAS) 또는 기호 대수 프로그램을 구현하기 위해 사용되었다.Macsyma의 개발은 또한 Maclisp의 몇 가지[which?] 기능을 주도했다.SHRDLU 블록 월드 프로그램은 Maclisp로 작성되었기 때문에 1980년대 초반까지 인공지능(AI) 연구 커뮤니티에서 널리 사용되었습니다.또한 Planner Scheme와 같은 다른 프로그래밍 언어 구현에도 사용되었습니다.Multics Maclisp는 최초의 Lisp 기반 Emacs 구현에 사용되었습니다.

Maclisp는 영향력 있는 Lisp 구현이었지만 더 이상 활발하게 유지 보수되지 않습니다.그것은 이제 PDP-10 에뮬레이터로 작동하며 초기 AI 프로그램을 실험하는데 사용될 수 있다.

1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
LISP 1, 1.5, LISP 2(abandoned)
마클리스프
인터리스크
MDL
리스프 기계 리스프
스킴 R5RS R6RS R7RS 소형
없음
ZIL(Zork 구현 언어)
프란츠 리스프
일반적인 리스프
르 리스프
MIT 스킴
T
체즈 스킴
Emacs 리스프
자동 LISP
피코리스프
EuLisp
ISLISP
오픈리스프
PLT 방식 라켓
GNU Guile
비주얼 LISP
클로쥬르
LFE
하이

특성.

Maclisp은 cons cell, atom(나중에 기호로 불림), 정수부동소수점 숫자적은 수의 데이터 유형으로 시작되었습니다.이후 추가된 기능: 1등급 데이터 유형이었던 적이 없는 배열, 임의 정밀도 정수(bignums), 문자열튜플.모든 오브젝트(inum 제외)가 포인터로 실장되어 있으며, 그 데이터 타입은 작은 수(inums)의 특수한 케이스와 함께 포인팅한 메모리 블록에 의해 결정됩니다.

프로그램을 해석하거나 컴파일할 수 있습니다.컴파일된 동작은 [8]SPECIAL로 선언되지 않는 한 로컬 변수가 컴파일된 코드로 디폴트로 어휘화되어 CAR 나 CDR 등의 인라인 동작에 대해 에러 체크가 행해지지 않는 것을 제외하고 해석된 동작과 동일합니다.Ncomr 컴파일러(1970년대 중반)는 Lisp 언어에 빠른 숫자 지원을 도입하여 데이터 타입으로 디스패치된 해석 루틴을 호출하는 대신 산술용 머신 코드(명령어)를 생성합니다.따라서 스칼라 연산을 위해 Lisp 산술은 Fortran에 필적할 수 있었습니다(Fortran 어레이와 루프 구현은 훨씬 더 빨랐지만).

원래 버전은 PDP-10의 18비트 워드메모리 주소에 의해 제한되었으며 구현이 슬림하고 단순하게 유지되도록 상당한 노력을 기울였습니다.멀티ics Maclisp는 주소 공간이 훨씬 넓었지만 사용하기에는 비용이 많이 들었습니다.PDP-10의 메모리 및 처리 능력을 초과했을 때 리스프 머신이 발명되었습니다.Lisp Machine Lisp는 Maclisp의 직계 후손입니다.몇몇 다른 리스프 방언들도 사용되었고, 공동체를 통합해야 하는 필요성은 현대 공통 리스프 언어를 만들었다.

이름.

Maclisp은 Project MAC의 이름을 따왔으며, 애플의 Macintosh(Mac) 컴퓨터와는 관련이 없습니다.Macintosh(Mac) 컴퓨터나 John McCarthy와는 관련이 없습니다.Macintosh용 다양한 Lisp 시스템은 Maclisp와 [9]특별히 유사하지 않습니다.

레퍼런스

  1. ^ a b Levy, Steven (1984). Hackers: Heroes of the Computer Revolution. Doubleday. ISBN 0-385-19195-2.
  2. ^ Project MAC Progress Report IV: July 1966 to July 1967 (PDF) (Report). n.d. p. 19. Archived from the original (PDF) on March 8, 2016. The higher-level language used for most of the vision laboratory program is the PDP-6 LISP System. This system is based chiefly on the LISP 1.5 programming language, but has been extensively modified in a number of ways. These include many new functions and services, including facilities for linking with programs written in other languages.
  3. ^ 1974년 달, 1페이지
  4. ^ 1974년 달, 47페이지
  5. ^ Lisp 1.5 페이지 13, 원자 평가e환경 내에서a이 끝나다(cdr (assoc e a))관련 목록을 선형으로 검색해야 합니다.a. 글로벌 상수 및 오류에 대한 보다 자세한 설명은 페이지 71에 나와 있습니다. 연관 목록을 검색하기 전에 속성 목록을 선형으로 검색합니다.
  6. ^ Maclisp는defun; Lisp 1.5 사용define.
  7. ^ 1974년 달, 페이지 107;autoload소유물.
  8. ^ Pitman, Kent (December 16, 2007). "The Revised Maclisp Manual (The Pitmanual), Sunday Morning Edition". maclisp.info. HyperMeta, Inc. Declarations and the Compiler, Concept "Variables". Retrieved October 20, 2018. If the variable to be bound has been declared to be special, the binding is compiled as code to imitate the way the interpreter binds variables.
  9. ^ Pitman, Kent (December 16, 2007). "The Revised Maclisp Manual (The Pitmanual), Sunday Morning Edition". maclisp.info. HyperMeta Inc. p. 1 FAQ q1. Retrieved October 20, 2018. Project MAC had nothing to do with the Apple "Mac". And neither did MACLISP.

외부 링크

  • http://www.softwarepreservation.org/projects/LISP/maclisp_family/에는 Maclisp의 참고 문헌 목록이 있습니다.
    • 존 L. 화이트임시 LISP 사용자 가이드인공지능 메모 190호, 프로젝트 MAC, 매사추세츠 공과대학, 1970년 3월, 87쪽.ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-190.pdf는 "MACLISP"는 프로젝트 MAC의 인공지능 그룹에서 사용 중인 프로그래밍 언어 LISP의 PDP/6 구현을 말합니다.
    • 1973년과 1974년 데이비드 A. Multics의 Honeywell 6180에 MacLisp를 구현하기 위한 노력을 이끌었다.이 프로젝트의 일환으로 그는 '문어얼'로 친숙한 맥리셉을 위한 최초의 진정으로 포괄적인 참조 매뉴얼을 작성했다.[스틸과 가브리엘 1993]
    • Jon L. White [JONL], Eric Rosen [ECR], Richard M. 스톨먼[RMS], 가이 L. 스틸 주니어[GLS], 하워드 1세Cannon [HIC], Bob Kerns [RWK]LISP 뉴스MacLisp 릴리즈 노트
    • 존 L. 화이트LISP: 프로그램은 데이터: MacLISP의 역사적 관점.1977년 MACSYMA 사용자 회의의 진행.NASA 과학기술정보국(Washington, D.C., 1977년 7월), 181-189페이지.PDF
  • McCarthy, John; Abrahams, Paul W.; Edwards, Daniel J.; Hart, Timothy P.; Levin, Michael I. (1985) [1962]. LISP 1.5 Programmer's Manual (2nd ed.). MIT Press. ISBN 0-262-13011-4.
  • Moon, David (1974). Maclisp Reference Manual (PDF).
  • Kent PitmanMaclisp Manual 개정판(1983년)
  • Bernard GreenbergMultics MACLISP 컴파일러(1977)