跳转到内容

从零开始编写编程语言/结构

来自维基教科书,开放的书籍,开放的世界

结构声明

[编辑 | 编辑源代码]

结构是在连续位置的一组不同类型的数据。它必然是将不同类型的数据组合在一起。

结构声明的格式

[编辑 | 编辑源代码]
Defstruct [Name of structure]{
.
.
.
}

汇编格式

[Name of structure] struct starts
.
.
.
[Name of structure] ends

处理算法

[编辑 | 编辑源代码]
1.If keyword defstruct then
2.While char not { get char and store in array name
3.Write to output file format as given above.

[注意关键字的选择完全取决于你。]

结构变量声明

[编辑 | 编辑源代码]

所有结构在物理内存中没有代表的情况下都是无用的。这被称为结构变量。
结构变量与其他变量一起定义,但重要的是结构变量在初始化时没有定义(至少在汇编中是这样)。 因此我们将只处理未初始化的结构变量。

汇编格式

[structure variable name] [parent structure name] <?>

<?> 是结构重复运算符,它将值 0 或 0.0 设置为所有子组件

1.If keyword struct then
2.Scan parent structure name
[Duplicate algorithm for getting simple variables]
3.Write to file in format as given above.

示例转换

[编辑 | 编辑源代码]

在 HLL 中

defstruct boy{
 int age,grade;
 float marks;
 char name[20];
}

在汇编中

boy struct starts
age dword ?
grade dword ?
marks real8 ?
name byte 19 dup (?),0
boy ends
华夏公益教科书