
软件技术基础
文章平均质量分 92
UestcXiye
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
软件技术基础
软件技术基础总集篇第一章:绪论第二章:数据结构第三章:操作系统第四章:编译原理第五章:数据库习题与项目解析第一章:绪论绪论第二章:数据结构线性表分治与递归算法复杂度分析树与二叉树图贪心算法第三章:操作系统进程同步程序的链接和装入第四章:编译原理编译原理概述程序语言的设计词法分析语法分析语义分析第五章:数据库数据库基础关系SQL数据库设计习题与项目解析数据结构习题解析操作系统习题解析编译原理的习题在MOOC上,答案截图在实验报告里。数据库习题解析实原创 2020-09-03 10:05:19 · 1208 阅读 · 1 评论 -
《软件技术基础》之《语义分析》
《软件技术基础》之《语义分析》语法分析和语义分析语义值中间代码语义分析的结果语法制导翻译语义变量和语义函数说明语句的翻译说明语句的文法表示说明语句相对存储位置OFFSET说明语句的语义变量及过程说明语句的翻译方案简单赋值语句的翻译语义变量及过程翻译方案(语义子程序)类型检查(语义检查)目标代码生成计算机模型简单的代码生成方法循环中的寄存器的分配固定分配寄存器节省的代价计算语义分析的目是生成代码并实现句子的语义。语义分析生成的不是最终目标代码,而是便于实现优化的某种中间代码。语法分析和语义分析语义值原创 2020-09-03 09:30:34 · 1172 阅读 · 0 评论 -
《软件技术基础》之《数据库习题解析》
《软件技术基础》之《数据库习题解析》设计思路:系统中抽象出操作、角色、用户三个概念,其中操作由项目中抽象出来,一个操作可以是一个URI,也可以是一个方法,比如创建用户的操作,删除用户的操作。角色是权限管理的核心,一个角色具有某些操作的权限,比如用户管理员,这个角色具有的权限有添加用户的权限、修改用户的权限、删除用户的权限。系统中的用户则被赋予若干个角色,比如如果有一个用户A被赋予了用户管理员的角色,那他就能添加、修改、删除用户。表结构设计:项目表字段名说明idt原创 2020-09-03 09:04:43 · 687 阅读 · 0 评论 -
《软件技术基础》之《操作系统习题解析》
《软件技术基础》之《操作系统习题解析》作业什么是临界资源、临界区,临界区的使用原则有哪些?简述信号量的含义及作用请用P、V操作描述下列过程图书馆有N个座位,一张登记表,要求(1)阅读者进入时登记,取得座位号;(2)出来时注销。请用P、V操作描述一个读者的使用过程。有3个进程PA,PB和PC合作解决文件打印问题:(1)PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录;(2)PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录;(3)PC将缓冲区2的内容打印出来,每执行一次打印一个记录。缓冲区原创 2020-09-03 08:57:29 · 2773 阅读 · 0 评论 -
《软件技术基础》之《数据结构习题解析》
《软件技术基础》之《数据结构习题解析》编程作业作业1作业2作业3作业4作业5项目1:约瑟夫游戏项目2:二叉树遍历小项目3:边数最少路径编程作业作业1设顺序表L是一个递增有序表,试写一算法,将元素x插入L中,并使L仍是一个有序表。作业2已知某链接存储的数据序列的第一个数据的地址为FIR,结点的结构为{key,data,next},请编写一算法,在该数据序列中确定关键字值为def的数据是否存在,若存在,返回数据所在结点的地址,否则,返回null。作业3假设以双亲表示法作树的存储结构,写出双亲表原创 2020-08-27 13:17:21 · 2636 阅读 · 2 评论 -
《软件技术基础》之《贪心算法》
《软件技术基础》之《贪心算法》贪心算法算法思路算法特性使用条件解题策略存在问题单源最短路径——Dijkstra算法贪心算法贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择。也就是说,不从整体最优上加以考虑,做出的只是在某种意义上的局部最优解。算法思路建立数学模型来描述问题;把求解的问题分成若干个子问题;对每个子问题求解,得到子问题原创 2020-08-15 15:33:57 · 668 阅读 · 0 评论 -
《软件技术基础》之《图》
《软件技术基础》之《图》图的概念图的存储结构邻接矩阵(数组表示法)邻接链表图的邻接矩阵与邻接表表示的比较图的遍历深度优先搜索(DFS)广度优先搜索(BFS)DFS与BFS的比较图是常用的重要的一类数据结构,树可以看成是图的特例,树中每个数据元素至多允许一个前驱,只能反映数据元素之间一对多的关系,而图没有该限制,允许数据元素有多个前驱,因此可以反映数据元素之间多对多的关系。图的概念图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E)。其中,G表示一个图,V是图G中顶点的有穷非空集合原创 2020-08-15 15:02:17 · 506 阅读 · 0 评论 -
《软件技术基础》之《树与二叉树》
《软件技术基础》之《树与二叉树》树树的定义树的相关术语树型结构与线性结构的对别二叉树二叉树的特点二叉树的性质3种特殊的二叉树二叉树的存储方式二叉树遍历前序遍历中序遍历后序遍历前序遍历、中序遍历、后序遍历的代码实现层次遍历树树形结构指的是数据元素之间存在着“一对多” 的树形关系的数据结构,是一类重要的非线性的数据结构。在树形结构中,树根结点没有前驱结点,其余每个结点有且只有一个前驱结点。叶子结点没有后继结点,其余每个结点的后继结点数可以是一个或多个。树的定义由一个或多个(n≥0)结点组成的有限集合T原创 2020-08-14 22:11:35 · 408 阅读 · 1 评论 -
《软件技术基础》之《算法复杂度分析》
《软件技术基础》之《算法复杂度分析》程序的算法分析方法算法复杂性是算法运行所需要的计算机资源的量,需要时间资源的量称为时间复杂性,需要空间资源的量称为空间复杂性。这个量应该只依赖于算法要解的问题的规模、算法的输入和算法本身的函数。如果分别用N、I和A表示算法要解问题的规模、算法的输入和算法本身,而且用C表示复杂性,那么,应该有C=F(N,I,A)。一般把时间复杂性和空间复杂性分开,并分别用T和S来表示,则有:T=T(N,I)和S=S(N,I)。通常让A隐含在复杂性函数名当中规定输入:程序的算法原创 2020-08-14 19:49:59 · 594 阅读 · 0 评论 -
《软件技术基础》之《分治与递归》
《软件技术基础》之《分治与递归》引例——最短路径选择分治递归n的阶乘Fibonacci数列合并(归并)排序引例——最短路径选择将这个问题分成3个小问题:求A到B的最短路径、求B到C的最短路径、求C到D的最短路径。最后将这3个小问题的解合并起来,即是原问题的解。分治是解编程题常用的一种思想,而大多数分治思想都是用递归来实现的。下面来分别介绍这两个概念,并给出它们的应用场景。分治分治(divide and conquer)的全称称为“分而治之”,分治即是将大问题划分为若干个规模较小、可以直接解决的子原创 2020-08-14 16:11:35 · 347 阅读 · 0 评论 -
《软件技术基础》之《线性表》
《软件技术基础》之《线性表》线性表的定义线性表数据结构的定义线性数据结构的存储结构顺序存储结构链式存储结构(单链表)线性表是最基础和最常用的一类数据结构,它表示的是线性结构。逻辑结构:在线性结构中,数据元素之间存在着一对一的关系,其特点是数据元素之间按某种规定存在一个顺序关系。线性表的定义n个同类型数据元素的有限序列,记为:L=(a1,a2,…,ai,…,an)。其中,L为表名,i为数据元素ai在线性表中的位序,n为线性表的表长,n=0时称为空表。数据元素之间的关系:ai-1领先于ai ,ai原创 2020-08-14 15:22:33 · 466 阅读 · 0 评论 -
《软件技术基础》之《绪论》
《软件技术基础》之《绪论》计算机软件开发知识体系计算机软件体系计算机软件开发过程软件系统逻辑设计软件系统核心逻辑软件程序设计软件设计及实现程序设计要考虑的问题软件系统运行平台操作系统的定义操作系统举例操作系统的主要功能处理机处理存储器管理设备管理文件管理用户接口软件程序编译计算机软件数据处理手工管理文件系统数据库系统分布式数据库系统计算机软件开发知识体系数据结构与算法课程的知识内容,涵盖了软件开发中的数据结构知识、算法设计知识内容。操作系统知识,涵盖了操作系统结构与软件开发中使用的平台知识,包括进程原创 2020-08-13 18:50:31 · 628 阅读 · 0 评论 -
《软件技术基础》之《程序的链接和装入》
《软件技术基础》之《程序的链接和装入》存储系统的结构程序的链接和装入高级语言的源代码转化为进程的3个基本步骤空间分类空间转化过程地址映射链接链接的含义链接方式(链接的时机)静态链接装入时动态链接运行时动态链接装入装入的任务装入方式分类(地址映射建立方式)绝对装入方式可重定位(静态重定位)装入方式运行时重定位(动态重定位)装入方式程序装入方法小结存储管理的目的:为多道程序的运行提供良好的环境存储管理的基本功能:存储系统的结构程序的链接和装入高级语言的源代码转化为进程的3个基本步骤链接:原创 2020-08-13 16:02:14 · 712 阅读 · 0 评论 -
《软件技术基础》之《同步》
《软件技术基础》之《同步》进程并发控制:互斥与同步并发控制互斥与同步的解决策略软件方法Peterson互斥算法软件方法的特点信号量方法信号量实现进程互斥的基本原理信号量定义信号量的物理意义wait、signal的应用利用信号量实现互斥的通用模式利用信号量实现前趋关系示例信号量的类型管程管程的组成管程的概念管程的特点管程中的同步机制管程的结构生产者-消费者问题消息传递进程通信的方式共享存储区方式消息传递机制利用消息传递实现互斥进程并发控制:互斥与同步并发控制示例:进程间的制约关系:间接制约:资原创 2020-08-13 14:46:02 · 1967 阅读 · 0 评论 -
《软件技术基础》之《进程》
《软件技术基础》之《并发与进程》程序的顺序执行与并发执行顺序执行程序顺序执行时的特征并发执行并发类型程序并发执行时的特征并发执行的条件进程及其运行环境典型的进程定义进程的基本特征进程的执行轨迹进程状态模型进程的3种基本状态进程的5种状态进程的挂起状态对换技术挂起状态进程挂起的原因阻塞状态和挂起状态的区分进程的4种状态组合并发是现代操作系统最重要的特征之一。进程是操作系统最重要的抽象概念之一。并发基于进程。程序的顺序执行与并发执行顺序执行若干程序或程序段之间必须严格按照某种先后顺序来执行。示例:原创 2020-08-12 16:37:48 · 564 阅读 · 0 评论 -
《软件技术基础》之《语法分析》
《软件技术基础》之《语法分析》引言语法分析的功能语法分析方法的分类回溯分析法公共左因子左递归ε产生式回溯分析法的特点回溯分析法的缺陷及解决办法提取公共左因子左递归消除预测分析法编译理论中,语法分析是对高级语言的语法单位的结构进行分析。语法单位结构可以用上下文无关文法来描述,而下推自动机可用于识别上下文无关文法所描述 的语言。上下文无关文法及下推自动机是语法分析的理论基础 。引言对无关文法G=(VT ,VN ,S,P)及符号串w,判断w是否是G的一个合法句子,即:S =>* w。语法分析的功原创 2020-08-11 22:21:03 · 947 阅读 · 0 评论 -
《软件技术基础》之《词法分析》
《软件技术基础》之《词法分析》词法分析的功能功能词法分析器和语法分析器的关系词法分析器作为单独的一遍词法分析器作为子程序词法分析器的输出形式单词的种类单词的输出形式:二元式单词类型的划分词法分析器的结构扫描缓冲区扫描缓冲区的结构:双缓冲区符号的识别词法分析技术——超前搜索词法分析器的实现状态转换图状态转换图识别的串利用状态转换图识别单词符号的过程其他状态转换图的例子符号表符号表在词法分析阶段的角色符号表的一般形式词法分析的功能功能扫描源程序的字符串;按照词法规则识别出单词符号作为输出;对识别过程原创 2020-08-11 15:22:55 · 1140 阅读 · 0 评论 -
《软件技术基础》之《程序语言的设计》
《软件技术基础》之《程序语言的设计》语言的定义语法术语语义定义语言的两种观点生成(文法)识别(语法图)语法描述方法等价语法描述的用途抽象机GAM组成工作流程文法文法理论引例:如何导出“我是大学生”?文法的定义产生式文法的表示文法的分类0型文法1型文法2型文法3型文法文法产生的语言推导与归约符号推导过程句型和句子文法产生的语言文法等价语法树(推导树)边缘文法的二义性子树与简单子树语言的定义语言 = 语法 + 语义语法语法是用以构造程序及其成分(语法单位)的规则的集合。术语字母表:语言允许使用的字符原创 2020-08-10 22:52:47 · 477 阅读 · 0 评论 -
《软件技术基础》之《编译原理概述》
《软件技术基础》之《编译原理概述》绪论程序设计语言汇编程序编译程序高级语言的特点与编译有关的三种语言、三种程序强制性语言冯·诺依曼体系命令式语言相关概念变量程序单元编译模型基本概念运行方式编译步骤编译前端与后端数据类型概念作用分类内部类型与用户定义类型的异同绪论程序设计语言程序设计语言是为了满足人机通信、人机交流而产生的。程序设计语言的发展有3个阶段:机器语言、汇编语言、高级语言。汇编程序汇编程序是翻译汇编语言的程序,输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。编译程原创 2020-08-10 16:09:16 · 1007 阅读 · 0 评论 -
《软件技术基础》之《数据库设计》
《软件技术基础》之《数据库设计》数据库设计理论关系模式设计问题关系模式的五元组表示:R(U, D, DOM, F)不好的模式举例模式分解数据依赖函数依赖逻辑蕴涵用函数依赖定义码模式分解规范化范式(Normal Forma,NF)1NF2NF3NF2NF & 3NFBCNF模式设计原则数据库应用设计方法E-R模型实体属性联系数量关系表示属性分类数据库设计方法需求分析数据字典模型设计(概念、逻辑、 物理)概念设计逻辑结构设计ER转换模式优化物理设计运行与维护DB连接访问ADOJDBC数据库高级开发技术游原创 2020-08-09 18:17:56 · 2005 阅读 · 0 评论 -
《软件技术基础》之《SQL》
《软件技术基础》之《SQL》SQLSQL简介SQL特性综合统一高度非过程化面向集合的操作方式以同一种语法结构提供两种使用方法语言简洁数据库操作创建数据库修改数据库删除数据库选择数据库数据表操作SQL Server的数据类型、功能及特点创建数据表修改数据表删除数据表数据操作SELECTSELECT DISTINCTWHEREORDER BY带聚集函数的统计查询GROUP BYHAVINGSQLSQL简介SQL 是用于访问和处理数据库的标准的计算机语言。SQL,指结构化查询语言,全称是 Structu原创 2020-08-04 16:41:10 · 686 阅读 · 0 评论 -
《软件技术基础》之《关系》
《软件技术基础》之《关系》数据模型客观对象的抽象过程——两步抽象数据模型的不同层次概念模型(Conceptual Data Model,CDM)逻辑模型(Logical Data Model,LDM)物理模型(Physical Data Model,PDM)数据模型三要素数据结构数据操作数据的约束条件数据模型的发展过程关系模型关系模型的基本概念关系(Relation)相关术语关系的性质关系的操作关系的完整性关系模式(Relation Schema)关系实例关系数据库关系数据库模式关系数据库语言关系数据约束关原创 2020-08-03 16:00:47 · 1037 阅读 · 0 评论 -
《软件技术基础》之《数据库基础》
《软件技术基础》之《数据库基础》重要的数据库系统概念数据数据库数据库管理系统数据库系统关系数据库实体与表数据管理技术数据管理技术的3个发展阶段数据库系统在计算机系统中的位置数据管理技术体系结构数据库的三级模式结构“型” 和“值” 的概念模式(Schema)模式的一个实例(Instance)三级模式结构概念模式外模式内模式外模式/概念模式映射概念模式/内模式映射两级独立性总结模式结构分层思想数据库系统的组成及其功能数据库系统的组成视图用户访问数据库的过程重要的数据库系统概念数据数据是一种符号序列,它的内原创 2020-08-02 22:13:19 · 595 阅读 · 0 评论