本篇前置:
- ExpRe[24] Oz[1] 变量,组合,函数
https://www.cnblogs.com/minor-second/p/15690147.html
基础信息
- 书名:Concepts, Techniques, and Models of Computer Programming
- ISBN:978-0-262-22069-9
- 0 Preface, Running the Example Programs
- Incentive:本学期课程有一门“约束式编程”,是一种非常有意思的paradigm. 想弄明白其在各种programming paradigm全景中的位置。
Preface
- 一个核心思想:不能被某个东西限制住
- 不能被语言限制住:
- 其实并发未必天生难。如果限制在Java,大家就都觉得很难
- 不能被computational model限制住:
- model的核心是concept,model本身不是限制
- 不能被concept限制住:
- 过分运用单个concept,比如过分运用OOP疯狂继承(过度使用设计模式),过分运用函数,过分运用逻辑导致疯狂搜,都不好。往往要综合多个concept效果才最好
- 不能被语言限制住:
- 教学方法:使用某种kernel language作为“编码”
- 其可以真包含foundational calculus(且保持表示的简洁性)
- 真包含虚拟机
- 可以使用多种paradigm进行编程,相当于一种multi-paradigm语言
- More is not better (or worse), just different
- 如非必要,不要瞎加一大堆概念,增加复杂度啥的
- 例如引入“对象”的优劣
- Oz的一大设计理念:
- 如非必要,不要瞎加一大堆概念,增加复杂度啥的
First, a new abstraction must either simplify the system or greatly increase its expressive power. Second, a new abstraction must have both an efficient implementation and a simple formalization.
- Acknowledge这里很有意思,连
LaTeX
都写上了。写得特别全 - 本书其实一定程度上符合IncRe主旨:有了基本知识之后,没必要从头到尾看。可以有Incentive的时候现查现学。
We have tried to make this book useful both as a textbook and as a reference
Running the Example Programs
- 注意省略的
declare
语句 - 理想中的语义和实际中的不完全一样
我们参考ExpRe[24],对Oz语言可做初步了解和体验。
可以准备出发使用Mozart,学习圣经CTM了!