"中文编程"知乎专栏原文. 作者为本人.

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

此文从用户角度尝试一下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"源码:

说明:画螺旋

开始绘图:
画正方形5
画正方形4
画正方形3
画正方形2
画正方形1 画正方形1:
设置画笔颜色为白色
左转(20/2)度,前进(20/2),左转90度
设置画笔颜色为红色
前进(20/2),左转90度
前进20,左转90度
前进20,左转90度
前进20,左转90度
前进(20/2)
复位 画正方形2:
设置画笔颜色为白色
左转(20*2/2)度,前进(20*2/2),左转90度
设置画笔颜色为红色
前进(20*2/2),左转90度
前进(20*2),左转90度
前进(20*2),左转90度
前进(20*2),左转90度
前进(20*2/2)
复位 画正方形3:
设置画笔颜色为白色
左转(20*3/2)度,前进(20*3/2),左转90度
设置画笔颜色为红色
前进(20*3/2),左转90度
前进(20*3),左转90度
前进(20*3),左转90度
前进(20*3),左转90度
前进(20*3/2)
复位 画正方形4:
设置画笔颜色为白色
左转(20*4/2)度,前进(20*4/2),左转90度
设置画笔颜色为红色
前进(20*4/2),左转90度
前进(20*4),左转90度
前进(20*4),左转90度
前进(20*4),左转90度
前进(20*4/2)
复位 画正方形5:
设置画笔颜色为白色
左转(20*5/2)度,前进(20*5/2),左转90度
设置画笔颜色为红色
前进(20*5/2),左转90度
前进(20*5),左转90度
前进(20*5),左转90度
前进(20*5),左转90度
前进(20*5/2)
复位

中文编程语言之Z语言初尝试: ZLOGO 4的更多相关文章

  1. 2017-11-28 中文编程语言之Z语言初尝试: ZLOGO 4

    "中文编程"知乎专栏原文. 作者为本人. @TKT2016 开发的Z语言(ZLOGO是它的一个部分)是本人至今看到的唯一一个仍活跃开发的开源且比较完整的中文编程语言项目. 它的源码 ...

  2. TKT中文编程语言简介

    TKT中文编程语言简介 TKT语言是新型的类似自然语言的汉语编程语言. 它是基于新的语言设计思想创造的语言,和现存的易语言.习语言.O语言.汉编等中文编程语言没有关系. TKT语言特点一: 中文编程 ...

  3. 中文编程语言Z语言开源正式开源!!!

    (Z语言基于.NET环境,源码中有很多高技术的代码,让更多的人知道对大家有会有很好的帮助,请管理员一点要批准放在首页) 本人实现的中文编程语言Z语言现在正式开源,采用LGPL协议. 编译器核心的网址为 ...

  4. R语言爬虫初尝试-基于RVEST包学习

    注意:这文章是2月份写的,拉勾网早改版了,代码已经失效了,大家意思意思就好,主要看代码的使用方法吧.. 最近一直在用且有维护的另一个爬虫是KINDLE 特价书爬虫,blog地址见此: http://w ...

  5. dotnet 用 SourceGenerator 源代码生成技术实现中文编程语言

    相信有很多伙伴都很喜欢自己造编程语言,在有现代的很多工具链的帮助下,实现一门编程语言,似乎已不是一件十分困难的事情.我利用 SourceGenerator 源代码生成技术实现了一个简易的中文编程语言, ...

  6. 2017-12-24 手机编程环境初尝试-用AIDE开发Android应用

    前不久才接触到纯粹用手机进行编程的开发者, 当时颇有孤陋寡闻之感, 因为之前听说过手机编程还是一些在线编程学习网站开发的学习环境, 没有想过真的有用它做实际开发的. 此文用AIDE免费版在自己的手机上 ...

  7. 开心一下-实现基于Java一个中文编程语言

    https://mp.weixin.qq.com/s/TsTiLVF5D07-wbDMk9bsyQ   这不是认真的,不是真的要去实现一个中文编程语言.   多年以前,有位同学把Java代码发给我说帮 ...

  8. 开心一下-实现一个基于Java的中文编程语言2

    https://mp.weixin.qq.com/s/VmCTvh0c7X9DjIgIMycdlw   上一篇所提到的只是使用中文写Java,而不能算作一门新的语言.作为一门中文语言,需要语言提供的关 ...

  9. SQLSERVER2012里的扩展事件初尝试(下)

    SQLSERVER2012里的扩展事件初尝试(下) SQLSERVER2012里的扩展事件初尝试(上) 我们继续文章扩展事件在Denali CTP3里的新UI(二)里的这个实验 脚本文件下载:http ...

随机推荐

  1. Linux系统Shell脚本编程

    1. shell脚本概念:C语言编写的.命令解释器.编程语言. 是用户使用linux的桥梁. shell脚本语言非常擅长处理文本类型的数据. 2. shell脚本作用:自动化管理.监控管理.日志数据处 ...

  2. EF6中使用事务的方法

    默认情况当你执行SaveChanges()的时候(insert update delete)来操作数据库时,Entity Framework会把这个操作包装在一个事务里,当操作结束后,事务也结束了. ...

  3. Windows 安装 python2.7

    Windows 安装 python2.7 python2.7下载地址: https://www.python.org/downloads/release/python-2714/ 安装过程: 设置系统 ...

  4. Python_Python遍历列表的四种方法

    方式一: app_list = [1234, 5677, 8899] <!-- lang: python --> for app_id in app_list: <!-- lang: ...

  5. Luogu P1541 乌龟棋(NOIP2010TG)

    自己的第一篇博文 祭一下祭一下 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点, ...

  6. PHPMailer < 5.2.21 - Local File Disclosure(CVE-2017-5223)

    CVE-2017-5223 :PHPMailer < 5.2.21 - Local File Disclosure 本文主要介绍一下PHPMailer < 5.2.21 - Local F ...

  7. .Net Core2.0秒杀CMS部署到Centos7.3遇到的坑,酸爽呀

    一.Centos7.3的安装 打开VirtualBox,点击新建,如下图所示: 点击“下一步”,弹出下面的对话框,调整内存大小,建议设置为2G,这样操作更流畅点 设置好,点击“OK”,再点击“启动”, ...

  8. python的xlwt模块的常用方法

    工作中需要导出数据为excel格式,使用了xlwt模块,在此记录一下用到的内容. 1. 创建一个表,设置一个sheet import xlwt workbook = xlwt.Workbook(enc ...

  9. MyEclipse下安装FatJar打包工具

    方法一:help > software updates > Find and install > add > add remote site name:FatJar url:h ...

  10. C语言的第一个程序 “hello world!”

    1,C语言的简介        C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. ...