日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scheme Language

發(fā)布時間:2023/12/15 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scheme Language 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡介

Scheme 是什么?

Scheme 是一種小巧而強大的程序語言。

Scheme 是小巧的,強大的,優(yōu)雅的

Scheme 是 LISP 的一種方言,它繼承了 LISP 的優(yōu)點。這里對 Scheme 的描述大部分也適合其它 LISP 方言。

Scheme 不但設計非常干凈,而且非常強大。說它小巧是因為它只有7種最基本的語法結構,甚至連循環(huán)語句都沒有。它的核心語法用幾頁紙就可以全部敘述完畢。Scheme 的 report 只有 50 多頁,還沒有某些語言手冊的索引長。你可以在這里下載一個 Scheme Report 的 PDF 版本。

然而這種看起來簡單小巧的語言是那樣的強大!

Scheme 可以可以實現(xiàn)幾乎所有我們所知道的程序設計方法。函數式,強制式,消息傳遞式,邏輯式,…… 在 Scheme 里,所有的過程都可以被當成數據操作,而且它可以把通常隱藏在幕后工作的 continuation 作為對象來操作。

Scheme 可以實現(xiàn)優(yōu)秀的軟件工程。用 Scheme 編程可以擺脫普通語言的“計劃—實現(xiàn)”的設計流程,而使用自底向上的設計方法。也就是說,你不需要在設計程序之前做好所有的計劃。Scheme 語言隨著問題改變,語言和問題都向著對方生長,最后達到一個完美的結合點。

Scheme 是非常優(yōu)雅的,它具有數學的美感。Scheme 從一開始就被設計為一種通用的程序語言。它不是為了解決某個特殊的小問題的設計,不是功能堆砌在功能之上,最后搞的不可理解的語言。

Scheme 是穩(wěn)定的。Scheme 注重的是“質量”,而不是工業(yè)上的利用價值,所以 20 年來 Scheme 基本上沒有變化。你不用擔心有一天收到這樣煩人的消息:“我們鼓勵大家使用 'Scheme2004' 的語法?!?Scheme 的語法就像象棋的規(guī)則,一旦知道這個規(guī)則,剩下需要做的就是考慮怎樣取得勝利。

Scheme 特別適合描述算法。用 Scheme 編程序,你可以專注于設計算法本身,而不是為語言本身的事情而煩惱,比如語法,內存泄漏之類。所以用這種語言教學,學生可以學會“解決現(xiàn)實世界的問題” 而不是困惑于 “電腦自己的問題”。學生會很快的理解到“計算” 的實質內涵,深刻體會到計算科學是什么。

Scheme 被很多大學用于各個領域的計算機教學,甚至一些中學和小學也開始利用 Scheme 來講授計算科學。令人驚奇的是一些 10 歲小孩可以用 Scheme 寫出 Don Woods 的 adventure 游戲。

使用 Scheme 作為教學工具的一個明顯的特征就是,Scheme 語言本身從來不會成為學習的重點。使用 Scheme 作為工具的課程從來不會專門講授 Scheme,因為沒有這個必要。學生在初次接觸計算機的幾天里就能熟悉 Scheme,學習怎樣用它來計算。之后,大家就開始到處找問題來計算,不再考慮語言的問題了。Scheme 的理念是程序語言不是拿來“學”的,而是拿來“用”的。

Scheme 在教育界被如此廣泛的使用的結果就是,新一代的優(yōu)秀的計算學家,很多人的“母語”是 Scheme。

可以免費得到的參考材料

