Logo (程序语言) 技术专题简介

简介

LogoMSWLogo(英语:MSWLogo)海龟绘图示例gif动画编程范型多范型: 函数式, 教育, 过程式, 反射式语言家族Lisp设计者Wally Feurzeig(英语:Wally Feurzeig), Seymour Papert, Cynthia Solomon(英语:Cynthia Solomon)实现者Bolt, Beranek and Newman发行时间1967年,​56年前​(1967)类型系统动态主要实现产品UCBLogo(英语:UCBLogo), 很多其他实现派生副语言StarLogo(英语:StarLogo), NetLogo, AppleLogo启发语言Lisp影响语言AgentSheets(英语:AgentSheets), NetLogo, Smalltalk, Etoys(英语:Etoys (programming language)), Scratch, Microsoft Small Basic, KTurtle, REBOL, BoxerLogo是一种计算机程序设计语言,在1966年由西摩尔·派普特和Wally Feurzeig设计,Logo一词源自希腊语逻各斯(logos)。Logo是一种解释型语言,和其他语言不同的是,它内置一套海龟绘图(Turtle Graphics)系统,通过向海龟发送命令,用户可以直观地学习程序的运行过程,因此很适于初学者特别是儿童学习程序设计。Logo的原型来自另一个计算机语言LISP,派普特修改了LISP的语法使其更易于阅读。Logo常被称作没有括号的Lisp。Logo继承了Lisp的“表”的概念,所以在函数处理等方面拥有强大的能力,也是有特殊需求的计算机科学家的好帮手。

海龟绘图

主条目:海龟绘图(英语:Turtle graphics) 绘图海龟(英语:Turtle (robot))

海龟绘图使得Logo用户可以通过简单的编程创作出丰富多彩的视觉效果或图案。假想一只带着画笔的海龟可以接受简单的命令,例如向前走100步,或者左转30度。通过对这只海龟发送命令,可以让它绘制出较为复杂的图形,例如正方形,三角形,圆等。

海龟的移动相对于它本身所在的位置。例如,命令”左90″意味着让海龟左转90度,学生可以站在海龟的角度来思考它将如何执行命令,这使得程序设计更加形象化,也更易于理解。

程序实例

设计Logo的初衷是为了向儿童教授计算机编程技能。它亦适合用作数学教学。初学者可以不需要任何程序设计的知识而直接向海龟发送命令。学习海龟作图将会让用户懂得一些关于几何学方面的知识。而一旦掌握了海龟作图的基础之后,引入程序设计的概念也变得更加容易。下面看一些例子:FD是前进LT是左转画一个正方形

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

由于输入的语句都是重复的,可以用重复语句简化为:

REPEAT 4 

上面两段程序得到的结果相同,由于第一个程序几乎都是重复代码,因此我们用‘REPEAT’让Logo重复同样的命令4次,同时还使用了命令的缩写。为了重复使用上述代码,我们可以用‘TO…END’定义过程:

TO CHAIR   REPEAT 4  FD 200 END

一旦定义了‘CHAIR’过程,就可以直接使用调用它得到结果,为了使得这个过程更加通用化,我们传递一个边长参数:

TO CHAIR :long  REPEAT 4   FD :long*2ENDCHAIR 100

从简单地发送绘图命令,到定义一个通用的绘制多边形的过程,用户不但掌握了程序设计上的一些基本思想(传递参数、重复等),而且对几何学上正多边形的理解也加深了。

多代理建模语言

Logo的方言NetLogo、StarLogo进一步深化了Logo的海龟绘图概念,可以产生出成百上千个独立的海龟(被称为代理)来模拟诸如物理、生物或社会等复杂系统。建模者可以对众多海龟并行发送指令,来观察微观个体行为与个体之间相互影响产生的宏观样式之间的联系。

LOGO解释器列表

