Your Site Title

Lang 编程范式

declarative vs imperative programming

不同抽象级别上使用的编程范式, declaretive 比 imperative 更高等一些, 只描述有哪些
对象, 并且这些对象做什么. 背后会有一个解析器, 解析描述语句, 所以性能不太好.

imperative 更贴近底层, 关注一个算法或者一个问题, 一步步的解的步骤.

Procedural programming paradigm

过程式编程, 注重解题的步骤, 使用各种控制语句

Object oriented programming

面向对象编程, 解题不是一个步骤, 而是交给一个符合这个问题解的对象, 对过发送消息,
让这个对象来处理问题.

Parallel processing approach

使用多线程, 多进程编程的并行处理方式

Logic programming paradigms

计算的抽象模型, 一般在人工智能中使用, 需要一个知识库和一个问题, 计算机根据模型
和知识库来解问题.

Functional programming paradigms

函数式编程关心数据的映射,命令式编程关心解决问题的步骤. 这种映射就是数学中的函数,
将计算描述为一种表达式求值.

特性:

Typed Racket

Nested function And Closure

创建过程活动记录时包含一个指向它的外层函数的活动记录指针. 这个指针被称为静态链接(static link), 可以通过静态链接访问外层过程活动记录, 因此也可以访问外层过程的局部数据. 一个指向词法上 外层范围的数据项的引用被称作上层引用(uplevel reference). 静态链接编译时决定, 与之对应的是 运行时决定的动态链接, 后者是一个活动链, 在运行时指向最靠近自己的前一个过程调用的活动记录.

Reference

Visitor Pattern 与 Finally Tagless:解决表达式问题