이 문서의 내용 중 전체 또는 일부는 넥스32 위키에서 가져왔으며 GNU Free Documentation License 1.3에 따라 이용할 수 있습니다.
본 문서의 원본은 링크에서 확인할 수 있습니다.
본 문서의 원본은 링크에서 확인할 수 있습니다.
Chez Scheme | |
기능 | 컴퓨터 언어 |
개발 | 시스코 |
발매 | |
가격 | 자유 |
저작권 | 아파치 라이센스 2.0 |
주개발자 | R. 켄트 디비그 |
운영상태 | 운영중 |
기반 언어 | Scheme |
지원 CPU | 윈도우, 리눅스, 유닉스, 맥OSX |
주소 | www.scheme.com |
1. 개요 ✎ ⊖
체즈 스킴(Chez Scheme)은 스킴(Scheme) 언어의 구현체 중 하나로서, 계보상 리스프(LISP)의 방언 중 하나에 해당한다. 스킴의 표준 규격 중 R6RS규격을 완벽히 준수하며, 체즈스킴의 독자 확장기능을 통해 더욱 빠르고 강력한 기능을 제공한다. 오랜기간동안 상용 스킴 구현체로서 시스코를 통해서 판매되었으나, 2016년 4월 27일 오픈소스로 전환되어 아파치 라이센스 2.0으로 공개되었다.
2. 상세 ✎ ⊖
체즈 스킴(Chez Scheme)은 스킴 언어의 구현체로, 스킴 교재로 널리 사용되는 ‘스킴 프로그래밍 언어(The Scheme Programming Language)(1)‘의 저자로 유명한 인디애나 대학의 교수 로버트 켄트 디비그(R. Kent Dybvig)가 1985년 만들었다.
처음에는 병렬 컴퓨팅 모델인 셀룰러 컴퓨터 아키텍쳐에서 돌아가는 스킴을 만들다가 태어났다. 해당 아키텍쳐에 다른 스킴 구현체의 이식으로 원하는 만큼의 성능이 나오지 않자 프로파일링을 반복해 최적화를 하여 1984년 말에 버전1이 완성되었다. 기본적으로 네이티브 바이너리 컴파일을 하는 독자적인 컴파일러를 내장하며 최적화된 가비지 컬렉터를 가지고 있다.
초기에는 VAX 아키텍쳐의 BSD 유닉스 계열에서 작동되는 것을 전제로 공개되었고, 이후 버전이 올라가며 MIPS, PowerPC, SPARC, x86, 68000 등의 다양한 아키텍쳐에서 돌아가도록 플랫폼을 확장해나갔다. 최신버전인 체즈 스킴 9.5는 x86과 x86_64 아키텍쳐 기반의 리눅스, 유닉스, 맥OS, 윈도우즈를 지원하며 ARM과 PowerPC 32비트 아키텍쳐 기반의 리눅스와 유닉스를 지원한다. 스킴 표준규격도 초기에는 R2RS규격으로 만들어졌다가 버전2에서 R3RS, 버전4에서 R4RS, 버전6에서 R5RS, 버전8에서 R6RS규격 따르게 개량되어왔다. 아직 초안상태인 R7RS 규격으로의 이전은 계획이 없다고 한다.
처음 만들 때부터 속도에 중점을 두고 최적화를 한 구현체다보니 여타 스킴 뿐만 아니라 상용 리스프 구현체 전체에서도 거의 경쟁자가 없을 정도로 빨랐다고 한다. 그러나 빠른 속도와 안정성으로 높은 평가에도 불구하고 기본적으로 상용으로 제공되는데다가 판매 가격이 개인이 구매해서 쓸만한 가격이 아니었던지라(남아있는 자료에 따르면 2002기준으로 개인 컴퓨터용 첫 라이센스 가격이 4000달러, 추가 라이센스가 대당 3000달러였으며 서버용은 한대용 라이센스가 9000달러 두대용이 1만4000달러, 세대이상이 1만9000달러였다. 단 오픈소스로 전환하기 직전인 2013년에는 1카피당 65달러, 10카피당 325달러로 많이 저렴해졌었다) 스킴이 필요한 일부 기업들에게서만 수요가 있었을 뿐 널리 사용되지는 않았었다. 대신 1998년 6.1버전부터 인터프리터 기능만을 제공하는 Petite Chez Scheme(쁘띠 체즈 스킴)의 바이너리는 무료 제공하였으나 인터프리터라는 한계 때문에 상대적으로 속도면의 이득이 크지 않았고 FFI(foreign function interface)를 지원하지 않는 등의 제한 때문에 오픈소스로 만들어진 다른 스킴이나 리스프 구현체에 비해서 인지도를 얻지는 못했다.
2016년 4월 27일을 기점으로 체즈스킴 9.4 버전을 아파치 라이센스 2.0 방식으로 오픈소스화되어 깃허브에 전체 코드가 공개되었고 이후 활발한 커뮤니티 활동과 활용방안이 나오고 있다. (이전에는 상업라이센스를 확보한 회사만 쓸 수 있었기 때문에 체즈 스킴을 위한 라이브러리나 각종 활용 팁은 인터넷상에서 얻을 수 있는게 거의 없다시피했다)
처음에는 병렬 컴퓨팅 모델인 셀룰러 컴퓨터 아키텍쳐에서 돌아가는 스킴을 만들다가 태어났다. 해당 아키텍쳐에 다른 스킴 구현체의 이식으로 원하는 만큼의 성능이 나오지 않자 프로파일링을 반복해 최적화를 하여 1984년 말에 버전1이 완성되었다. 기본적으로 네이티브 바이너리 컴파일을 하는 독자적인 컴파일러를 내장하며 최적화된 가비지 컬렉터를 가지고 있다.
초기에는 VAX 아키텍쳐의 BSD 유닉스 계열에서 작동되는 것을 전제로 공개되었고, 이후 버전이 올라가며 MIPS, PowerPC, SPARC, x86, 68000 등의 다양한 아키텍쳐에서 돌아가도록 플랫폼을 확장해나갔다. 최신버전인 체즈 스킴 9.5는 x86과 x86_64 아키텍쳐 기반의 리눅스, 유닉스, 맥OS, 윈도우즈를 지원하며 ARM과 PowerPC 32비트 아키텍쳐 기반의 리눅스와 유닉스를 지원한다. 스킴 표준규격도 초기에는 R2RS규격으로 만들어졌다가 버전2에서 R3RS, 버전4에서 R4RS, 버전6에서 R5RS, 버전8에서 R6RS규격 따르게 개량되어왔다. 아직 초안상태인 R7RS 규격으로의 이전은 계획이 없다고 한다.
처음 만들 때부터 속도에 중점을 두고 최적화를 한 구현체다보니 여타 스킴 뿐만 아니라 상용 리스프 구현체 전체에서도 거의 경쟁자가 없을 정도로 빨랐다고 한다. 그러나 빠른 속도와 안정성으로 높은 평가에도 불구하고 기본적으로 상용으로 제공되는데다가 판매 가격이 개인이 구매해서 쓸만한 가격이 아니었던지라(남아있는 자료에 따르면 2002기준으로 개인 컴퓨터용 첫 라이센스 가격이 4000달러, 추가 라이센스가 대당 3000달러였으며 서버용은 한대용 라이센스가 9000달러 두대용이 1만4000달러, 세대이상이 1만9000달러였다. 단 오픈소스로 전환하기 직전인 2013년에는 1카피당 65달러, 10카피당 325달러로 많이 저렴해졌었다) 스킴이 필요한 일부 기업들에게서만 수요가 있었을 뿐 널리 사용되지는 않았었다. 대신 1998년 6.1버전부터 인터프리터 기능만을 제공하는 Petite Chez Scheme(쁘띠 체즈 스킴)의 바이너리는 무료 제공하였으나 인터프리터라는 한계 때문에 상대적으로 속도면의 이득이 크지 않았고 FFI(foreign function interface)를 지원하지 않는 등의 제한 때문에 오픈소스로 만들어진 다른 스킴이나 리스프 구현체에 비해서 인지도를 얻지는 못했다.
2016년 4월 27일을 기점으로 체즈스킴 9.4 버전을 아파치 라이센스 2.0 방식으로 오픈소스화되어 깃허브에 전체 코드가 공개되었고 이후 활발한 커뮤니티 활동과 활용방안이 나오고 있다. (이전에는 상업라이센스를 확보한 회사만 쓸 수 있었기 때문에 체즈 스킴을 위한 라이브러리나 각종 활용 팁은 인터넷상에서 얻을 수 있는게 거의 없다시피했다)
3. Scheme Widget Library ✎ ⊖
GUI 플랫폼을 구현하고 컨트롤하기 위한 라이브러리로, Tcl/Tk에 기반해서 체즈 스킴으로 구현된 멀티 플랫폼 라이브러리다. 체즈 스킴 8.4버전까지만 지원되고 지원이 중단되었다.단 당시 제공되던 코드는 현재도 다운 받을 수 있다. #
원래는 인디애나 대학에서 연구용으로 개발된 라이브러리로, 각종 그래픽처리와 이벤트처리를 관리할 수 있는 강력한 도구를 제공했다. 윈도우즈, 리눅스 및 BSD계 유닉스, 맥OSX 등에서 모두 작동하며 플랫폼에 관계없이 GUI구현에 필요한 기능들을 사용할 수 있었다.
원래는 인디애나 대학에서 연구용으로 개발된 라이브러리로, 각종 그래픽처리와 이벤트처리를 관리할 수 있는 강력한 도구를 제공했다. 윈도우즈, 리눅스 및 BSD계 유닉스, 맥OSX 등에서 모두 작동하며 플랫폼에 관계없이 GUI구현에 필요한 기능들을 사용할 수 있었다.
4. 트리비아 ✎ ⊖
현재 라켓 언어의 새 버전인 라켓7이 체즈 스킴을 베이스로 재구현을 하고 있다. C코드가 많았던 라켓 구현체의 구성 때문에 생기는 이식성 한계를 체즈 스킴을 통해서 극복하려는데 주요한 목적을 두고 있다고 한다.
2018년 1월 진척사항은 라켓 블로그에서 확인 가능하다.
2018년 1월 진척사항은 라켓 블로그에서 확인 가능하다.