.mw-parser-output .div-col{margin-top:0.3em;column-width:30em;column-count:2}.mw-parser-output .div-col-small{font-size:90%}.mw-parser-output .div-col-rules{column-rule:1px solid #aaa}.mw-parser-output .div-col dl,.mw-parser-output .div-col ol,.mw-parser-output .div-col ul{margin-top:0}.mw-parser-output .div-col li,.mw-parser-output .div-col dd{page-break-inside:avoid;break-inside:avoid-column}

UCBLogo(英语:UCBLogo),又叫Berkeley Logo,用C写成,可运行于多个平台。

MSWLogo(英语:MSWLogo),有良好的GUI、详尽的帮助文档,运行于Windows,建基于Berkeley Logo,由Borland C++写成。它支持三维图像、声响、键盘等多个功能。

StarLogo(英语:StarLogo)

NetLogo

Comenius Logo

rLogo,可于浏览器上执行(需Java)

CLogo,可用中文为指令(需要Java)

Galapago,用Java写成

ProLOGO,用Prolog写成,可用意大利语为指令

PyLogo,用Python写成

SharpLOGO,用C#写成

XLogo,用Objective-C写成,运行于Mac

Logo++,可说是一种精简化的Logo,主要的分别在于没有了Logo的即时回应(interactive)、去掉了不少语法。

引用

^ Pietrocola, Giorgio. Tartapelago. Maecla. 2005 . (原始内容存档于2021-02-11). 

^ Abelson, Hal; Goodman, Nat; Rudolph, Lee. Logo Manual. Artificial Intelligence Lab, Massachusetts Institute of Technology. December 1974 . hdl:1721.1/6226. (原始内容存档于September 11, 2016). 

^ Logo Foundation. el.media.mit.edu. . (原始内容存档于2011-07-21). 

^ CSLS Vol 1, Preface .pxvi, Harvey 1997

^ Computer Science Logo Style, Brian Harvey, MIT Press (3 volumes) .mw-parser-output cite.citation{font-style:inherit}.mw-parser-output .citation q{quotes:”””””””‘””‘”}.mw-parser-output .citation .cs1-lock-free a{background:url(“//upload.wikimedia.org/wikipedia/commons/thumb/6/65/Lock-green.svg/9px-Lock-green.svg.png”)no-repeat;background-position:right .1em center}.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url(“//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Lock-gray-alt-2.svg/9px-Lock-gray-alt-2.svg.png”)no-repeat;background-position:right .1em center}.mw-parser-output .citation .cs1-lock-subscription a{background:url(“//upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Lock-red-alt-2.svg/9px-Lock-red-alt-2.svg.png”)no-repeat;background-position:right .1em center}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration{color:#555}.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration span{border-bottom:1px dotted;cursor:help}.mw-parser-output .cs1-ws-icon a{background:url(“//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/12px-Wikisource-logo.svg.png”)no-repeat;background-position:right .1em center}.mw-parser-output code.cs1-code{color:inherit;background:inherit;border:inherit;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;font-size:100%}.mw-parser-output .cs1-visible-error{font-size:100%}.mw-parser-output .cs1-maint{display:none;color:#33aa33;margin-left:0.3em}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration,.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-right{padding-right:0.2em}ISBN 0-262-58148-5,

ISBN 0-262-58149-3,

ISBN 0-262-58150-7. Available online 互联网档案馆的存档,存档日期2013-07-04.

^ Berkeley Logo (页面存档备份,存于互联网档案馆)

^ MSWLogo

^ StarLogo

^ NetLogo (页面存档备份,存于互联网档案馆)

^ Comenius Logo

^ rLogo

^ CLogo

^ Galapago (页面存档备份,存于互联网档案馆)

^ ProLOGO (页面存档备份,存于互联网档案馆)

^ PyLogo (页面存档备份,存于互联网档案馆)

^ SharpLOGO

^ XLogo (页面存档备份,存于互联网档案馆)

^ Logo++ (页面存档备份,存于互联网档案馆)

延伸阅读

.mw-parser-output .refbegin{font-size:90%;margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}

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

Published by

风君子

独自遨游何稽首 揭天掀地慰生平