首页 > 解决方案 > 大多数 8 位 BASIC 实现是哪种类型的解释器?

问题描述

我是 1980 年代早期/中期个人计算机的忠实粉丝,例如 Amstrad CPC、Commodore 64 和 Sinclair Spectrum。这些计算机都拥有的一件事是 BASIC 版本。

作为一名语言黑客,我很好奇:这些解释器是作为树行者解释器(简单地遍历解析树)还是字节码解释器实现的?我找不到很多关于它们是如何实施的信息。考虑到当时硬件的限制,它们是如何构建的,这让我很着迷。

标签: basic8-bitretro-computing

解决方案


它们大多是基于令牌的。这意味着,集成代码编辑器将源代码中的人类可读命令转换为字节码。在执行时,这些字节码被读取,然后调度程序使用给定的参数执行适当的命令(作为机器代码存储在内核中)。ZX Spectrum 甚至有一个键盘可以输入基本代币:

http://www.worldofspectrum.org/ZX81BasicProgramming/

对于其他一些人,请参见此处:

https://www.primidi.com/atari_basic/description/the_tokenizer

http://fileformats.archiveteam.org/wiki/Commodore_BASIC_tokenized_file

http://cpctech.cpc-live.com/docs/bastech.html

希望这能回答你的问题。


推荐阅读