中文编程语言之Z语言初尝试 - ZLOGO 4

简介: 学习ZLOGO官方教程,记录过程中的发现. Follow the official tutorial of ZLOGO programming language, and share the findings during the way.

@TKT2016 开发的Z语言(ZLOGO是它的一个部分)是本人至今看到的唯一一个仍活跃开发的开源且比较完整的中文编程语言项目. 它的源码在TKT2016/ZLanguage3.

此文从用户角度尝试一下ZLOGO的功能, 并记录一些过程中的发现.

首先上一个看完教程后自己写的螺旋方块演示. 源码附在最后.

2017_11_28_ZLOGO__

以下是官网的说明:

LOGO语言创始于1968年,是美国国家科学基金会所资助的一项专案研究,在麻省理工学院(MIT)的人工智能研究室完成。

ZLOGO是基于Z语言实现LOGO语言功能的编程软件,用了中文易懂的语句代替原先LOGO语言难于记忆的命令,更方便学习者掌握。

官网上下载了ZLOGO4, 按照说明, 解压后就可运行.

按照ZLOGO4教程, 逐步实验.

第一个LOGO程序中, 有"左转60度". 推测默认方向是朝上, 测试了一下"左转0度", 的确如此. 推测"前进200"中的200指的是像素数. 觉得教程中最好说明这些基本的默认要素(包括画线的颜色, 粗细, 海龟行走速度等等).

在运行窗口打开的情况下, 再次"运行"会打开一个新的运行窗口.

代码缩进好像是不严格的. 即使每行开头没有缩进, 也照样运行(后补: 经进一步测试, 过程的第一行允许开头没有空白, 但之后的行不允许). 当然它可以使代码更可读.

在第二个"显示隐藏"程序中, 逗号用来分割两个语句:

    前进50,隐藏

尝试把它分成两行:

    前进50
        隐藏

运行效果相同, 但发现两个问题:

  • IDE里的Tab不等同于多个空格(5-6个空格之间)
  • 如果"隐藏"之前没有空格, 就会弹出"编译信息"窗口并报错:
第4行,第3列错误:
不正确,应该是:

另外, 如果海龟越出了窗口, 比如"前进"太多, 好像运行窗口不能滚动, 或者最大化.

计算功能初步尝试一些合法表达式没有问题. 不过狠了一把试了"前进(2/0)", 好像就不显示了, 也没有报错.

最后的过程部分, 才看到"过程体每一行程序必须以空格开头,使程序的开始列必须大于过程名的列号。"这就解释了上面的报错. 建议将这个警示提到文档开头, 而且反馈信息最好明确一些.

学完教程之后, 试着参照p5js的一个演示程序, 写了个简单的方块螺旋效果图, 当然ZLOGO和p5js不是同类工具, 这里只是参考算法而已.

最大的感触当然是过程没有参数的痛苦, 原本螺旋演示里只要定义一个过程就可以了. 暂时没有在教程中看到这一功能. 如果已经支持, 期待原作者指正.

小结:

虽然距离实用尚有一点距离(本身也是测试版), 但瑕不掩瑜, 已有雏形. 除了过程参数之外, LOGO的经典功能已经具备. 非常期待改进版~~

附上"螺旋.zlogo"源码:

后续: ZLOGO 4与LOGO代码对比实验

2017-11-28

相关文章
|
6月前
|
程序员 编译器 Linux
V 语言
V 是一门通用的编程语言,也可以作为系统语言,其网站说它非常简单,你可以在一个周末学会,它还说 Go 程序员会对该语言非常熟悉,因为 V 语言在很多方面借鉴了 Go。
99 2
|
1月前
|
网络协议 数据挖掘 编译器
C++语言
C++语言
20 3
|
存储 算法 Unix
用一句Halle认识C 语言
用一句Halle认识C 语言
114 0
用一句Halle认识C 语言
|
SQL 关系型数据库 MySQL
msq语言
控制语言,定义语言,操纵语言
271 0
|
自然语言处理 JavaScript 数据可视化
中文编程的前世今生
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 写这篇文章前,我想先放一张图 这是 1942 年,人类发明的第一台计算机 ENIAC,它占地 170平方米,按照杭州将近 3 万一平的地价,放它需要花 500 万。
中文编程的前世今生
|
JavaScript API 编译器
日语编程语言"抚子"-第三版实现初探
对第三版"抚子"语言的源代码进行初步学习. Study the source code of the 3rd version of Japanese programming language Nadesiko.
994 0
|
自然语言处理 JavaScript
日语编程语言"抚子" - 第三版特色初探
对最新版的"抚子"语言进行各方面学习, 此文从功能和特性开始. Study the unique features and designs from the Japanese programming language Nadesiko.
1128 0
|
Java 关系型数据库 C#
什么语言才是世界上最好语言 ?
XXX语言是世界上最好语言 前言一个好的编译器/解释器决定一个语言的命运。我们常常看到有人会在网络上谈论一个语言的好坏,从而引起社区口水战,在这些话题中性能占了很大的比例,很少会有人辩论语言的语法合理性,语言的设计缺陷。
1937 0
|
JavaScript 开发工具 前端开发