本篇前置:

基础信息

  • image
  • 书名: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了!