徽標(編程語言)

標識
範式多範式功能教育程序性反思性
家庭Lisp
設計Wally FeurzeigSeymour PapertCynthia Solomon
開發人員Bolt,Beranek和Newman
首先出現1967
打字學科動態的
主要實施
UCBLOGO ,許多其他
方言
StarlogoNetlogo和Applelogo
被影響
Lisp
受影響
代理表NetlogoSmalltalkEtoys刮擦Microsoft Small Basic ,Kturtle, Rebol ,Boxer
可以僅使用幾個說明來獲得一個點周圍的對稱性,從而使用戶可以像此處顯示的那樣繪製次生核管

徽標是一種教育編程語言,由Wally FeurzeigSeymour PapertCynthia Solomon於1967年設計。徽標不是首字母縮寫:該名稱是Feurzeig在Bolt,Beranek和Newman時創造的,並源自希臘徽標,意思是單詞思想

徽標是一種通用語言,以其使用烏龜圖形的使用而聞名,其中在屏幕上或用小型機器人稱為烏龜的運動和繪圖產生的線或矢量圖形。該語言被構想教授與LISP相關的編程概念,後來才使Papert所謂的“身體合成推理”,學生可以通過想像一下烏龜的動作,並在其中想像他們會做什麼,如果他們是烏龜的動作龜。徽標的許多方言之間存在實質性差異,這種情況被命名為徽標的烏龜圖形程序的常規外觀混淆。

徽標是功能編程語言LISP的多範式適應和方言。沒有標準徽標,但是UCBLOGO擁有處理列表,文件,I/O和腳本中的遞歸的最佳設施,並且可以用來教所有計算機科學概念,就像UC Berkeley講師Brian Harvey在他的計算機科學徽標中所做的那樣風格三部曲。

徽標通常是一種解釋的語言,儘管已經開發了編譯的徽標方言(例如Lhogho和Liogo)。徽標不是對病例敏感的,但保留用於格式目的的情況。

歷史

徽標於1967年在馬薩諸塞州劍橋市的Beranek和Newman (BBN)創建,由沃利·費爾澤格(Wally Feurzeig),辛西婭·所羅門( Cynthia Solomon)西摩·帕普特(Seymour Papert)創建。它的智力根源是人工智能數學邏輯發展心理學。在徽標研究的前四年,開發和教學工作是在BBN完成的。徽標的第一個實現稱為Ghost,是在PDP-1上寫的LISP 。目的是創建一個數學土地,孩子們可以在其中玩單詞和句子。以LISP為模型,徽標的設計目標包括可訪問的功率和信息性錯誤消息。使用虛擬海龜可以立即進行視覺反饋和圖形編程調試。

第一個工作徽標龜機器人於1969年創建。與第一個烏龜之前的基本概念相比,現代徽標並沒有發生太大變化。第一隻烏龜是束縛地板漫遊者,不是無線電控制無線的。在BBN,Paul Wexelblat開發了一隻名為Irving的烏龜,它具有觸摸傳感器,並且可以向前,向後,旋轉和傾斜鈴鐺。最早的徽標學校用戶是1968 - 69年在馬薩諸塞州列剋星敦市的Muzzey Jr. High。 1970 - 71年,五年級學生在同一城市的橋學校首次使用虛擬和身體龜。

烏龜和圖形

動畫gif與MSWLOGO有心臟)的Turtle和Turtle

徽標最著名的功能是Turtle(最初來自同名機器人),這是一個屏幕上的“光標”,它顯示了來自移動和小型可伸縮筆的輸出,共同產生了界限圖形。傳統上,它是作為三角形或烏龜圖標的(儘管可以由任何圖標表示)。 Seymour Papert在1960年代後期將Turtle圖形添加到徽標語言中,以支持Papert的Turtle機器人版本,這是一個由用戶的工作站控制的簡單機器人,旨在使用小型可伸縮筆套件來執行分配的圖紙功能進入或附著在機器人的身體上。

實際上,使用烏龜幾何形狀而不是更傳統的模型模仿烏龜機器人的實際運動邏輯。烏龜的命令相對於其自身位置,剩下的90表示旋轉90度。某些徽標實現,特別是那些允許使用並發和多個海龜的徽標實現,支持碰撞檢測並允許用戶重新定義烏龜光標的外觀,從本質上允許徽標海龜作為精靈發揮作用。

烏龜幾何形狀有時還用於徽標以外的環境中,以替代嚴格的坐標結合的圖形系統。例如,烏龜圖形的概念在生成分形Lindenmayer系統中也很有用。

實施

IBM LCSI徽標歡迎屏幕
源代碼和IBM LCSI徽標中的輸出

一些徽標的現代衍生物允許成千上萬的獨立移動海龜。有兩個流行的實現:馬薩諸塞州理工學院Starlogo西北大學連接學習中心(CCL) Netlogo 。它們允許探索新興現象,並在社會研究,生物學,物理和其他領域進行許多實驗。 Netlogo廣泛用於生物學和社會科學中的基於代理的模擬中。

儘管沒有達成共識的標準,但該語言的核心方面有廣泛的共識。在2020年3月,有308個徽標的實現和方言,每個徽標都有自己的優勢。這308個中的大多數不再廣泛使用,但是許多仍在開發中。學校廣泛使用的商業實施包括Microworlds徽標Imagine徽標

遺產和當前實施包括:

