编程语言
机器语言
- 机器语言由二进制代码表示的,使用机器指令来控制计算机的操作。
- 机器语言是计算机的最底层语言,与特定的计算机体系结构密切相关。
- 机器语言每条指令都被编码成一个二进制数或一个字节序列,用于告诉计算机执行特定的操作,例如加载数据、存储数据、执行算术运算等。这些指令通常对应于特定的硬件操作,如处理器寄存器、内存地址和输入/输出设备。
汇编语言
- 汇编语言是低级语言
- 汇编语言使用助记符来表示机器语言指令,使程序员能够以相对可读性更高的方式编写程序。
- 汇编语言直接映射到机器语言的,每条汇编语句对应一条机器指令。
- 与机器语言相比,汇编语言使用更加人类可读的符号和指令,使程序员能够更容易地理解和编写程序。
编译汇编语言
- 汇编语言程序需要通过汇编器将其转换为机器语言的指令,以便计算机能够执行。
- 汇编器是一种特殊的软件工具,它将汇编语言程序翻译成机器语言的二进制代码。
汇编语言的优势
- 汇编语言的主要优势是它提供了对计算机硬件的底层控制,并具有很高的执行效率。
- 因此,在某些需要对性能进行精确控制或直接操作底层硬件的应用中,使用汇编语言可以实现更高效的编程。
中级语言
C语言
- “中级语言”过程式语言的代表
- 可对位、字节、地址直接操作
- 代码和数据分离倡导结构化编程
- 功能齐全:数据类型和控制逻辑多样化
- 可移植能力强
高级语言
C++
- “高级语言”面向对象语言代表
- C语言的超集,在C语言之上实现了面向对象
- 有继承、权限控制、虚函数、多态
Lisp
- 函数式语言代表
- 与机器无关
- 列表:代码即数据
- 闭包
JavaScript
因为出现的比较晚,所以融合了多种语言的编程范式
- 基于原型和头等函数的多范式语言
- 过程式、面向对象、函数式、响应式
编程范式
命令式
面向过程
- 自顶向下
- 结构化编程
graph TD
程序 --> 模块 --> 变量 --> 数据结构
程序 --> 模块 --> 函数 --> 函.数
程序 --> 模块 --> 函数 --> 语句
- 面向过程的问题
- 数据与算法关联弱:它们之间的联系较弱。数据被当作全局变量或传递给函数进行处理,而算法则是一系列的过程或函数。这种弱关联可能导致数据在不同的过程之间传递和维护变得困难,增加了代码的复杂性和出错的可能性。
- 不利于修改和扩充
- 不利于代码重用
面向对象
- 面向对象编程的三大特性和一个高级特性
- 封装、继承、多态
- 依赖注入(高级特性)
- 面向对象的五大原则
-
单一职责原则
- 做单一的事情,单个类不能负责太多的事情
-
开放封闭原则
- 对扩展开放,对修改封闭
-
里氏替换原则LSP
-
依赖倒置原则
-
接口分离原则ISP
-
为什么推荐使用函数式编程?
- 函数式编程强调使用纯函数和不可变数据来构建程序
- 简洁和可读性:函数式编程通常使用短小的、自包含的函数来解决问题,代码更加简洁和易于理解。
- 可维护性:函数式编程鼓励将程序分解为小型、可复用的函数。这种模块化的设计使得代码更易于维护,可以更容易地测试、调试和修改函数
- 可扩展性:函数式编程强调将程序分解为小的函数,并鼓励函数之间的解耦。
个人总结
本次视频看起来有些费劲,多看几遍+网上搜索资料才写出了这篇笔记,内容是偏理论的,但如果想在这条道路走下去,这些是必学的内容,视频还得多看几遍才行