36、子程序、控制抽象与面向对象编程

子程序、控制抽象与面向对象编程

1. 子程序与控制抽象相关问题

1.1 异常处理相关

  • 队列操作异常处理 :需要修改代码,当尝试向已满的队列中入队元素或从空队列中出队元素时抛出异常。
  • 不同语言异常处理优势对比 :Algol 60 允许将标签作为参数传递并使用 goto 语句跳转到这些标签,可用于从嵌套函数中跳出以应对意外情况,但现代语言设计者认为标签参数不是好主意。而 Ada、Modula - 3、C++/Java/C# 的异常处理在某些方面更具优势,不过具体优势未详细说明。
  • Scheme 中异常实现 :基于练习 6.31,展示如何使用 Scheme 中的 call - with - current - continuation 实现异常,语法仿照 Common Lisp 的 handler - case。
  • 非局部 goto 实现 :根据结构化异常的实现知识,描述如何实现 Pascal 的非局部 goto 或 Algol 60 的标签参数,同时考虑是否需要对这些特性的使用施加限制。

1.2 协程与迭代器相关

使用协程在 Modula - 2 中构建迭代器支持,代码应让程序员轻松创建新迭代器,并尽量将实现细节隐藏在模块内部,特别是隐藏 yield(由迭代器协程调用)和 next(在循环体中调用)例程实现中的 transfer 使用,同时讨论该语言抽象设施存在的弱点。

1.3 不同语言特性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值