gpt4 book ai didi

c - 用于存储变量、函数、数组和类型的数据结构

转载 作者:行者123 更新时间:2023-11-30 19:07:44 25 4
gpt4 key购买 nike

我正在为我创建的静态类型语言编写一个解释器。解释器是用C语言编写的。为了简单起见,我只列出两种基本数据类型:int和float。

我需要某种可以存储的结构:

  • 基本数据类型
  • 返回类型的函数
  • 某种类型的数组
  • 类型定义

类型可以只是基本数据类型之一,也可以是数组或函数。因此,让一个函数返回一个返回一个返回 int 的函数是有效的。

我知道我可以使用 union 存储基本数据类型,但我不知道如何存储函数、数组和类型声明。

最佳答案

阅读SICP然后Lisp In Small Pieces 。它们很好地涵盖了您的问题。

您可能还想阅读Programming Language PragmaticsDragon Book

一个基本概念是 closure 。您需要拥有它们(如果您想要一流的函数值和更高级别的函数)。

请注意,类型声明主要是源代码的内容。您想要abstract syntax trees (AST),也许就像 s-expressions 一样简单。你可以有一个 symbol table ,或者可以有头等舱symbols (以 interned strings 开头)。

您不需要像 C 中那样的普通 union-s,但是 tagged unions或总和类型。您当然想要一个garbage collector 。您可以使用 Boehm's GC .

寻找简单的Scheme - 类似解释器,例如here 。学习SIOD .

研究现有free software的源代码解释器,例如Lua , Guile等等等等...

关于c - 用于存储变量、函数、数组和类型的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46473424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com