CMU 공통 리스프

CMU Common Lisp
쿠루쿠
원저작자카네기 멜론 대학교
개발자여러가지
초기 릴리즈1980년 초, 42년 전(1980년)
안정된 릴리스
2018년[1] 12월 8일, 3년 전(2018-12-08)
저장소
운영 체제여러 POSIX 준거 OS
플랫폼크로스 플랫폼
이용가능기간:일반적인 리스프
유형컴파일러런타임
면허증.퍼블릭 도메인
웹 사이트www.cons.org/cmucl/

CMUCL은 무료 Common Lisp 구현으로, 원래 Carnegie Mellon University에서 개발되었습니다.

CMLUL은 Linux 및 BSD를 포함대부분의 Unix와 유사한 플랫폼에서 실행되며 실험적인 Windows 포트도 있습니다.스틸 뱅크 커먼 리스프는 CMUCL에서 파생되었으며, Scieneer 커먼 리스프는 CMUCL에서 파생되었습니다.

역사

첫 번째 구현은 Common Lisp보다 이전이며 1980년경 Spice Lisp의 일부였습니다.1985년에 Rob MacLachlan은 Python 컴파일러가 될 컴파일러를 다시 쓰기 시작했고 CMUCL은 IBM PC RT, MIPS 및 SPARC와 같은 Unix 워크스테이션으로 이식되었습니다.초기 CMUCL 릴리스는 레지스터가 부족하여 인텔의 x86 아키텍처를 지원하지 않았습니다.CMUCL은 타입 태그 부착 데이터 타입과 즉시 데이터 타입을 엄밀하게 구분하여 가비지 컬렉터는 CPU 레지스터의 한쪽에는 태그 부착 타입만 저장할 수 있고 다른 한쪽에는 태그 부착되지 않은 타입만 저장할 수 있다는 것을 알고 있어야 합니다.이로 인해 Python 백엔드에 충분한 레지스터가 남지 않았습니다.

CMU가 프로젝트를 취소한 후(CMUCL의 컴파일러 기반 중 일부를 사용한 딜런 구현에 찬성함) 유지보수는 자원봉사자 그룹에 의해 인계되었습니다.1996년까지 이 그룹은 자체 인프라에서 정기적으로 출시되었습니다.

같은 시기에 인텔의 x86 아키텍처에 대한 포트가 완성되었습니다.처음에는 FreeBSD, 나중에는 Linux에서 실행되었습니다.레지스터 부족 문제는 새로운 보수적 가비지 수집기에 의해 해결되었다.이 새로운 가비지 컬렉터는 레지스터 내의 모든 유형의 값을 허용하며 대상을 수집하거나 이동하지 않기 위해 포인터가 될 수 있는 모든 값을 포인터로 처리합니다.

컴파일러 및 기타 코드 실행 장치

  • CMUCL은 주로 리플리케이션용으로 사용되는 인터프리터를 갖추고 있지만 컴파일이 필요 없는 리스프 파일을 보다 빠르게 로드할 수 있습니다.
  • 컴팩트 바이트 코드를 해석하는 머신(컴파일러에서 내보낼 수 있습니다).현재는 거의 사용되지 않지만, 인터넷에서 다운로드 대역폭이 낮았던 시기에는 이미지 크기가 크게 줄어들었기 때문에 초기 CUCL 릴리즈에서 인기가 있었습니다.
  • Python이라는 네이티브 코드 컴파일러입니다(Python 프로그래밍 언어와 혼동하지 마십시오).만약 Common Lisp 소스 코드가 적절한 선언으로 작성되고 속도를 염두에 두고 구성된다면, Python 컴파일러는 C++와 같은 언어에서 컴파일된 코드에 비해 오버헤드가 거의 없는 코드를 생성합니다.함수 호출 인터페이스나 사용자 정의 데이터 유형의 포인터 프리 어레이 부족 등 일부 비효율성은 공통 리스프 표준에 의해 규정되며, 여전히 대처해야 합니다(예를 들어 사용자 정의 구조처럼 보이지만 실제로는 사전에 할당된 특수 구조 필드에 액세스하기 위해 더 많은 정보를 삽입하고 매크로를 사용하는 등).어레이)Python 컴파일러는 또한 강력한 유형 추론을 특징으로 하며, 자동으로 유형을 추론하거나 놓친 최적화 기회에 대한 힌트를 제공하여 프로그래머가 오버헤드가 없는 코드를 작성할 수 있도록 도와줍니다.

특징들

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Home · Wiki · cmucl / cmucl · GitLab".

외부 링크