Scheme 的社會是非常開放和自由的。所以你不用奇怪,最好的書都有免費的版本 :)

  • Structure and Interpretation of Computer Programs

    昵稱 "The Wizard Book" 或者 "The Purple Book"。

    Scheme 的鼻祖 Gerald Jay Sussman 和計算機教育專家 Hal Abelson 合寫的,20 年來影響整個計算機科學教育的著作,著名的 MIT 課程 6.001 的課本。這是 MIT 的電子工程和計算機科學專業(yè)本科生的必修課,其它與計算相關專業(yè)也鼓勵參加。每年上這門課的 MIT 學生超過 500 名。全世界有超過 100 所大學采用這個教材。這里有一個不完全列表。

    它著重講述的不是 Scheme 語言本身,也不是數據結構和算法。在簡短的介紹 Scheme 的簡單語法之后,課本馬上開始講述深入的計算概念:函數式程序設計,高階函數,數據抽象,流,數據制導,消息傳遞,邏輯程序設計,解釋器設計,編譯器設計,寄存器機器模擬……

    這本書讓學生從一個語言設計者和實現(xiàn)者的高度來看待問題,而不只是作為一個普通語言的用戶。讀了這些內容,學生可以真正體會到“計算科學”的實質內涵,而不是被一些細節(jié)束縛,只見樹木不見森林。

  • Revised(5) Report on the Algorithmic Language Scheme

    Scheme 語言的規(guī)范定義。它可以到這里下載。也可以在本地下載雙列 PDF 版本。

  • The Scheme programming Language

    R. Kent Dybvig 寫的一本書。深入的解析了 Scheme 語言。CPS, syntax-case,……在這里都有詳細的解釋。

  • Teach Yourself Scheme in Fixnum Days

    Teach Yourself Scheme in Fixnum Days 可以作為一個有使用其它語言經驗的程序員的教材,看這本書你可以很快接觸到 Scheme 獨一無二的強大特點。

  • An Introduction to Scheme and its Implementation

    一個深入的 Scheme 和 LISP 教材。適合 Scheme 解釋器,編譯器的設計者。

  • The Scheme Programming Language ,一個幻燈片。一目了然的介紹 Scheme 的基本特征。
  • The Internet Scheme Repository

    在這里可以找到許多有用的 Scheme 代碼,幾乎所有的免費 Scheme 實現(xiàn),各種算法的 Scheme 實現(xiàn),處理 Scheme 的工具比如 slatex,

  • http://srfi.schemers.org/

    這里是 SRFI(Scheme Requests for Implementation) 的基地。你如果覺得自己定義很多庫函數,比如排序的,操作字符串的, regexp 很麻煩。但是又害怕使用不“標準”的函數庫之后跟別人不兼容。

    那么在這里你可以找到一些“準標準”的函數庫。SRFI 里定義的函數是鼓勵 Scheme 解釋器實現(xiàn)的。你會看到有很多工作已經有人幫你做了。你只需要調入 SRFI 的實現(xiàn)就可以使用很方便可移植的函數庫了。

    SRFI 有點像 RFC。以后某一些函數一定會成為各種 Scheme 解釋器都配備的東西,就像 ftp, http 一樣,成為每臺支持 TCP/IP 的機器支持的東西。

  • Grinnell College 的一門利用 Scheme 來講授的計算機科學基礎課

    以下的書籍沒有電子版本

  • Concrete Abstractions: An Introduction to Computer Science Using Scheme

    另一本用 Scheme 描述計算機科學的教材。

  • Essentials of Programming Languages。
  • The Little Schemer

    一本 LISP 的入門書籍。難度沒有 SICP 大,但是非常精辟。

Scheme 解釋器和編譯器

Scheme 的實現(xiàn)很多,幾乎所有解釋器和編譯器都是自由軟件,除了 Chez。

你可以隨便選擇 MzScheme, guile, bigloo, chez, chicken, gambit, kawa, SISC, GNU/MIT scheme, petite, plt, pscheme, scheme48, SCM, scsh, stk, STklos, ELK, Gauche, sxm, umbscheme, ...

每一種解釋器都有強項,可以根據自己的需要選擇。其中,Guile 和ELK 適合做嵌入式解釋器;bigloo, GambitC 和 Chicken 可以把 Scheme 編譯成機器代碼,速度快;DrScheme/MzScheme 界面最友好, Kawa 和 SISC 支持 Scheme 到 Java 的轉換,字節(jié)碼編譯;Scheme 48 非常簡潔可靠;Scsh 在 Scheme 48 基礎上做了很多根操作系統(tǒng)接合的界面,可以作為通用的的腳本語言;Stk 和 STklos 自帶面向對象系統(tǒng)和 gtk 圖形接口;Gauche 具有方便的 regexp, 網絡,圖形接口,UTF-8 支持,可以作為很方便的腳本語言,進行系統(tǒng)管理等操作;Chez 是Cadance Research systems 出品的商業(yè) Scheme 解釋器;Petite 是Chez 的免費版本,比 Chez 少了一個編譯器。

更多的實現(xiàn)可以在 這里找到。關于部分解釋器,有一個比較過時的比較在 這里 。

我個人推薦使用 Aubrey Jaffer 的 SCM。它遵守 R5RS,非常方便,調試能力很強,有 SLIB 支持,可以編譯成 C。

神奇的 Scheme

展現(xiàn) Scheme 最吸引我的地方。

Scheme 的應用

部分我所知道的 Scheme 的應用??纯?Scheme 被用在什么地方了。

MIT Project on Mathematics and Computation

AL 動畫語言

Kali 分布式計算語言

Envision: scheme with pictures

BRL - the Beautiful Report Language

Scheme 的一些工程應用

一個 Scheme 寫的量子計算機模擬器


總結

以上是生活随笔為你收集整理的Scheme Language的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。