コンピュータプログラミング言語
いくつかの命令を実行するだけで点を中心とした対称性を実現できるため、ユーザーは ここに示すような 下斜面を描くことができます。
Logoは 、1967年に Wally Feurzeig 、 Seymour Papert 、 Cynthia Solomonによって設計された 教育用プログラミング言語 です 。 [1]この名前は、 Bolt、Beranek and Newman に在籍していたFeurzeigによって造られ 、 [2] ギリシャ語の 「言葉」または「思考」を意味する「
logos 」に由来しています。
汎用言語であるLogoは、 タートルグラフィックス の使用で広く知られている。タートルグラフィックスでは、移動や描画のコマンドによって、画面上または タートル と呼ばれる小型ロボット上に線または ベクターグラフィックスが生成される。この言語は、 Lisp に関連するプログラミングの概念を教えるために考案され 、後にPapertが「 ボディ・シントニック 推論」と呼んだものを可能にするために考案された。これは、生徒が自分がタートルだったらどうするかを想像することで、タートルの動きを理解し、予測し、推論できるようにするものである。Logoの多くの方言間には大きな違いがあり、Logoという名前のタートルグラフィックスプログラムが頻繁に登場することで、状況が混乱している。
Logoは、 関数型 プログラミング 言語であるLispのマルチパラダイム適応型および方言です 。 [3] 標準的なLogoはありませんが、 UCBLogoはスクリプト内のリスト、ファイル、I/O、 再帰 を扱う機能を備えており、 カリフォルニア大学バークレー校 の講師である ブライアン・ハーベイが 「コンピュータサイエンスLogoスタイル」 三部作で行った ように、あらゆるコンピュータサイエンスの概念を教えるために使用できます 。 [4]
Logoは通常は インタプリタ言語 ですが、コンパイル型のLogo方言(LhoghoやLiogoなど)も開発されています。Logoは大文字と小文字を区別しませんが、書式設定のために大文字と小文字が保持されます。
歴史
Logoは1967年、 マサチューセッツ州ケンブリッジの 調査会社 Bolt, Beranek and Newman (BBN)で Wally Feurzeig 、 Cynthia Solomon 、 Seymour Papert によって作成された。 [5] Logoの知的ルーツは 人工知能 、 数理論理学 、 発達心理学 にある 。Logoの最初の4年間は、研究、開発、教育はBBNで行われた。Logoの最初の実装はGhostと呼ばれ、 PDP-1 上で LISP で書かれた。目標は、子供たちが言葉や文章で遊ぶことができる数学の世界を作ることだった。 [6] LISPをモデルにしたLogoの設計目標には、使いやすい機能 [ 説明が必要 ]と、エラーメッセージをわかりやすくすることが含まれていた。仮想 タートル を使用することで、 グラフィックプログラミングの即時の視覚的フィードバックとデバッグが可能になった。
最初の実用的なLogoタートルロボットは1969年に作成されました。物理的なフロアタートルの前には、ディスプレイ用のタートルがありました。現代のLogoは、最初のタートル以前の基本的概念からあまり変わっていません。最初のタートルは、 無線制御 や ワイヤレス ではなく、つながれたフロアローマーでした。BBNで、ポール・ウェクスルブラットは、タッチセンサーを持ち、前進、後進、回転、ベルの鳴らしができるアーヴィングという名前のタートルを開発しました。Logoが1年間使用された最初の学校は、1968年から69年にかけて マサチューセッツ州レキシントン のマジー中学校でした。仮想タートルと物理的なタートルは、1970年から71年にかけて、同じ都市のブリッジスクールの5年生によって初めて使用されました。
タートルとグラフィックス
MSWLogo のカメのアニメーションGIF ( カーディオイド ) [7]
Logoの最もよく知られた機能はタートル(同名のロボット に由来 ) [5]で ある。これは、移動コマンドの出力を表示する画面上の「 カーソル 」と、小さな伸縮式ペンで構成され、これらを組み合わせて線グラフィックスを作成する。伝統的には三角形かタートルアイコンで表示される(ただし、任意のアイコンで表すことができる)。タートルグラフィックスは、1960年代後半にシーモア・パパートによってLogo言語に追加され、パパート版のタートルロボットをサポートするために追加された。パパート版のタートルロボットは、ユーザーのワークステーションから制御される単純なロボットで、ロボットの体にセットまたは取り付けられた小さな伸縮式ペンを使用して、割り当てられた描画機能を実行するように設計されている。
実用面では、従来のモデルではなくタートルジオメトリを使用することで、タートルロボットの実際の動作ロジックを模倣しています。タートルは自身の位置を基準とした相対的なコマンドで移動します。 「LEFT 90」は 左に90度回転することを意味します。一部のLogo実装、特に同時実行や複数のタートルの使用を可能にする実装では、 衝突検出を サポートし、ユーザーがタートルカーソルの外観を再定義できるようにすることで、Logoタートルを スプライト のように機能させることができます。
タートル幾何学は、Logo以外の環境でも、厳密に座標指定されるグラフィックスシステムの代替として使用されることがあります。例えば、タートルグラフィックスの考え方は、 フラクタルを 生成する リンデンマイヤーシステム にも役立ちます。
実装
IBM LCSI ロゴのウェルカム画面
IBM LCSI ロゴのソースコードと出力
Logoの現代的な派生言語の中には、数千もの独立して動くタートル(亀)を扱えるものもあります。人気のある実装としては、 マサチューセッツ工科大学 の StarLogo と ノースウェスタン大学 コネクテッドラーニングセンター(CCL)の NetLogoの 2つがあります。これらの言語は、 創発的な現象 の探索を可能にし、社会学、生物学、物理学などの分野で多くの実験が提供されています。NetLogoは、生物学および社会科学におけるエージェントベースシミュレーションで広く利用されています。
合意された標準規格は存在しないものの、言語の中核となる側面については幅広いコンセンサスが得られています。2020年3月時点で、Logoには308の実装と方言があり、それぞれに独自の長所があります。 [8]これらの308の実装のほとんどは現在広く使用されていませんが、多くはまだ開発中です。学校で広く使用されている商用実装には、 MicroWorlds Logo と Imagine Logoが あります 。
レガシーおよび現在の実装には次のものが含まれます。
1980年代に初めてリリース
1990年代に初めてリリース
2000年以降に初めてリリース
aUCBLogo は、 UCBLogo を書き直して拡張したものです 。
Imagine LogoはComenius Logoの後継であり、2000年に実装されました。 [25] 英語版はLogotron Ltd.によって2001年にリリースされました。 [26]
LibreLogoは 、LibreOfficeの一部のバージョンの拡張機能です。2012年にリリースされ、 Python で記述されています。Writerでベクターグラフィックを作成できます。
Logo3D は、Logo の 3 次元バージョンです。
POOLは、2014年に実装されたオブジェクト指向拡張を備えたLogoの方言です。POOLプログラムは、 Microsoft Windows上のグラフィカルIDEでコンパイルおよび実行されます。.NET Framework をサポートするシステムでは、簡素化されたクロスプラットフォーム環境が利用可能です 。
QLogo は、ハードウェア アクセラレーション グラフィックスを使用する、ほぼ完全な UCB 互換性を備えた、 オープン ソースかつクロス プラットフォームで書き換えられた UCBLogoです。
Lynx は、Logo Computer Systems Inc. が開発した Logo のオンライン バージョンです。多数のタートルを実行でき、アニメーション、並列プロセス、色、衝突検出をサポートします。
LogoMorは、JavaScriptとp5.jsをベースにしたオープンソースのオンライン3Dロゴインタープリタです。3D描画、アニメーション、マルチメディア、3Dモデル、そして様々なツールをサポートしています。また、 CodeMirrorをベースにしたフル機能のコードエディタも搭載しています。
LbyMはJavaScriptをベースにしたオープンソースのオンラインLogoインタープリターで、 ソノマ州立大学 の Learning by Making プログラムのために作成され、積極的に開発されています(2021年現在)。 [27] 従来のLogoプログラミング、カスタマイズされたマイクロコントローラーとの接続、最新のコードエディターとの統合を特徴としています。
影響
LogoはSmalltalk プログラミング言語に大きな影響を与えました。また、 Etoys 教育用プログラミング環境および言語にも大きな影響を与えています。Etoysは基本的に Squeak (それ自体がSmalltalkの派生言語)で書かれたLogoの派生言語です。Logoは、 AgentSheets と AgentCubes のプロシージャ/メソッドモデルに影響を与え、 Logoにおけるタートルの概念に似たエージェントプログラミングを可能にしました。LogoはBoxerの基盤言語を提供しました。Boxerは カリフォルニア大学バークレー校 とMITで開発され、 リテラシーモデル に基づいているため 、技術者以外の人でも使いやすくなっています。 [28]
KTurtleはLogoをベースに KDE 環境向けに Qt で実装されたLogoのバリエーションです。 [29]
Logo の影響を受けたもう 2 つの成果は、Scala の派生である Kojo と、 Web ブラウザーで実行される視覚的なドラッグ アンド ドロップ言語である
Scratchです。
参考文献
^ Abelson, Hal; Goodman, Nat; Rudolph, Lee (1974年12月). 「Logo Manual」. マサチューセッツ工科大学人工知能研究所 . hdl :1721.1/6226. 2016年9月11日時点のオリジナルよりアーカイブ。 2016年 8月28日 閲覧 。
^ Goldenberg, E. Paul (1982年8月). 「Logo – A Cultural Glossary」. Byte . p. 218. 2013年 10月19日 閲覧 。
^ CSLS 第1巻、序文.pxvi、ハーヴェイ 1997
^ コンピュータサイエンスのロゴスタイル 、ブライアン・ハーベイ、MITプレス(全3巻) ISBN 0-262-58148-5 、 ISBN 0-262-58149-3 、 ISBN 0-262-58150-7 オンラインで閲覧可能 2013年7月4日アーカイブ Wayback Machine
^ ab "Logo Foundation". el.media.mit.edu . 2011年7月21日時点のオリジナルよりアーカイブ 。 2011年4月7日 閲覧。
^ "logothings". logothings.wikispaces.com . 2011年12月7日時点のオリジナルよりアーカイブ。
^ ピエトロコーラ、ジョルジョ (2005)。 「タルタペラゴ」。 マエクラ 。
^ "The Logo Tree Project" (PDF) . elica.net . Archived from the original (PDF) on 2009-03-06. Retrieved 2020-03-25 .
^ Brain, Jim; Zimmerman, Bo (2017-10-30). "Canonical List of Commodore Products". Archived from the original on 2017-12-20. Retrieved 2017-12-03 .
^ "Logo – Software Details". Plus/4 World . Archived from the original on 2017-12-04. Retrieved 2017-12-03 .
^ Object Logo Archived 2008-04-30 at the Wayback Machine page on the Digitool website (accessed 4 March 2008)
^ Object Logo ordering page on the Digitool website (accessed 4 March 2008)
^ "DRI ships 128K version of Dr. Logo" (PDF) . Micro Notes - Technical information on Digital Research products . Vol. 2, no. 2. Pacific Grove, CA, USA: Digital Research, Inc. May 1984. p. 4. NWS-106-002. Archived (PDF) from the original on 2020-02-11. Retrieved 2020-02-11 . […] Dr. Logo first appeared on the retail market in fall of 1983 for the IBM PC and climbed to the top of the Softsel Hot List . The retail release included SpeedStart CP/M , an abridged version of CP/M that boots automatically when the system is turned on. […] [1]
^ "Catalog Search | Computer History Museum". www.computerhistory.org .
^ "Amstrad CPC 6128 - Computer - Computing History". www.computinghistory.org.uk .
^ "es:manual_del_amstrad_pcw_8256_8512_ingles [PcwWiki]". www.habisoft.com .
^ Field, Graham (1985). LOGO on the BBC computer and Acorn Electron . Macmillan . ISBN 0-333-39566-2 .
^ Radburn, Derek. "Four Logos for the BBC Micro". The Micro User Education Special . The Micro User . Retrieved February 20, 2012 .
^ Resnick, Mitchel (July 1993). "Behavior Construction Kits". Communications of the ACM . 36 (7): 64– 71. doi :10.1145/159544.159593 . S2CID 9263998. Retrieved 5 January 2022 .
^ 「The Laboratory Schools LEGO-LOGO Project」. シカゴ大学実験学校 . 2011年7月20日時点のオリジナルよりアーカイブ。
^ Bull, G.; Garofalo, J.; Hguyen, N. (2020)「計算的思考について考える:教育コンピューティングにおける計算的思考の起源」、 教師教育におけるデジタル学習ジャーナル 、 36 (1): 6– 18、 doi :10.1080/21532974.2019.1694381、 S2CID 214563715
^ “Talking Turtle”. 1990年2月. pp. 20-21 . 2017年3月28日時点のオリジナルよりアーカイブ。
^ “Comenius Logoの歴史”. 2002年12月9日. 2002年12月9日時点のオリジナルよりアーカイブ 。 2022年10月12日 閲覧。
^ Muller, Jim (2001年11月). 「MSWLogo 教育用プログラミング言語」 . 2022年 1月5日 閲覧 。
^ Andrej, Kalas; Blaho, Ivan (2000). 想像してみてください…新世代のロゴ:プログラム可能な画像. OCLC 854959806.
^ “Imagine | プレスリリース”. 2001年4月17日. 2001年4月17日時点のオリジナルよりアーカイブ 。 2022年10月12日 閲覧。
^ 「Learning by Making ¦ Make@SSU」. 2017年8月14日. 2022年 1月8日 閲覧 。
^ “Boxer - EduTech Wiki”. edutechwiki.unige.ch . 2024年4月10日 閲覧 。
^ 「KDE教育プロジェクト – KTurtle」 edu.kde.org . 2006年8月27日時点のオリジナルよりアーカイブ。
さらに読む
シンシア・ソロモン;ブライアン・ハーヴェイ;ケン・カーン;ヘンリー・リーバーマン;マーク・L・ミラー;マーガレット・ミンスキー;アルテミス・パパート;ブライアン・シルバーマン (2020-06-12). 「ロゴの歴史」. Proc. ACM Program. Lang . 4 (HOPL): 79:1–79:66. doi :10.1145/3386329. hdl : 1721.1/133952 .
『人工知能へ』(1976年)Logoが多用されている初期のAI教科書。( エディンバラ大学の 方言AI2LOGOを使用)
タートルジオメトリ アベルソンとディセッサ
子どもデザイナー 、イディット・ハレル・カパートン、エイブレックス出版株式会社 ISBN 0893917885 オンラインで入手可能
ロゴで学ぶ 、ダニエル・ワット、マグロウヒル、 ISBN 0-07-068570-3 Amazonで購入可能
ロゴを使った教育:学習のためのビルディングブロック、モリー・ワットとダニエル・ワット、アディソン・ウェスレー(現ピアソン)1986年、 ISBN 0-201-08112-1 Amazonで購入可能
「ロゴ」 (PDF) . Byte . 第7巻第8号. McGraw-Hill. 1982年. ( 1982 年の Byte マガジン特別号には、Logo に関する複数の記事が掲載されました)。
外部リンク
ウィキメディア・コモンズのLogo(プログラミング言語)関連メディア
ウィキブックスのロゴプログラミング