scala – 纯功能编译器如何使用类型信息注释AST?
发布时间:2020-12-16 09:00:19 所属栏目:安全 来源:网络整理
导读:在语法分析阶段,命令式编译器可以从已经包含在构造期间设置为null的类型字段的节点构建AST,然后在语义分析阶段,通过分配声明/推断来填充类型类型到类型字段. 纯粹的函数式语言如何处理这个问题,在那里你没有分配的奢侈品?无类型AST是否映射到另一种类型丰富
在语法分析阶段,命令式编译器可以从已经包含在构造期间设置为null的类型字段的节点构建AST,然后在语义分析阶段,通过分配声明/推断来填充类型类型到类型字段.
纯粹的函数式语言如何处理这个问题,在那里你没有分配的奢侈品?无类型AST是否映射到另一种类型丰富的AST?这是否意味着我需要为每个AST节点定义两种类型,一种用于语法阶段,一种用于语义阶段? 有没有纯函数式编程技巧可以帮助编译器编写这个问题? 解决方法
与处理关系数据库时的情况一样,在函数式编程中,通常不将所有内容都放在单个数据结构中.
特别是,可能没有“AST”的数据结构. 最有可能的是,将有表示已解析表达式的数据结构.处理类型信息的一种可能方式是在解析期间已经为树的每个节点分配唯一标识符(如整数),并且具有将这些节点ID与类型相关联的一些合适的数据结构(如哈希映射).那么,类型推理传递的工作就是创建这个地图. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Scala 2.10中的可能的错误:期货不运行
- scala – 使用Gatling将消息发布到ActiveMQ
- scala – 在Akka-Streams中与mapAsync一起使用的ExecutionC
- angularjs – Angular.js和Elm的优点和缺点是什么?
- angular2 2.0.0-rc.1 RouteConfig装饰器似乎已经消失了……
- angular 2
- webservice 调用错误
- angularjs – angular ui router滚动到一个anchor / option
- 仅使用bash/standard Linux命令,在字符串中单行和双引号
- 基于Bootstrap的标签页组件及bootstrap-tab使用说明