聽說ChezScheme是最快的神級編譯器,一秒鐘幾百萬行,王垠說的2秒內編譯自身毫不是誇張(看這裏《揭祕Chez Scheme》,Scheme中文社區)。ChezScheme由美國印第安納大學大學的Kent Dybvig博士發明,後來賣給了思科CISCO,做爲內部絕密的編譯器工具來運行苛刻的計算任務,如今已經開源,倉庫地址是https://github.com/cisco/ChezScheme。有關如何開始使用Chez Scheme,請看官方的文檔:Chapter 2. Using Chez Scheme,有關Scheme的使用入門,這裏推薦一本中文翻譯的《Yet Another Scheme Tutorial》,這是一本面向初學者的溫和且按部就班的Scheme教程。目標讀者是僅有些許編程經驗的PC用戶。html
下面來介紹下截止到2019.11.19日的最新版如何在Windows下編譯一個ChezScheme,其它環境下如何編譯請看源碼下的文件BUILDING的介紹:Building Chez Scheme Version 9.5.3。請注意這個版本號,以前的版本編譯方法可能與本文介紹的不一樣,本人也爲此踩坑了很多時間。git
1,首先,安裝Visual Studio 2015/2017,注意必須選擇按照Visual C++ 桌面開發組件,不然你在最後一步沒法編譯Scheme。github
2,安裝msys2,這是一個Windows下的Linux Shell環境,可讓你在Windows上使用Linux命令,而且它還自帶包管理功能。安裝完後按照官網提示更新下msys2,會給你安裝一堆組件,默認都安裝。shell
3,打開Visual Studio命令提示符,選擇「vs2015 x64 native tools command prompt」,vs2017相似,中文名稱是「適用於VS2017的本機命令工具提示」。編程
4,在上面的Visual Studio命令提示工具裏面,輸入 c:\msys64\msys2_shell.cmd,打開msys2的命令提示窗口。工具
5,在msys2裏面安裝GCC編譯工具和Git工具,若是Git已經安裝跳過。學習
pacman -S gcc base-devel pacman -S git
6,下載Chez Scheme源碼,而後進行編譯前配置,最後編譯。若是源碼已經下載跳過。ui
git clone https://github.com/cisco/ChezScheme.git cd ChezScheme cd wininstall make workareas make
7,最後等make完成,咱們在ChezScheme目錄 a6nt\bin\a6nt 下能夠看到scheme.exe,雙擊它便可運行。spa
8,將a6nt目類下的 bin目錄和boot目錄都複製到一個新建的build目錄下,而後建立一個 run.bat 文件,文件內容以下:翻譯
@ECHO off ECHO Chez Scheme for Windows. make by bluedoctor. 2019.11.18 bin\a6nt\scheme.exe
build目錄的文件結構以下:
E:\ChezScheme\build\ChezScheme>dir /s 驅動器 E 中的卷是 LENOVO 卷的序列號是 E2D7-2E41 E:\ChezScheme\build\ChezScheme 的目錄 2019/11/18 23:23 <DIR> . 2019/11/18 23:23 <DIR> .. 2019/11/18 23:23 <DIR> bin 2019/11/18 23:19 <DIR> boot 2019/11/19 10:38 94 run.bat 1 個文件 94 字節 E:\ChezScheme\build\ChezScheme\bin 的目錄 2019/11/18 23:23 <DIR> . 2019/11/18 23:23 <DIR> .. 2019/11/18 23:19 <DIR> a6nt 0 個文件 0 字節 E:\ChezScheme\build\ChezScheme\bin\a6nt 的目錄 2019/11/18 23:19 <DIR> . 2019/11/18 23:19 <DIR> .. 2019/11/18 20:25 764,928 csv953.dll 2019/11/18 20:25 7,102 csv953.exp 2019/11/18 20:25 1,581,688 csv953.ilk 2019/11/18 20:25 12,368 csv953.lib 2019/11/18 20:25 2,084,864 csv953.pdb 2019/11/18 20:25 112,640 scheme.exe 2019/11/18 20:25 430,080 scheme.pdb 7 個文件 4,993,670 字節 E:\ChezScheme\build\ChezScheme\boot 的目錄 2019/11/18 23:19 <DIR> . 2019/11/18 23:19 <DIR> .. 2019/11/18 23:19 <DIR> a6nt 0 個文件 0 字節 E:\ChezScheme\build\ChezScheme\boot\a6nt 的目錄 2019/11/18 23:19 <DIR> . 2019/11/18 23:19 <DIR> .. 2019/11/18 20:25 2,751,464 csv953md.lib 2019/11/18 20:25 2,564,910 csv953mt.lib 2019/11/18 17:14 36,556 equates.h 2019/11/18 20:24 27,609 mainmd.obj 2019/11/18 20:25 25,538 mainmt.obj 2019/11/18 17:14 1,624,450 petite.boot 2019/11/18 17:14 982,321 scheme.boot 2019/11/18 17:14 8,675 scheme.h 2019/11/18 20:24 92,444 scheme.res 9 個文件 8,113,967 字節 所列文件總數: 17 個文件 13,107,731 字節 14 個目錄 514,061,447,168 可用字節
9,最後運行run.bat文件,就能夠看到期待已久的Chez Scheme了:
Chez Scheme for Windows. make by bluedoctor. 2019.11.18 Chez Scheme Version 9.5.3 Copyright 1984-2019 Cisco Systems, Inc. > (+ 1 2 3 4 5 6 7 8 9 10) 55 > (/ 1 3) 1/3 >
10,上面是在Chez Scheme運行的簡單Scheme程序,第一行代碼運行的是一個累加多個天然數的程序,若是用C#,須要一個List<int>變量來存儲列表數據,而後循環處理,代碼量要多好幾行。第二行Scheme代碼,它的結果直接以分數表示了,很高級。
有關Scheme更多的程序介紹,請看本文推薦的學習連接。若是你不想這麼麻煩的本身來編譯,也能夠考慮直接使用給予.NET DLR的IronScheme,具體請看我原來的文章:《.NET DLR 上的IronScheme 語言互操做&&IronScheme控制檯輸入中文的問題》。