本頁使用了標題或全文手工轉換

Logo (程式語言)

維基百科,自由的百科全書
跳至導覽 跳至搜尋
Logo
Tartapelago Bicicardio 01.gif
MSWLogo英語MSWLogo中海龜繪圖心臟線的gif動畫[1]
編程範型多範式: 函數式, 教育, 程序式, 反射式
語言家族Lisp
設計者Wally Feurzeig英語Wally Feurzeig, Seymour Papert英語Seymour Papert, Cynthia Solomon英語Cynthia Solomon
實作者Bolt, Beranek and Newman
面市時間1967年,​54年前​(1967
型態系統動態
主要實作產品
UCBLogo英語UCBLogo, 很多其他實現
衍生副語言
StarLogo英語StarLogo, NetLogo, AppleLogo
啟發語言
Lisp
影響語言
AgentSheets英語AgentSheets, NetLogo, Smalltalk, Etoys英語Etoys (programming language), Scratch, Microsoft Small Basic, KTurtle, REBOL, Boxer

Logo是一種電腦程式設計語言,在1966年由西摩爾·派普特和Wally Feurzeig設計[2],Logo一詞源自希臘語邏各斯(logos)。Logo是一種直譯語言,和其他語言不同的是,它內建一套海龜繪圖(Turtle Graphics)系統[3],通過向海龜傳送命令,使用者可以直觀地學習程式的執行過程,因此很適於初學者特別是兒童學習程式設計。

Logo的原型來自另一個電腦語言LISP[4],派普特修改了LISP的語法使其更易於閱讀。Logo常被稱作沒有括號的Lisp。Logo繼承了Lisp的「表」的概念,所以在函式處理等方面擁有強大的能力,也是有特殊需求的電腦科學家的好幫手[5]

海龜繪圖[編輯]

海龜繪圖使得Logo使用者可以通過簡單的編程創作出豐富多彩的視覺效果或圖案。假想一隻帶著畫筆的海龜可以接受簡單的命令,例如向前走100步,或者左轉30度。通過對這隻海龜傳送命令,可以讓它繪製出較為複雜的圖形,例如正方形,三角形,圓等。

海龜的移動相對於它本身所在的位置。例如,命令"左90"意味著讓海龜左轉90度,學生可以站在海龜的角度來思考它將如何執行命令,這使得程式設計更加形象化,也更易於理解。

程式實例[編輯]

設計Logo的初衷是為了向兒童教授電腦編程技能。它亦適合用作數學教學。初學者可以不需要任何程式設計的知識而直接向海龜傳送命令。學習海龜作圖將會讓使用者懂得一些關於幾何學方面的知識。而一旦掌握了海龜作圖的基礎之後,引入程式設計的概念也變得更加容易。下面看一些例子: FD是前進 LT是左轉 畫一個正方形

FD 100
LT 90
FD 100
LT 90
FD 100
LT 90
FD 100
LT 90

由於輸入的語句都是重複的,可以用重複語句簡化為:

REPEAT 4 [FD 100 LEFT 90]

上面兩段程式得到的結果相同,由於第一個程式幾乎都是重複代碼,因此我們用『REPEAT』讓Logo重複同樣的命令4次,同時還使用了命令的縮寫。為了重複使用上述代碼,我們可以用『TO...END』定義過程:

TO CHAIR 
REPEAT 4 [FD 100 RT 90] FD 200 
END

一旦定義了『CHAIR』過程,就可以直接使用呼叫它得到結果,為了使得這個過程更加通用化,我們傳遞一個邊長參數:

TO CHAIR :long
   REPEAT 4 [FD :long RT 90]
   FD :long*2
END
CHAIR 100

從簡單地傳送繪圖命令,到定義一個通用的繪製多邊形的過程,使用者不但掌握了程式設計上的一些基本思想(傳遞參數、重複等),而且對幾何學上正多邊形的理解也加深了。

多代理建模語言[編輯]

Logo的方言NetLogo、StarLogo進一步深化了Logo的海龜繪圖概念,可以產生出成百上千個獨立的海龜(被稱為代理)來類比諸如物理生物社會等複雜系統。建模者可以對眾多海龜並列傳送指令,來觀察微觀個體行為與個體之間相互影響產生的宏觀樣式之間的聯絡。

LOGO直譯器列表[編輯]

  • Turtleacademy[6],又叫海龜學院,免費學編程。
  • Berkeley Logo[7],又叫UCBLogo,用C寫成,可運行於多個平台。
  • MSWLogo[8],有良好的GUI、詳盡的說明文件,運行於Windows,建基於Berkeley Logo,由Borland C++寫成。它支援三維圖像、聲響、鍵盤等多個功能。
  • StarLogo[9]
  • NetLogo[10]
  • Comenius Logo[11]
  • rLogo[12],可於瀏覽器上執行(需Java
  • CLogo[13],可用中文為指令(需要Java
  • Galapago[14],用Java寫成
  • ProLOGO[15],用Prolog寫成,可用義大利語為指令
  • PyLogo[16],用Python寫成
  • SharpLOGO[17],用C#寫成
  • XLogo[18],用Objective-C寫成,運行於Mac
  • Logo++[19],可說是一種精簡化的Logo,主要的分別在於沒有了Logo的即時回應(interactive)、去掉了不少語法。
  • 更多資料可見於PyLogo網站中的Other Logos[20]

參照[編輯]

  1. ^ Pietrocola, Giorgio. Tartapelago. Maecla. 2005. 
  2. ^ Abelson, Hal; Goodman, Nat; Rudolph, Lee. Logo Manual. Artificial Intelligence Lab, Massachusetts Institute of Technology. December 1974 [August 28, 2016]. hdl:1721.1/6226. (原始內容存檔於September 11, 2016). 
  3. ^ Logo Foundation. el.media.mit.edu. [2011-04-07]. (原始內容存檔於2011-07-21). 
  4. ^ CSLS Vol 1, Preface .pxvi, Harvey 1997
  5. ^ Computer Science Logo Style, Brian Harvey, MIT Press (3 volumes) ISBN 0-262-58148-5, ISBN 0-262-58149-3, ISBN 0-262-58150-7. Available online 網際網路檔案館存檔,存檔日期2013-07-04.
  6. ^ Turtleacademy
  7. ^ Berkeley Logo頁面存檔備份,存於網際網路檔案館
  8. ^ MSWLogo
  9. ^ StarLogo
  10. ^ NetLogo頁面存檔備份,存於網際網路檔案館
  11. ^ Comenius Logo
  12. ^ rLogo
  13. ^ CLogo
  14. ^ Galapago頁面存檔備份,存於網際網路檔案館
  15. ^ ProLOGO頁面存檔備份,存於網際網路檔案館
  16. ^ PyLogo頁面存檔備份,存於網際網路檔案館
  17. ^ SharpLOGO
  18. ^ XLogo頁面存檔備份,存於網際網路檔案館
  19. ^ Logo++頁面存檔備份,存於網際網路檔案館
  20. ^ Other Logos

延伸閱讀[編輯]

  • The Great Logo Adventure, Jim Muller, Doone Publications ISBN 0-9651934-6-2; now out of print; downloadable free of charge in pdf form from The MSWLogo website, along with the freeware MSWLogo program
  • To Artificial Intelligence (1976) Early AI textbook where Logo is used extensively. (Using the Edinburgh University dialect, AI2LOGO)
  • Turtle Geometry Abelson and diSessa
  • Children Designers, Idit Harel Caperton, Ablex Publishing Corporation ISBN 0893917885. Available online
  • Learning With Logo, Daniel Watt, McGraw Hill, ISBN 0-07-068570-3. Available Through Amazon
  • Teaching With Logo: Building Blocks For Learning, Molly Watt and Daniel Watt, Addison Wesley (now Pearson) 1986, ISBN 0-201-08112-1 Available through Amazon

外部連結[編輯]