【发布时间】:2011-01-11 11:07:32
【问题描述】:
我正在用 C 从头开始创建一种编程语言,我不希望使用第三方代码来处理变量。
首先,以字节码形式表示数组分配的最佳方式是什么,例如apples_in_crate[5] = 170?
显然,apples = 170 可以表示为:
PUSHSCALAR ("apples")
PUSHREAL (170)
ASSIGNSCALAR
但是当涉及到数组时,事情会变得复杂得多。有什么建议吗?
其次,你将如何在字节码中表示crate[5].apples = 170(一条记录)?
任何帮助将不胜感激。
澄清:我正在编写一个解释器,所以数组的大小在“编译时”或解析时是不已知的。例如,以下(抽象)代码将非常有效:
// Note: NUMBER_OF_CRATES is not known at compile-/parse-time,
// it could even be a dynamic expression.
array apples_in_crate[NUMBER_OF_CRATES]
for crate = 1 to NUMBER_OF_CRATES
apples_in_crate[crate] = randint (101) + 100
end for
【问题讨论】: