该【程序设计语言中的继续:理论和实践的综述报告 】是由【niuwk】上传分享,文档一共【2】页,该文档可以免费在线阅读,需要了解更多关于【程序设计语言中的继续:理论和实践的综述报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。程序设计语言中的继续:理论和实践的综述报告继续(Continuation)是程序设计语言中的一个概念,它可以用于控制流程的传递和恢复执行状态。通常,继续是一个用于实现非局部跳转的机制。继续在理论中的提出继续的概念首次出现在Lisp方言Scheme中,,MatthiasFelleisen和EugeneKohlbecker提出的。他们发现,在实现Scheme解释器时,需要实现协同式多任务(Coroutines)和非局部跳转(Non-localJumps)两个机制。协同式多任务能够在协程之间切换,从而实现协同处理任务。而非局部跳转能够实现从当前代码块直接跳转到其他代码块执行的机制。这两个机制缺一不可。为了实现这两个机制,Friedman等人引入了继续这个概念。继续指的是一个程序执行的状态,可以将其保存下来,以便稍后再次恢复。在Scheme中,继续可以被表示为一个函数。当调用这个函数时,程序的状态会被保存,并将执行控制权传递给继续函数。继续在实践中的应用除了Scheme之外,其他编程语言也采用了继续这个机制。例如,Python和Ruby都支持继续。在这些语言中,可以使用yield实现继续。yield是一个生成器函数,当执行到yield语句时,程序状态会被保存,函数会暂停执行。之后可以使用send方法恢复函数的执行状态,并传递一个值作为函数的返回值。另外,继续还被用于实现异常处理。在Java和C#中,异常处理是通过捕获和处理异常实现的。当一个异常被抛出时,程序会从当前代码块跳转到异常处理块,然后执行异常处理块中的相关代码。在这个过程中,程序状态的保存和恢复是通过继续来实现的。继续还被用于实现协程。在现代操作系统中,线程是操作系统进行任务调度的基本单位。线程之间的切换需要操作系统进行上下文切换,这个过程需要消耗大量的CPU时间。协程是一种用户级别的线程,不需要操作系统的介入,可以在应用程序内部进行切换。使用继续可以实现协程的状态保存和恢复。综述继续是一种非常重要的程序设计概念,用于控制流程的传递和状态的保存与恢复。在Lisp方言Scheme中的提出,使得编程语言中的协程、异常处理等能够更加方便地进行。在实际应用中,继续被广泛地使用,可以用于实现协程、异常处理、代码实验、控制反转等。例如,Python和Ruby中的生成器函数可以使用yield来实现状态的保存和恢复。总之,继续在程序设计语言中具有重要的意义和价值,它为我们提供了一种方便的控制流程机制,可以用于实现各种各样的应用。
程序设计语言中的继续:理论和实践的综述报告 来自淘豆网www.taodocs.com转载请标明出处.