加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 纯功能编译器如何使用类型信息注释AST?

发布时间:2020-12-16 09:00:19 所属栏目:安全 来源:网络整理
导读:在语法分析阶段,命令式编译器可以从已经包含在构造期间设置为null的类型字段的节点构建AST,然后在语义分析阶段,通过分配声明/推断来填充类型类型到类型字段. 纯粹的函数式语言如何处理这个问题,在那里你没有分配的奢侈品?无类型AST是否映射到另一种类型丰富
在语法分析阶段,命令式编译器可以从已经包含在构造期间设置为null的类型字段的节点构建AST,然后在语义分析阶段,通过分配声明/推断来填充类型类型到类型字段.

纯粹的函数式语言如何处理这个问题,在那里你没有分配的奢侈品?无类型AST是否映射到另一种类型丰富的AST?这是否意味着我需要为每个AST节点定义两种类型,一种用于语法阶段,一种用于语义阶段?

有没有纯函数式编程技巧可以帮助编译器编写这个问题?

解决方法

与处理关系数据库时的情况一样,在函数式编程中,通常不将所有内容都放在单个数据结构中.

特别是,可能没有“AST”的数据结构.

最有可能的是,将有表示已解析表达式的数据结构.处理类型信息的一种可能方式是在解析期间已经为树的每个节点分配唯一标识符(如整数),并且具有将这些节点ID与类型相关联的一些合适的数据结构(如哈希映射).那么,类型推理传递的工作就是创建这个地图.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读