1980年代首次發行
  • Apple II Plus的Apple徽標和Apple IIE的Apple徽標作者,由徽標Computer Systems,Inc。(LCSI)開發,是在1980年代初至中期達到頂峰的最廣泛使用和最普遍的早期實現。
  • Aquarius徽標於1982年由Mattel於1982年在墨盒上發布,用於水瓶座家用計算機。
  • Atari在Atari上為Atari 8位家族在彈藥筒上發布了Atari徽標
  • Color Logo於1983年在墨盒(26-2722)和Tandy發行的磁盤(26-2721)上發布,用於TRS-80彩色計算機
  • Commodore International發布了Commodore徽標,並帶有字幕“學習語言”。它基於MIT徽標,並由Terrapin,Inc.增強。Commodore64版本(C64105)於1983年在Diskette上發布。 Plus/4版本(T263001)於1984年在墨盒上發布。
  • Expertelligence Inc.於1985年在Floppy上發行了Persiverlogo。
  • Hot-Logo於1980年代中期由EPCOM發行了MSX 8位計算機,並在巴西葡萄牙語中發行了一套命令。
  • Ti徽標(用於TI-99/4A計算機)用於小學,強調徽標在向新手程序員講授計算基礎知識方面的有用性。
  • Sprite Logo(也是由徽標計算機系統公司開發的,有十隻烏龜可以作為獨立過程運行。它藉助插入了計算機插槽之一的精靈卡上的Apple II計算機運行。
  • IBM銷售了他們自己的徽標計算機系統公司(LCSI)共同開發的徽標版本(P/N 6024076),用於當時的新IBM PC。
  • ObjectLogo是徽標的變體,具有面向對象的編程擴展和詞彙範圍。 2.7版由Digitool,Inc。出售,它不再是開發或支持的,並且與7.5版的MAC操作系統版本不得在MAC操作系統上運行。
  • 徽標博士是由數字研究開發的,並在包括IBM PCJR ,Atari ST和Amstrad CPC在內的計算機中分發。
  • Acornsoft徽標於1985年發布。它是8位BBC微型橡子電子計算機的徽標的商業實現。它是為橡子計算機開發的,作為徽標的完整實現。它具有多個屏幕海龜和四通道的聲音。它是在兩個16KB ROM上提供的,其中包含公用事業和驅動程序作為隨附的軟件。
首次發行於1990年代
  • 1990年2月,電子用戶發布了蒂莫西·格蘭瑟姆(Timothy Grantham)在文章“ Talking Turtle”下為Acorn Electron徽標的簡單實現。
  • Comenius徽標是Comenius大學數學和物理學院開發的徽標的實現。它於1991年12月開始開發,在其他國家也被稱為Superlogo,Multilogo和Megalogo。
  • 樂高徽標是一個徽標的版本,可以操縱連接到計算機上的機器人樂高積木。它是在Apple II計算平台上實施的,並在1980年代末和1990年代初在美國和其他小學中使用。樂高徽標是刮擦的先驅。
  • Ucblogo ,也稱為伯克利徽標,是2009年發行的標準徽標的免費跨平台實現。MIT的George Mills使用UCBLOGO作為MSWLOGO的基礎,它更加精緻,也是免費的。吉姆·穆勒(Jim Muller)寫了一本書《 Great Logo Adventure》 ,該書是一本完整的徽標手冊,它以Mswlogo為示範語言。 Mswlogo已演變為FMSLOGO
從2000年開始發行
  • Aucblogo是UCBLOGO的重寫和增強。
  • 想像徽標是2000年實施的Comenius徽標的繼任者。英文版本由Logotron Ltd.於2001年發布。
  • Librelogo是某些版本的Libreoffice的擴展。它於2012年發行,用Python撰寫。它允許向量圖形寫在作者中。
  • 徽標3D是徽標的三維版本。
  • 池是徽標的方言,並在2014年實現了面向對象的擴展。池程序是在Microsoft Windows上的圖形IDE中編譯並運行的。簡化的跨平台環境可用於支持.NET框架的系統。
  • Qlogo是UCBLOGO的開源和跨平台重寫,其幾乎完整的UCB兼容性使用了硬件加速圖形。
  • Lynx是由徽標計算機系統公司開發的徽標的在線版本。它可以運行大量海龜,支持動畫,並行過程,顏色和碰撞檢測。
  • 徽標是基於JavaScript和p5.js的開源在線3D徽標解釋器。它支持3D圖紙,動畫,多媒體,3D模型和各種工具。它還包括一個基於CodeMirror的功能齊全的代碼編輯器
  • LBYM是基於JavaScript的開源在線徽標解釋器,通過制定計劃為索諾瑪州立大學的學習創建並積極開發(截至2021年)。它具有傳統的徽標編程,具有自定義的微控制器的連接性以及與現代代碼編輯器的集成。

影響

徽標是對SmallTalk編程語言的主要影響。它也是對Etoys教育編程環境和語言的主要影響,該環境和語言本質上是用尖叫(本身就是Smalltalk的變體)編寫的徽標變體。徽標影響了代理表代理套件中的程序/方法模型的程序代理,類似於徽標中烏龜的概念。徽標為Boxer提供了基礎語言。 Boxer是在加利福尼亞大學,伯克利分校和麻省理工學院開發的,它是基於掃盲模式的,使非技術人員更容易使用。

Kturtle是基於徽標的KDE環境在QT上實現的徽標的變體。

徽標影響力的另外兩個結果是Kojo ,是Scala的一種變體,而Scratch是一種在Web瀏覽器中運行的視覺,拖放語言。