This commit is contained in:
ouczbs 2023-08-25 10:49:58 +08:00
parent 6428bd0a08
commit 42897b8a3b
19 changed files with 321 additions and 3 deletions

4
.obsidian/app.json vendored
View File

@ -1 +1,3 @@
{} {
"alwaysUpdateLinks": true
}

View File

@ -2,5 +2,6 @@
"obsidian-git", "obsidian-git",
"obsidian-kanban", "obsidian-kanban",
"obsidian-excalidraw-plugin", "obsidian-excalidraw-plugin",
"calendar" "calendar",
"obsidian-image-auto-upload-plugin"
] ]

View File

@ -0,0 +1,33 @@
- [ ] 正则表达式
# 词法分析
## 状态转换图
## 正则表达式
# 语法分析
## 文法
## 语法树
# 目标代码
# 编译
## 数据
- 数据类型
- 检测可以调用哪些函数
- 决定应该调用哪些函数
- 函数决定数据的操作
- 数据对象
- 数据地址
- 别名
## 函数
- 函数类型
- 函数名
- 返回值
- 参数
- 函数体
- 局部变量
- 语句列表

View File

@ -0,0 +1,81 @@
# 数字电路
## 电路
### 数字电路
- 与
- 或
- 非
### 时序电路
- 触发器
- 存储器
## 接口
### 基础运算
- 加
- 减
- 乘
- 除
### 总线接口
- 数据编码
- 数据寻址
- 数据读写
### 控制单元
- 自动计算
### 指令编码
- 算术运算
- 逻辑运算
- 数据传送
- 控制指令
### 存储器
- 寄存器
- 内存
- 硬盘
# 编码
## 机器码
### 开关、跳线
- 拨动开关传递数据与指令
### 纸带
- 打孔传入数据与指令
- 自动区分数据与指令
- 自动计算
## 高级语言
### 汇编
### [[C++ 基础]]
# 数据编码
## 大小端
## 编码
### ASIC
### Unicode
### UTF8
# 元件
## 存储
### 内存
- 断电后数据丢失
- 数据易读易修改
### 只读存储器
#### 特点
- 易读难修改
- 断电不丢失数据
- 数据编码起点,开机指令起点
#### 作用
- 硬件检测、诊断和初始化
- 基本的输入输出功能BIOS
- 交接指令数据,执行外盘主引导扇区
### 系统盘
- 第一个扇区为主引导扇区
- 主引导扇区逐步加载操作系统
## 显示
### 显示器
- 数据转换为像素
- 显示像素
### 显卡
- 控制显示器显示数据
- 文本模式 和 图像模式
- 显存存储数据
![数据映射](https://res.weread.qq.com/wrepub/CB_3300050845_txt008_3.jpg)

View File

@ -0,0 +1,49 @@
# LLVM 库
## LLVM CORE
该库提供了源代码和目标代码隔离的优化器同时支持许多CPU的代码生成支持。这些库基于专门定义的代码表示被称为LLVM中间表示即LLVM IR。该库提供了完整的文档可以简单的使用该库作为优化器或者代码生成器来开发自己的编程语言或者扩展现有语言。
## Clang
LLVM原生的C/C++/Objective-C编译器设计目标是使实现快速编译、提供极端有用的错误和警告信息以及提供构建源代码级工具的平台。该子项目包括了Clang Static Analyzer和clang-tidy两个用于自动code check的工具也是使用clang对C/C++代码进行语法分析的最佳示例
## LLDB
LLDB基于 LLVM core和Clang构建为LLVM项目的原生调试器。使用Clang ASTs和表达式语法分析器LLVM JITLLVM反汇编器等构建因此使用感极佳。相比于GDB可以更快且更节省内存的加载符号。
## libc++ & libc++ ABI
这两个子项目为提供了C++标准库的标准规范和高性能实现包括对C++11和C++14的完整支持。
## compiler-rt
该子项目提供底层代码生成器的高度校准的实现。该项目同时提供运行时库的实现以及动态测试代码如AddressSanitizerThreadSanitizerMemorySanitizer和DataFlowSanitizer实现。
## MLIR
该子项目是构建一个可重用且可扩展的编译器的基础架构。其目标是解决软件分片,提供针对异构硬件的编译效果,降低构建领域定制编译器的成本以及帮助连接现有的编译器。
## OpenMP
提供在Clang中使用OpenMP时的OpenMP运行时环境。
## polly
实现了一系列cache局部优化以及使用一个polyhedral模型实现了自动化并行化和向量化。
## libclc
该子项目的目标是实现一个OpenCL标准库。
## klee
实现了一个符号化虚拟机该项目采用了一个定理证明器来评估所有的动态路径通过一个试图寻找bug和实现功能证明的程序。klee的主要特性是其发现bug时可提供一个测试用例。
## LLD
该项目为一个新的链接器。可用于替换系统链接器,且链接速度更快。
## 2. LLVM pass实验准备
该项目的核心为"LLVM"包括所有用于处理中间表示和将IR转换为目标文件的工具库和头文件。工具包括汇编器反汇编器二进制分析器二进制优化器。同样包括基本的回归测试。类似C的语言可使用Clang作为前端。该组件可将CC++Objective C和Objective C++编译为LLVM bitcodeLLVM引入的一种中间表示IR且可将bitcode转换为目标文件。

View File

@ -0,0 +1,13 @@
士大夫十分·
- 胜多负少
- 电风扇广泛
sdf # sdaf
# sfdsf
## title
<script>
````
var bmapChart=echarts.init(document.getElementById("map-wrap"));
````
</script>

View File

View File

View File

View File

View File

@ -0,0 +1,18 @@
## 修复反馈
### 已修复
已修复的问题已做完版本,无需新包,热更新后即可查看
1. 安装包只支持64位机型
2. 充值下单失败已修复
3. 用户协议与文本资质已修改
4. 调查问卷10级后会显示在主界面左下角
![image-20230823133758898](F:\ouczbs\znotes\Assert\Image\image-20230823133758898.png)
### 权限调用 是
1. 权限申请的问题不太明白,是指保护指引之后不能立即弹出 权限申请吗?

View File

View File

View File

@ -0,0 +1,18 @@
---
kanban-plugin: basic
---
## 进行中
- [ ] [[nasm]]
%% kanban:settings
```
{"kanban-plugin":"basic"}
```
%%

View File

@ -0,0 +1,31 @@
---
kanban-plugin: basic
---
## [[编译原理]]
## 词法分析
- [ ] 正则表达式
- [ ] DFA NFA
## 语法分析
- [ ] 文法
- [ ] 语法树
## 目标代码
- [ ] 中间代码
- [ ] 目标代码
%% kanban:settings
```
{"kanban-plugin":"basic","new-note-folder":"专业积累/原理"}
```
%%

View File

@ -0,0 +1,20 @@
---
kanban-plugin: basic
---
## 目标
- [ ] 配置文件解析与生成
- [ ] 跨语言调用
- [ ] 反射编辑器
%% kanban:settings
```
{"kanban-plugin":"basic"}
```
%%

View File

@ -2,4 +2,8 @@
[IP](175.24.226.114:8888) [IP](175.24.226.114:8888)
![image-20230720110920769](F:\ouczbs\znotes\Assert\Image\image-20230720110920769.png) ![![](https://cloud-1318379256.cos.ap-shanghai.myqcloud.com/obsidian/image-20230720110920769.png)
## COS
## Picgo

View File

@ -221,6 +221,33 @@ dependencies {
- 多渠道配置 - 多渠道配置
# 清单合并
## 流程与优先级
![](https://cloud-1318379256.cos.ap-shanghai.myqcloud.com/obsidian/10795559-64a9cc02c079e5a7.webp)
## 合并冲突启发式算法
- `<manifest>` 元素中的属性绝不合并—仅使用优先级最高的清单中的属性。
- [android:required 属性 >``](https://developer.android.com/guide/topics/manifest/uses-feature-element.html?hl=zh-cn) and [``](https://developer.android.com/guide/topics/manifest/uses-library-element.html?hl=zh-cn) 元素使用 *OR* 合并,因此如果出现冲突,系统将应用 `"true"` 并始终包括某个清单所需的功能或库。
- `<uses-sdk>`
元素始终使用优先级较高的清单中的值,但以下情况除外:
- 如果低优先级清单的 `minSdkVersion` 值*较高*,除非您应用 [`overrideLibrary`](https://developer.android.com/studio/build/manifest-merge?hl=zh-cn#override_wzxhzdk35uses-sdk_for_imported_libraries) 合并规则。
- 如果低优先级清单的 `targetSdkVersion` 值*较低*,合并工具将使用高优先级清单中的值,但也会添加任何必要的系统权限,以确保所导入的库继续正常工作(适用于较高的 Android 版本具有更多权限限制的情况)。 如需了解有关此行为的详细信息,请参阅有关[隐式系统权限](https://developer.android.com/studio/build/manifest-merge?hl=zh-cn#implicit_system_permissions)的部分。
- 绝不会在清单之间匹配 `<intent-filter>` 元素。 每个元素都被视为唯一元素,并添加至合并清单中的常用父元素。
> **不依赖于默认属性值。**由于所有唯一属性都合并到相同元素中,如果高优先级清单实际上依赖于属性的默认值而不需要声明,则可能会导致意外结果。例如,如果高优先级清单*不*声明`android:launchMode` 属性,则会使用 `"standard"` 的默认值;但如果低优先级清单声明此属性具有其他值,该值将应用于合并清单(替代默认值)。因此,您应该按期望明确定义每个属性。(每个属性的默认值都会记录在 [Manifest reference](https://developer.android.com/guide/topics/manifest/manifest-intro.html?hl=zh-cn) 中)。
## 合并规则标记
合并规则标记是一个 XML 属性,可用于表达您对关于如何解决合并冲突或删除不需要的元素和属性的首选项。
## 文章 ## 文章

View File

@ -0,0 +1,21 @@
# 汇编
## 代码
```c++
section .data
text db "Hello World", 10
section .text
global _start
_start:
mov rax, 1
mov rdi, 1
mov rsi, text
mov rdx, 14
syscall
mov rax, 60
mov rdi, 0
syscall
```
![image.png](https://cloud-1318379256.cos.ap-shanghai.myqcloud.com/obsidian/20230810092431.png)