Programming languages 关于执行序列的编程语言特性

Programming languages 关于执行序列的编程语言特性,programming-languages,Programming Languages,不确定我是否能清楚地解释我的想法,但让我试试 编程语言决定代码的执行顺序 简单的例子是C作为一种过程编程语言 代码执行从“main()”开始,并遵循 函数不断地调用 异常处理(“try…catch”)是代码的另一个特性 执行有“正常”序列和“异常”序列。什么时候 发生异常时,代码仍在函数后面滚动 调用关系,但跳过了正常代码 TSR、WinAPI、MFC、VBA等定义了另一种样式,代码可能有多个入口点:执行可以 可以从系统消息或用户交互触发。类设计将在对象超出范围时隐式调用析构函数等,这是“多入口

不确定我是否能清楚地解释我的想法,但让我试试

编程语言决定代码的执行顺序

  • 简单的例子是C作为一种过程编程语言 代码执行从“main()”开始,并遵循 函数不断地调用

  • 异常处理(“try…catch”)是代码的另一个特性 执行有“正常”序列和“异常”序列。什么时候 发生异常时,代码仍在函数后面滚动 调用关系,但跳过了正常代码

  • TSR、WinAPI、MFC、VBA等定义了另一种样式,代码可能有多个入口点:执行可以 可以从系统消息或用户交互触发。类设计将在对象超出范围时隐式调用析构函数等,这是“多入口点”的另一个示例

  • 有一些“懒惰”特性允许一些代码执行被推迟到需要的时候。例如,在C++中,允许ISTRESAMIs迭代器使用懒惰的评价。
  • 有些语言特性允许异步执行,例如F#中的“async”


  • 我的问题是,除了这些特性,还有其他语言特征,在C++或其他语言中,不是编码模式/技能,来改变代码的执行顺序?

    。您所能使用的特征可以部分地由特定语言所遵循的编程范式决定。以下是关于这些方面的一个很好的总结:


    一些较低级别的特性(特别是列表中的第2项,异常处理)通常在术语“控制流”下讨论。根据它的维基百科页面(),它仅限于命令式和功能性范例。

    你为什么把懒惰列入你的列表?这只是一种编码模式,除非你说的是一种真正懒惰的语言,比如Haskell。@svick同意,也许线程中的WaitOne是一个更好的例子。