文件名称:程序员为什么还要刷题-cpsdoc:cpsdoc
文件大小:476KB
文件格式:ZIP
更新时间:2024-07-27 08:38:22
系统开源
程序员常刷题CPS - 也称为 Continuation-Passing Style - 用于 Nim。 在过去的几个月里,观看 Nim 社区的人可能听说过“CPS”这个词。 似乎对 CPS 存在一些混淆。 具体来说,CPS是什么,不是什么,能做什么,不能做什么。 这篇简短的文章试图回答上述问题,并描述了与 CPS 相关的一些技术细节,以及它如何适应 Nim 生态系统。 注意:本文档使用术语CPS来表示使用延续的编程风格,并使用Nim-CPS来表示当前正在开发的特定实现。 TL;DR -- 分钟总结 Nim-CPS是一个转换程序的宏。 此转换通过编译指示将单个函数定义作为输入,并产生以下输出: 一个延续类型,通常是一个object ,它包含一个函数指针和来自原始函数的任何局部变量 原始过程中控制流更改之间的每个语句列表的新延续分支函数; 这些分支函数被修改为使用延续字段代替局部变量,并且在每个分支的出口处,延续中的函数指针被更新以指向控制流路径中的下一个分支 一个与原始函数具有相同签名的新便利函数,它实例化了延续类型的新实例 这种转换后不需要堆栈,这允许一些有趣的可能性: 转化的功能,
【文件预览】:
cpsdoc-master
----papers()
--------cpc-manual.pdf(102KB)
--------cpc.pdf(93KB)
--------1011.4558.pdf(364KB)
----cps.svg(114KB)
----README.md(13KB)