VSCode调试C语言+asm汇编指南
VSCode调试C语言+asm指南
其实这个教程适用于使用gdb调试其他C/C++语言相关内容时都可以使用到,本质上就是学会vscode调试的配置。
一、安装gdb
gdb是一个用于调试C/C++的调试器。正常情况下我们可以在命令行中使用gdb来调试,但是这样过于繁琐。所以我们使用vscode来使用gdb,给与一个调试桌面。
如果使用Linux,可以使用sudo apt install gdb命令直接安装。
二、为代码添加debug配置
在项目文件中打开vscode,然后点击页面顶端的“运行”,点击其中的“添加配置”按钮。
然后它会自动转到launch.json中。此时我们点击上面的“
第四章-数据库安全性
第四章 数据库安全性
一、数据库安全性
数据库的特点:数据可以共享,必然带来数据库的安全性问题。数据共享不是无条件的共享(军事机密)
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏
不安全因素:非授权用户对数据库的恶意存取和破坏,重要或敏感的数据被泄露,安全环境的脆弱性
TCSEC/TDI安全级别划分
按系统可靠或可信程度逐渐增高。
D级:一切不符合更高标准的系统
C1级:初级的自主安全保护,实现对用户和数据的分离。
自主存取控制DAC
C2级:安全产品的最低档次,将C1的DAC进一步细化
B1级:标记安全保护:安全或可信的文档,对系统的数据加以标记
第三章-关系数据库标准语言SQL
关系数据库标准语言SQL
一、SQL概述
SQL是一个通用的、功能性极强的关系数据库语言,集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL功能于一体
高度非过程化(无需了解存储路径)
面向集合的操作方式(操作对象是一条记录)
以同一种语法提供多种使用方式(独立的语言,嵌入式语言)
语言简洁,易学易用
三级模式:
基本表:本身独立存在的表,一个关系对于一个基本表
存储文件:逻辑结构组成内模式,物理结构对用户隐藏
视图:是一个虚表,可以从一个或几个基本表中导出。用于对外接口
二、SQL数据定义
一个数据库中可以建立多个模式
一个模式下通常包含多个表、视图和索引等数据库
编理-第三章-语法分析
语法分析
一、引言
语法分析生成语法树
文法
一种用于描述程序设计语言语法的表示方法,能够自然地描述程序设计语言构造的层次化语法结构
基于文法构造语法分析器
语法分析器
输入:词法分析器输出的词法单元序列
输出:语法树表示
语法分析器的类型:
通用型
自顶向下:处理LL文法
自底向上:处理LR文法
代表性文法
上面为LR文法类;下面为LL文法类(无左递归,自顶向下分析)
二、上下文无关语法
CFG
CFG的构成:
终结符号:组成串的基本符号
非终结符号:语法变量
一个开始符号
一组产生式:描述将终结符号和非终结符号组成串的方法
什么是上下文?
前后已经推导出的部分结果
编理-第二章-词法分析
词法分析
读入源程序的输入字段,组成词素,生成并输入一个词法单元序列。每个词法单元对应一个词素
常见的做法:
由语法分析器调用,需要的时候不断读取,生成词法单元(而不是一次性全部读取)
概念
词素
源程序中的字符序列,和某些词法单元的模式匹配,词法单元的实例
词法单元
包含单元名和可选的属性值
通过单元名即可确定结构
必须通过属性来传递附加的信息
词法单元的规约
使用正则表达式
**字母表:**一个有限的符号集合,例如二进制、ASCII、Unicode等等
**串:**字母表中的符号组成的一个有限序列
**语言:**给的字母表上一个任意的可数的串的集合
串有关的术语
前缀:
2024Spring-编译原理
第一章-引论
第二章-词法分析
第三章-语法分析
编理-第一章-引论
第一章 引论
什么是编译器?
:一个程序,读入以某一种语言(源语言)编写的程序,翻译为等价的,用另一种语言(目标语言)编写的程序
编译器:源程序-编译器-目标程序
编译器vs解释器:是否需要在某种虚拟机中运行,是否一行一行处理
编译器优点:
效率高,一次编译多次运行
通常目标程序是可执行的
Java:结合了编译器和解释器,使用Java虚拟机,而不是生成可执行文件,只要安装了JRE(Java运行时环境)就可以在不同平台上运行
C语言的编译:
预处理器(加了井号的东西,如#define)-编译器-汇编器-链接器-加载器
编译器的结构
分析部分(Analysis):编译器前端,搜集源程
07-Java-Web开发
Java Web开发
一、HTTP协议
协议:网络中计算机之间为能够互相通信所制定的一些规则
协议栈:TCP/IP的四层协议栈
数据包:TCP/IP协议簇可能会将应用层发送的数据分成多个包依次发送,例如段、包、帧
客户端服务器模式:
客户端发起请求,服务器回送响应
HTTP是一个无状态协议(非Keep-Alive模式下,每次建立连接完全独立,每次发出请求,服务器返回响应,链接就被关闭了)
HTTP工作过程
地址解析:如http://localhost.com:8080/index.htm,分解得到协议名、主机名、端口、对象路径
封装HTTP请求数据包:把以上部分结合本机自己的信息
05-需求文档化与验证
需求文档化与验证
一、为什么文档化需求
合作和交流
项目管理人员
工程师
软件设计人员
程序员
维护人员
二、用例文档
在用户的角度以用例文本为主描述软件系统与外界的交互
基本职责是把问题域信息和需求传达给软件系统解决方案的设计者
三、软件需求规格说明文档
在软件产品的角度以系统级需求列表的方式描述软件系统解决方案
用例
系统规格
侧重于交互流程
侧重于独立需求
以一次交互为基础
以一次交互中的软件系统处理细节为基础
示例:
!
四、文档化需求的注意事项
技术文档写作要点
简洁
精确
易读(查询)(有效使用引言、目录、索引等能够增强文档易读性的方法)
第二章-处理器管理
第二章 处理器管理
一、处理器
处理器部件的简单示意
用户程序可见寄存器:可减少程序员访问主存次数,所有程序可使用,包括数据寄存器、地址寄存器
控制与状态寄存器:被具有特权的操作系统使用,控制程序的执行,包括程序计数器PC,指令寄存器IR,条件码CC,标志位
程序状态字PSW:记录当前程序运行的动态信息
指令与处理器模式
机器指令:计算机系统执行的基本命令(执行需要经过取指、解码、执行)
指令流水线:同时执行多个指令,使得CPU充分利用
特权指令:只能被操作系统内核使用的指令(启动I/O指令、置PC指令、等等)
计算机可以通过设置处理器模式实现特权指令的管理
0:操作系统内核