OCaml,Scala和Go的结构打字实现
发布时间:2020-12-16 19:05:52 所属栏目:安全 来源:网络整理
导读:在研究结构类型时,我发现以下描述为 how interfaces in Go are translated to method lookup tables at runtime的帖子.该帖子中描述的过程似乎与Scala的可选结构类型系统以及Java语言的White Oak扩展所描述的 reflective and generative techniques截然不同.
在研究结构类型时,我发现以下描述为
how interfaces in Go are translated to method lookup tables at runtime的帖子.该帖子中描述的过程似乎与Scala的可选结构类型系统以及Java语言的White Oak扩展所描述的
reflective and generative techniques截然不同.
有没有深入的资源讨论如何在OCaml中实现结构打字?我对与名义类型系统的优化或运行时性能比较的任何讨论特别感兴趣. 解决方法
Jake Donham可以在
this blog post中找到一个比较详细的OCaml对象内部描述.其要点是,对象支持大部分实现为
an internal library,编译器本身只有一点逻辑(当然,类型系统中的对象键入逻辑),主要是围绕高效的消息分派.
我不是这部分语言的专家,但经过粗略检查,OCaml看起来像依赖于排序方法类型的方法查找(解析为方法表中的插槽),缓存用于最后的方法,并优化静态已知的调用,特别是方法实现中的自我调用.最后,一些常用的函数(例如实例变量getter和setter)被识别和编码(在内部OO库中输入impl),以提高性能,可能更重要的是减少代码大小. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |