EndBASIC 0.10 发布,具备 REPL 的 BASIC 解释器

EndBASIC 是具备 REPL 的 BASIC 解释器,并包含一个使用 Rust 编写的 Web 界面。

EndBASIC 的灵感来自 Amstrad 的 Locomotive BASIC 1.1 和 Microsoft 的 QuickBASIC 4.5。与前者一样,EndBASIC 旨在提供一个交互式环境,将编码与即时视觉反馈无缝融合。与后者一样,EndBASIC 提供更高级别的编程结构和强类型。

INPUT "Did you ever experience BASIC (true/false)"; answer?
IF answer? THEN
    PRINT "Great; you are in for a treat!"
ELSE
    PRINT "Oh noes; try today?"
END IF

EndBASIC 的主要目标是提供一个简化且有限制的环境来学习编程基础,并专注于可以快速奖励学习者的功能。这些功能包括内置文本编辑器、操作屏幕的命令、与共享文件交互的命令,甚至是与 Raspberry Pi 硬件交互的命令。

EndBASIC 最近发布了 0.10,开发者称这是重大更新版本,带来了全面的改进——大部分集中在核心语法上,当然也包括标准库和用户界面。

  • 支持GOTO 和 GOSUB实现这些需要删除以前基于 AST 的求值器并将其替换为基于字节码的执行器(以及相关的编译器)。您可以在“从 AST 到 EndBASIC 中的字节码执行”中阅读有关此更改的更多信息。

  • 通过 捕获和处理错误ON ERROR。前面提到的新字节码执行器也使这成为可能。

  • 每条错误消息中都有精确的行号和列号。这需要对 AST 的表示方式进行大规模改革,以便在每个节点中携带这些细节。修改 AST 相对容易……但调整所有现有测试以验证此新信息非常费力。

  • 数字类型的互操作。在理论上对数字类型严格是很好的——就像它是 Rust 中一个非常受欢迎的迂​​腐特性——但是缺乏整数和双精度之间的自动转换是……非常烦人。因此,此版本将整数透明提升为双精度,并将双精度自动舍入为整数。现在可以使用了,但是由于发生了所有特殊情况,我觉得这是一种黑客攻击。更高级的字节码将来可能会使它变得更好。

  • 改进了交互式帮助系统。以前的版本提供了一个HELP命令来公开所有高级类型的文档,但未能提供有关语言本身的文档(除了变得过于神秘和冗长的简化备忘单之外)。此版本通过扩展HELP以提供特定于语言的文档来解决此问题。

  • 新的控制流结构。这些包括支持 forDO循环(及其所有变体,包括无限循环以及循环前后的WHILEand子句),和单行s。可能是目前存在的最难的结构,因为它的语法很奇怪并且需要考虑许多情况。UNTIL``SELECT CASE``IF``SELECT CASE

  • 添加按位运算符。这些都是可有可无的,因为它们现在可用,该语言现在支持以二进制、八进制、十进制和十六进制为基数指定整数文字。

  • 重命名EXITEND终止程序。END这似乎是一件微不足道的事情,但值得一提的是,由于有时 how 是一个单独的语句,而有时它与其他关键字(例如END IFor )组合在一起,因此很难将其改装到解析器中END SELECT。请继续关注即将发布的帖子,该帖子将深入探讨这种语言的解析怪癖。

  • 到处都有很多小调整。其中包括对编辑器的修复、对语法的微小更改、命令重命名、添加指数和平方根、添加各种新的字符串函数以及添加查询屏幕大小的方法游戏程序适应不同的视口。

详情查看 Release Notes

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/223305/endbasic-0-10-released

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。