據說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用戶。
下面來介紹下截止到2019.11.19日的最新版如何在Windows下編譯一個ChezScheme,其它環境下如何編譯請看源碼下的文件BUILDING的介紹:Building Chez Scheme Version 9.5.3。請注意這個版本號,之前的版本編譯方法可能與本文介紹的不同,本人也爲此踩坑了不少時間。
1,首先,安裝Visual Studio 2015/2017,注意必須選擇按照Visual C++ 桌面開發組件,否則你在最後一步無法編譯Scheme。
2,安裝msys2,這是一個Windows下的Linux Shell環境,可以讓你在Windows上使用Linux命令,並且它還自帶包管理功能。安裝完後按照官網提示更新下msys2,會給你安裝一堆組件,默認都安裝。
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源碼,然後進行編譯前配置,最後編譯。如果源碼已經下載跳過。
git clone https://github.com/cisco/ChezScheme.git
cd ChezScheme
cd wininstall
make workareas
make
7,最後等make完成,我們在ChezScheme目錄 a6nt\bin\a6nt 下可以看到scheme.exe,雙擊它即可運行。
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控制檯輸入中文的問題》。
如果你不想編譯或者安裝任何一個Scheme程序,但又想看看Scheme是什麼樣子,推薦訪問下面的網址,它提供了一個Web版本的Scheme編譯運行環境:
原文出處:https://www.cnblogs.com/bluedoctor/p/11887867.html