用高级编程语言进行 Web 编程
1. Web 服务器与高级操作系统
Web 服务器提供类似操作系统的服务,它能运行程序(如 CGI 脚本),保护这些程序相互隔离,还能管理程序运行所需的资源(如网络连接)。不过,一些现有的 Web 服务器依赖底层操作系统来实现这些服务,还有一些因实现语言的缺陷而无法提供完善的服务。
实验基于 MrEd(Scheme 的扩展),服务器的实现大量利用了四个扩展:
- 一等模块:有助于构建服务器结构并表示服务器程序。
- 抢占式线程:用于执行服务器程序。
- 托管人:管理服务器程序的资源消耗。
- 参数:控制线程的有状态属性。
服务器程序还依赖 Scheme 将延续作为一等值进行操作的能力。
2. MrEd:高级操作系统
MrEd 是 Scheme 的安全实现,也是现存最快的 Scheme 解释器之一。它遵循函数式语言的传统,Scheme 程序通过值和对值的合法原始操作(创建、选择、修改、谓词测试)来指定计算。
MrEd 对 Scheme 进行了扩展,增加了结构、异常和模块:
- 模块系统 :允许程序员指定原子单元和复合单元。原子单元是封闭的定义集合,每个单元有导入和导出签名。单元是一等值,有调用和链接两种操作。
- 线程和线程同步 :线程由零元过程(thunk)创建,通过计数信号量进行同步。为了简化父子线程间的通信,MrEd 提供了(线程)参数。示例代码如下:
(param
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



