编程范式 | 青训营笔记

78 阅读2分钟

今天的课程内容是编程语言、编程范式和领域特定语言。

编程语言是用来表达计算机指令的工具,它们可以分为不同的层次,从低到高分别是机器语言、汇编语言、中级语言和高级语言。机器语言是直接用二进制代码表示的指令,它是最接近计算机硬件的语言,但也是最难读写和调试的语言。汇编语言是用符号表示的指令,它比机器语言更容易理解,但仍然需要了解硬件的细节。中级语言是介于低级语言和高级语言之间的语言,它有一定的抽象能力,但也保留了一些低级语言的特性,例如C语言。高级语言是最接近人类自然语言的语言,它有很强的抽象能力,可以用简洁和清晰的方式表达复杂的逻辑,例如Python、Java等。

编程范式是编程语言的风格或思想,它影响了编程语言的设计和使用。编程范式可以分为不同的类型,例如概念、过程式、面向对象、函数式和响应式。概念编程范式是指用一些基本的概念来构建程序,例如变量、函数、类型等。过程式编程范式是指用一系列的步骤来描述程序的执行过程,例如C、Pascal等。面向对象编程范式是指用对象来表示程序中的实体和行为,对象具有属性和方法,并可以通过继承和多态实现复用和扩展,例如Java、C++等。函数式编程范式是指用函数来表示程序中的计算,函数是一等公民,可以作为参数和返回值传递,并且避免使用可变状态和副作用,例如Haskell、Lisp等。响应式编程范式是指用数据流来表示程序中的变化,数据流可以被观察和操作,并且可以响应事件和异步操作,例如RxJava、ReactiveX等。

领域特定语言是针对某个特定领域或问题而设计的语言,它具有高度的专业性和表达力,但也有较小的适用范围。领域特定语言可以分为内部DSL和外部DSL。内部DSL是基于某个宿主语言而构建的DSL,它利用了宿主语言的特性和库,并且可以与之互操作,例如SQL、JUnit等。外部DSL是独立于任何宿主语言而存在的DSL,它需要自己定义词法、语法、工具和访问者等组件,并且需要自己实现解析和执行等功能,例如HTML、CSS等。