笔记 编程范式

54 阅读2分钟

编程语言

C

  • 可对位,字节,地址直接操作
  • 功能齐全:数据类型和控制逻辑多样化(指针)
  • 可移植能力强

C++

  • 继承
  • 多态
  • 虚函数
  • 权限

lisp:函数式语言代表

屏蔽了指针的概念 -与机器无关

  • 代码即数据
  • 闭包

JavaScript

  • 过程式
  • 面向对象
  • 函数式
  • 响应式 应用范围广

编程范式

什么是编程范式?

  • 是否允许副作用
  • 操作的执行顺序
  • 代码组织
  • 状态管理
  • 语法和词法

面向过程式编程有什么缺点

  • 数据与算法关联弱
  • 不利于修改和优化
  • 不利于代码重用

面向对象五大原则

  • 单一职责原则
  • 开放封闭原则
  • 里式替换原则
  • 依赖倒置原则
  • 接口分离原则

缺点

  • 连带的东西多。总是附带着所有他需要的隐含环境。

函数式编程优点

  • 可缓存
  • 可移植
  • 可测试
  • 可推理
  • 可并行

响应式编程

  • observable
  • 操作符
  • monard

领域特定语言

什么是领域特定语言

  • HTML
  • SQL

_lexer

SQL token分类

  • 注释
  • 关键字
  • 操作符
  • 空格
  • 字符串
  • 变量

_parser_语法规则

  • 推导式:表示非终结符 到 (非终结符或终结符)的关系
  • 终结符:构成句子的实际内容。可以理解为词法分析中的token
  • 非终结符: 符号或变量的有限集合。他们表示在句子种不同类型的短语或子句。 _Parser_LL LL: 从左向右检查,从左到右构建语法树 _Parser_LR LR: 从左向右检查,从右到左构建语法树 _tools
  • exp::=exp'+'exp
  • exp::=exp'*'exp
  • exp::='NUMBER'

总结一下

  • 编程范式
    • 编程语言

      • 机器语言
      • 汇编语言
      • 中级语言 C
      • 高级语言 C++/lisp/javascript
    • 编程范式

      • 什么是编程式
      • 过程式编程
      • 面向对象编程
      • 函数式编程
      • 响应式编程
    • 领域特定语言

      • 创造dsl
        • lexer
        • parser
        • tools
        • visitor