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