elegantcoin / LectureNotes_for_Lisp

Lecture Notes for Lisp Language (programming paradigm included)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LectureNotes_for_Lisp

Lecture Notes for Lisp Language (programming paradigm included)


🔥 1.冒号课堂:编程范式与 OOP **

  • 09年主流语言:Java、C、C++、VB、PHP、C#、Python、Perl、Delphi、JavaScript、Ruby 和D
  • 19年github给出语言:C、C#、C++、CSS、HTML、Java、JavaScript、Julia、Jupyter Notebook、Makefile、Objective-C、Processing、Python、Rich Text Format、Shell、TeX、XSLT

🔥 2.计算机语言5代:

  • 第1代语言:机器语言;
  • 第2代语言:汇编语言——IA-32 Assembly、SPARC Assembly等;助记码(mnemonic code)代替0、1串,由汇编器(assembler)转化为机器语言
  • 第3代语言:高级语言——Fortran、Pascal、C、Java、VB等;编译器(compiler)和解释器(interpreter)。理解抽象的高级语言,优化指令
  • 第4代语言:面向问题语言——SQL、SAS、SPSS等;局限特定领域。(Domain Specific Language,简称DSL)
  • 第5代语言:人工智能语言——Prolog、Mercury、OPS5等。

🔥 3.编程范式:(programming paradigm),指的是计算机编程的基本风格或典范模式。

  • 框架、库和工作包:
    • 框架宏观上控制整体的结构和流程;微观实现上利用库和工具包来解决具体的细节问题。
    • 库和工具包是为程序员带来自由的,框架是为程序员带来约束的。
    • 设计模式(design pattern)和架构(architecture)不是软件产品,而是软件**。
    • 设计模式是软件的战术**,架构是软件的战略决策。

🔥 4.常用的编程范式:

  • 泛型式、元编程、切面式和事件驱动式
  • Generic Programming,简称GP,其基本**是:将算法与其作用的数据结构分离,尽可能泛化,最大限度地实现算法重用。基于模板(template)的参数多态(parametric polymorphism)
  • GP最著名的代表是C++中的STL(Standard Template Library)
  • STL 有3 要素:算法(algorithm)、容器(container)和迭代器(iterator)。
  • 泛型编程是算法导向(Algorithm-Oriented)的。
  • 元编程(Metaprogramming)
  • 元编程自然是关于程序的程序,或者说是编写、操纵程序的程序。
  • 元编程作为超级范式,能提升语言的级别。
  • 填补专业程序员与业务分析员之间的鸿沟

About

Lecture Notes for Lisp Language (programming paradigm included)