-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #51 from GuoXiCheng/dev-c
update structure and ai
- Loading branch information
Showing
9 changed files
with
188 additions
and
107 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
# AI 领域 | ||
|
||
## 人工智能领域 | ||
|
||
```mermaid | ||
graph TD; | ||
AI[人工智能] | ||
subgraph AI [人工智能] | ||
ML[机器学习] | ||
NLP[自然语言处理] | ||
CV[计算机视觉] | ||
Robotics[机器人学] | ||
ES[专家系统] | ||
PS[感知系统] | ||
subgraph ML [机器学习] | ||
SL[监督学习] | ||
UL[非监督学习] | ||
SSL[半监督学习] | ||
RL[强化学习] | ||
DL[深度学习] | ||
subgraph DL [深度学习] | ||
CNN[卷积神经网络] | ||
RNN[循环神经网络] | ||
end | ||
end | ||
subgraph NLP [自然语言处理] | ||
SA[语义分析] | ||
SP[句法分析] | ||
SR[语音识别] | ||
TG[文本生成] | ||
MT[机器翻译] | ||
end | ||
subgraph CV [计算机视觉] | ||
IC[图像分类] | ||
OD[对象检测] | ||
IS[图像分割] | ||
FR[面部识别] | ||
AR[动作识别] | ||
end | ||
subgraph Robotics [机器人学] | ||
NAV[导航和定位] | ||
OC[操作和控制] | ||
PER[感知和处理] | ||
COB[协作机器人] | ||
end | ||
subgraph ES [专家系统] | ||
KB[知识库] | ||
RE[推理引擎] | ||
INT[解释器] | ||
end | ||
subgraph PS [感知系统] | ||
VP[视觉感知] | ||
AP[听觉感知] | ||
TP[触觉感知] | ||
end | ||
end | ||
``` | ||
|
||
## 机器学习 | ||
|
||
### 监督学习(Supervised Learning) | ||
|
||
在监督学习中,算法从标记的训练数据中学习,每个训练样本都有一个输入对象(特征向量)和一个期望的输出值(标签)。 | ||
|
||
算法的目标是学习一个模型,使其能够准确地预测新的、未见过的数据。 | ||
|
||
### 非监督学习(Unsupervised Learning) | ||
|
||
非监督学习的算法试图从未标记的数据中找到隐藏的结构。由于输入数据没有标签,因此算法需要自行发现数据中的模式和关系。 | ||
|
||
### 半监督学习(Semi-Supervised Learning) | ||
|
||
半监督学习介于监督学习和非监督学习之间。 | ||
|
||
它使用少量标记数据和大量未标记数据进行训练,这种方法在标记数据昂贵或难以获得,但未标记数据易于获取的情况下非常有用。 | ||
|
||
### 强化学习(Reinforcement Learning) | ||
|
||
在强化学习中,算法(或称为代理)通过与环境交互来学习行为策略,目标是最大化累积奖励。 | ||
|
||
这种学习与上述三种形式不同,它侧重于在一定的策略下进行决策序列,而非单次预测。 |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# 关于 NodeJS | ||
|
||
## 编程语言层次结构 | ||
|
||
### 基础层 | ||
|
||
机器语言是最基础的编程形式,由 0 和 1 的二进制代码组成,直接控制硬件。它是高度依赖于具体 CPU 架构的,如 x86 或 ARM,每种架构都有其独特的指令集。 | ||
|
||
汇编语言提供了一种更易于理解的编码方式来表示机器语言。虽然它仍然与特定的 CPU 架构紧密相关,但通过使用助记符代替二进制代码,它简化了程序的编写和理解。 | ||
|
||
### 系统层 | ||
|
||
C/C++语言标志着向更高层次的编程抽象的转变,提供了丰富的语法和结构,如函数和类,同时保留了对底层系统的直接控制能力。这些语言通过编译器将源代码转换为机器码,既保持了接近硬件的灵活性,又显著提高了开发效率。 | ||
|
||
它们的设计允许开发者编写操作系统、驱动程序以及需要直接硬件访问的其他系统软件,成为现代计算机系统编程的基石。 | ||
|
||
### 应用层 | ||
|
||
Java、Python、JavaScript 等高级编程语言进一步提高了编程的抽象级别。这些语言不直接与硬件交互,而是通过高级的 API 来实现功能,极大地简化了应用程序开发。 | ||
|
||
这些语言的设计重点是提高开发效率和程序的可移植性。例如,Java 通过 JVM(Java 虚拟机)实现跨平台能力,而 Python 和 JavaScript 则以其易学性和广泛的库支持,在快速开发中受到青睐。 | ||
|
||
编程语言的层次结构展现了软件开发从硬件到逻辑抽象的演进。每一层的语言都旨在解决特定领域的问题,提供从底层硬件控制到快速应用开发的灵活解决方案。 | ||
|
||
## NodeJS | ||
|
||
NodeJS 扩展了 JavaScript 的应用范围,使其不仅限于浏览器端编程,也能用于服务器端开发。通过利用 Google 的 V8 引擎,Node.js 能够在服务器上高效执行 JavaScript 代码。 | ||
|
||
### V8 引擎 | ||
|
||
V8 引擎是 Google 开源的高性能 JavaScript 和 WebAssembly 引擎,它实现了 ECMAScript 和 WebAssembly 标准,并支持 x86、ARM 等多种处理器架构。V8 的高效执行能力是 Node.js 能够提供高性能服务器端应用的关键因素。 | ||
|
||
### libuv | ||
|
||
libuv 库提供了跨平台的异步 I/O 能力,使 NodeJS 能够处理高并发、无阻塞的 I/O 操作,它提供了事件循环、文件系统访问、网络编程、线程池、定时器和非阻塞 I/O 等功能。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +0,0 @@ | ||
# NodeJS | ||
|
||
## 编程语言层次结构 | ||
|
||
### 基础层 | ||
机器语言是最基础的编程形式,由0和1的二进制代码组成,直接控制硬件。它是高度依赖于具体CPU架构的,如x86或ARM,每种架构都有其独特的指令集。 | ||
|
||
汇编语言提供了一种更易于理解的编码方式来表示机器语言。虽然它仍然与特定的CPU架构紧密相关,但通过使用助记符代替二进制代码,它简化了程序的编写和理解。 | ||
|
||
### 系统层 | ||
C/C++语言标志着向更高层次的编程抽象的转变,提供了丰富的语法和结构,如函数和类,同时保留了对底层系统的直接控制能力。这些语言通过编译器将源代码转换为机器码,既保持了接近硬件的灵活性,又显著提高了开发效率。 | ||
|
||
它们的设计允许开发者编写操作系统、驱动程序以及需要直接硬件访问的其他系统软件,成为现代计算机系统编程的基石。 | ||
|
||
### 应用层 | ||
Java、Python、JavaScript等高级编程语言进一步提高了编程的抽象级别。这些语言不直接与硬件交互,而是通过高级的API来实现功能,极大地简化了应用程序开发。 | ||
|
||
这些语言的设计重点是提高开发效率和程序的可移植性。例如,Java通过JVM(Java虚拟机)实现跨平台能力,而Python和JavaScript则以其易学性和广泛的库支持,在快速开发中受到青睐。 | ||
|
||
编程语言的层次结构展现了软件开发从硬件到逻辑抽象的演进。每一层的语言都旨在解决特定领域的问题,提供从底层硬件控制到快速应用开发的灵活解决方案。 | ||
|
||
## NodeJS | ||
|
||
NodeJS扩展了JavaScript的应用范围,使其不仅限于浏览器端编程,也能用于服务器端开发。通过利用Google的V8引擎,Node.js能够在服务器上高效执行JavaScript代码。 | ||
|
||
### V8引擎 | ||
V8引擎是Google开源的高性能JavaScript和WebAssembly引擎,它实现了ECMAScript和WebAssembly标准,并支持x86、ARM等多种处理器架构。V8的高效执行能力是Node.js能够提供高性能服务器端应用的关键因素。 | ||
|
||
### libuv | ||
libuv库提供了跨平台的异步I/O能力,使NodeJS能够处理高并发、无阻塞的I/O操作,它提供了事件循环、文件系统访问、网络编程、线程池、定时器和非阻塞 I/O 等功能。 | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# JavaScript 核心实现 | ||
|
||
完整的 JavaScript 包含以下三个部分: | ||
|
||
- ECMAScript:由 ECMA-262 定义并提供核心功能 | ||
- DOM:提供与网页内容交互的方法和接口 | ||
- BOM:提供与浏览器交互的方法和接口 | ||
|
||
```mermaid | ||
graph TD | ||
subgraph A[JavaScript] | ||
B[ECMAScript] | ||
C[DOM(文档对象模型)] | ||
D[BOM(浏览器对象模型)] | ||
end | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# JavaScript 发展历程 | ||
|
||
JavaScript 的历史展示了它是如何从一个用于简单客户端数据验证的脚本语言,演变成为一门支持前后端开发、跨多个环境应用的全栈编程语言,成为世界上最流行的编程语言之一。 | ||
|
||
## 诞生初期 | ||
|
||
1989 年,欧洲核子研究组织提出了全球互联信息共享网络的概念,奠定了互联网的基础。 | ||
|
||
1990 年,世界上第一个网页和浏览器——WorldWideWeb 和 Nexus 浏览器问世。HTML 的诞生为构建网页提供了基石。 | ||
|
||
1993 年,Mosaic 浏览器的推出,引入了图形界面网页浏览器的概念,提高了网页的可访问性。 | ||
|
||
1994 年,网景公司发布 Netscape Navigator 浏览器,为了解决客户端简单表单验证的需求,开始开发一种客户端脚本语言。 | ||
|
||
1995 年,网景公司为即将发布的 Netscape Navigator 2.0 浏览器开发了一个名为 LiveScript 的脚本语言。就在 Netscape Navigator 2 正式发布前,网景把 LiveScript 改名为 JavaScript,以便搭上媒体当时热烈炒作 Java 的顺风车。 | ||
|
||
由于 JavaScript 1.0 很成功,网景又在 Netscape Navigator 3 中发布了 JavaScript 1.1 版本。 | ||
|
||
## 标准化时期 | ||
|
||
1996 年,微软应对网景公司的 JavaScript 推出了自己的版本——JScript,并将其集成到了 IE3 浏览器中。这一举措导致了市场上出现了两种不同的 JavaScript 实现,即网景的 JavaScript 和微软的 JScript。这种分歧让业界深刻意识到,为了避免兼容性问题并促进 Web 技术的健康发展,迫切需要制定一个统一的 JavaScript 规范。因此,这一需求促进了 JavaScript 语言标准化工作的启动。 | ||
|
||
1997 年,JavaScript 1.1 提交给欧洲计算机制造商协会(ECMA),标志着 JavaScript 正式开始标准化过程,ECMAScript 成为 JavaScript 的官方标准。 | ||
|
||
自此以后,各家浏览器均以 ECMAScript 作为自己 JavaScript 实现的依据,虽然具体实现各有不同。 | ||
|
||
## 快速发展时期 | ||
|
||
2002 年,Firefox 浏览器发布,其 JavaScript 引擎 SpiderMonkey 标志着开源社区对 JavaScript 开发的重要贡献。 | ||
|
||
2008 年,Google 的 Chrome 浏览器及其 V8 引擎的发布,显著提高了 JavaScript 的执行效率。 | ||
|
||
2009 年,Node.js 的诞生使 JavaScript 能够运行在服务器端,彻底改变了 Web 开发的景象。 | ||
|
||
至此,JavaScript 从简单的客户端表单验证脚本发展成为一门全栈技术的核心语言,成为了世界上最流行的编程语言之一。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,53 +0,0 @@ | ||
# JavaScript | ||
|
||
## JavaScript的历史 | ||
|
||
JavaScript的历史展示了它是如何从一个用于简单客户端数据验证的脚本语言,演变成为一门支持前后端开发、跨多个环境应用的全栈编程语言,成为世界上最流行的编程语言之一。 | ||
|
||
### 诞生初期 | ||
1989年,欧洲核子研究组织提出了全球互联信息共享网络的概念,奠定了互联网的基础。 | ||
|
||
1990年,世界上第一个网页和浏览器——WorldWideWeb和Nexus浏览器问世。HTML的诞生为构建网页提供了基石。 | ||
|
||
1993年,Mosaic浏览器的推出,引入了图形界面网页浏览器的概念,提高了网页的可访问性。 | ||
|
||
1994年,网景公司发布Netscape Navigator浏览器,为了解决客户端简单表单验证的需求,开始开发一种客户端脚本语言。 | ||
|
||
1995年,网景公司为即将发布的Netscape Navigator 2.0浏览器开发了一个名为LiveScript的脚本语言。就在Netscape Navigator 2正式发布前,网景把LiveScript改名为JavaScript,以便搭上媒体当时热烈炒作Java的顺风车。 | ||
|
||
由于JavaScript 1.0很成功,网景又在Netscape Navigator 3中发布了JavaScript 1.1版本。 | ||
|
||
### 标准化时期 | ||
|
||
1996年,微软应对网景公司的JavaScript推出了自己的版本——JScript,并将其集成到了IE3浏览器中。这一举措导致了市场上出现了两种不同的JavaScript实现,即网景的JavaScript和微软的JScript。这种分歧让业界深刻意识到,为了避免兼容性问题并促进Web技术的健康发展,迫切需要制定一个统一的JavaScript规范。因此,这一需求促进了JavaScript语言标准化工作的启动。 | ||
|
||
1997年,JavaScript 1.1提交给欧洲计算机制造商协会(ECMA),标志着JavaScript正式开始标准化过程,ECMAScript成为JavaScript的官方标准。 | ||
|
||
自此以后,各家浏览器均以ECMAScript作为自己JavaScript实现的依据,虽然具体实现各有不同。 | ||
|
||
### 快速发展时期 | ||
|
||
2002年,Firefox浏览器发布,其JavaScript引擎SpiderMonkey标志着开源社区对JavaScript开发的重要贡献。 | ||
|
||
2008年,Google的Chrome浏览器及其V8引擎的发布,显著提高了JavaScript的执行效率。 | ||
|
||
2009年,Node.js的诞生使JavaScript能够运行在服务器端,彻底改变了Web开发的景象。 | ||
|
||
至此,JavaScript从简单的客户端表单验证脚本发展成为一门全栈技术的核心语言,成为了世界上最流行的编程语言之一。 | ||
|
||
|
||
## JavaScript的实现 | ||
|
||
```mermaid | ||
graph TD | ||
subgraph A[JavaScript] | ||
B[ECMAScript] | ||
C[DOM(文档对象模型)] | ||
D[BOM(浏览器对象模型)] | ||
end | ||
``` | ||
|
||
完整的JavaScript包含以下三个部分: | ||
- ECMAScript:由ECMA-262定义并提供核心功能 | ||
- DOM:提供与网页内容交互的方法和接口 | ||
- BOM:提供与浏览器交互的方法和接口 | ||