Mr_cold's blog

Categories · 笔记

Home

Archives

源码

istanbul源码阅读

简介 istanbul 是一个 JavaScript 代码覆盖率工具,它可以帮助我们分析代码的测试覆盖率,从而帮助我们更好的编写测试用例。在这篇文章中,我们将通过阅读 istanbul 的源码来了解它是如何实现代码覆盖率的。 项目结构 lib: 核心代码 misc: 一些工具 test: 测试用例 .jshintignore:指定哪些文件和目录应该被 JSHint 忽略,JSHint 是一个 JavaScript 代码质量工具。 .jshintrc:JSHint 的配置文件,定义代码质量检查的规则。 .travis.yml:Travis CI 的配置文件,用于持续集成服务的设置。 CHANGELOG.md:项目的变更日志,记录每个版本的更新内容。 coverage.json.md:代码覆盖率报告的 JSO..

Read more
Invariant

daikon使用

1 介绍 Daikon是一个动态检测不变量的工具 不变量是程序中某个特定点上保持为真的属性,这些通常出现在断言语句,文档和形式化规范中。 不变量在程序理解和其它许多应用中都非常有用,例如,不变量可以是 x.field > abs(y) y = 2 * x + 3 数组a是有序的 对于所有的列表对象lst,kst.next.prev = lst 等等,用户可以扩展Daikon以添加新的属性 动态不变量检测通过运行程序,观察程序计算的值,然后报告在观察到的执行过程中始终为真的属性。 Daikon可以在C、C++、C#、Eiffel、F#、Java、Perl和Visual Basic程序中检测属性 在spreedsheet文件中 以及其它数据源中(动态不变量监测是一种可以应用于任意数据..

Read more
SoftwareEngineeringSoftwareDebloating

复杂软件简化分析实验

实验按照对每个工具运行每个基准 RAZOR 获取镜像sudo docker pull chenxiong/razor:0.01 运行镜像sudo docker run --name container_name -d -it chenxiong/razor:0.01 更新razor仓库 替换debian源为阿里源sudo vim /etc/apt/sources.list deb http://mirrors.aliyun.com/debian/ buster main non-free contrib deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib deb http://mirrors.aliyun...

Read more
loading..
软件工程

软件工程期末突击

[toc] 第一章 从程序到软件 1 何为程序及程序的质量要求 (1)何为程序 程序(Program)是由程序设计语言所描述的、能为计算机所理解和处理的一组语句序列 程序严格遵循程序设计语言的各项语法和语义规定 程序代码可表现为二种形式 源代码(Source Code):用程序设计语言所描述的代码 可执行代码(Executable Code):可执行的二进制或中间码 (2) 程序组成 语句:声明、定义、控制、计算等;实现特定的功能; 模块:包,类,方法;每个模块实现特定功能 (3)程序的二类利益相关者 用户: 程序的运行展示 功能和性能 满足和实现用户的需求 程序员 编写,阅读维护程序 发现和修改程序中的缺陷 用户和程序员对程序有这不同的质量需求 (4)程序质量的内在和外在体现..

Read more
loading..
软件工程

软件分析(未完)

本笔记参考视频 01介绍 PL and Static Analysis Why We Learn Static Analysis? What is Static Analysis? Static Analysis Features and Examples Teaching Plan Evaluation Criteria 1 PL and Static Analysis PL:Programming Languages程序语言 2 Why We Learn Static Analysis? 3 What is Static Analysis? 4 Static Analysis Features and Examples 5 Teaching Plan 6 Evaluation Criteria 0..

Read more
loading..
编译原理

编译原理

[toc] 2文法和语言的形式定义 1 文法及其分类 文法是产生式的又穷非空的集合 文法GGG是一个四元组,G[S]=(VN,VT,P,S)G[S]=(V_N,V_T,P,S)G[S]=(VN​,VT​,P,S) VN:V_N:VN​:非终结符号集 VT:V_T:VT​:终结符号集 P:P:P:表示产生式的有穷非空集合 S:S:S:开始符号(识别符号),至少在一条产生式中作为左部 文法分类: 乔姆斯基(Chomsky)把文法分成四种类型:0型、1型、2型和3型 0型文法 短语结构文法 Phrase Structure Gramma 1型文法 上下文有关文法 Context-Sensitive Gramma 2型文法 上下文无关文法 Context Free Gram 3型文法 正规(正则)..

Read more
loading..
数据库

数据库系统复习

主要观看 数据库系统实现网课1700后的内容所成笔记。 与 数据库系统实现(机械工业出版社)所讲内容基本吻合,但在具体部分所讲的顺序有略有不同,但考虑到啃书(尤其是机翻工业出版社的书)有些困难,所以先过一边网课再啃书。 网课中得顺序有些与书中不同,这里需要注意。 [toc] 第二章 辅助存储管理 01 存储体系回顾 (1)数据组织的基础–存储体系 将不同性价比的存储器组织在一起,满足高速度,大容量,低价格需求 CPU与内存直接交换信息,按存储单元(字)进行访问 外存按存储块进行访问,其信息先装入内存,才能被CPU处理。 (2)操作系统对数据的组织 FAT-目录-磁盘块/簇 FAT(文件分配表 File Allocation Table) (3)内存管理 一条记录的地址=存储单元的地址=内存地址=页面:页面..

Read more
loading..
数据库

数据库试验--PostgreSQL源码分析--遗传算法的使用

[toc] 源码地址 1 PostgreSQL的体系结构 PostgreSQL数据库由连接管理系统(系统控制器)、编译执行系统、存储管理系统、事务系统、系统表五大部分组成 连接管理系统接受外部操作对系统的请求,对操作请求进行预处理和分发,起系统逻辑控制作用 编译执行系统由查询编译器、查询执行器组成,完成操作请求在数据库中的分析处理和转化工作,最终实现物理存储介质中数据的操作 存储管理系统由索引管理器、内存管理器、外存管理器组成,负责存储和管理物理数据,提供对编译查询系统的支持; 事务系统囱事务管理器、日志管理器、并发控制、锁管理器组成,日志管理器和事务管理器完成对操作请求处理的事务一致性支持,锁管理器和并发控制提供对并发访问数据的一致性支持 系统表是 PostgreSQL 数据库的元信息管理中心,包括数..

Read more
loading..
操作系统

操作系统试验--在linux环境下复现操作系统

[toc] 本次操作系统实验根据`Orange's 一个操作系统的实现`一书进行操作。在此记录试验的过程及心得 第一章&第二章 Hello,OS world 这两章通过在windows使用虚拟机运行Ubuntu操作系统,在Ubuntu上使用bochs虚拟机来完成操作系统。 1 使用vm运行Ubuntu 我这里虚拟机运行的是Ubuntu20.04,但因为这本书是老书了,64位机运行结果会有问题,因此还是用了Ubuntu16.04的32位虚拟机,安装虚拟机时主要遇到的问题有: 虚拟机连不上网,但在瞎搞之后能连上了,选择的时NAT连接 VM Tools 自动安装不上,会报错。VMtools可以实现Windows环境和Linux环境直接的文件交换,还是有必要安装的。解决方法是手动下载VM Tools,尽..

Read more
loading..
RBAC

RBAC模型学习

0 RBAC 和 ABAC RBAC:Role-Based Access Control 基于角色的访问控制 ABAC:Attribute-Based Access Control 基于属性的访问控制 美国国家标准与技术研究院为RBAC分了4级,为RBAC0-3 1 RBCA基础概念 RBAC:Role-Based Access Control,基于角色的访问控制。 通过引入 角色 这一概念,将用户和权限解耦,来满足权限的批量管理。 实现最简单的RBAC系统(也就是RBAC0)一共需要五张表:三张信息表和两张关系表。 三张信息表:用户信息表、角色信息表和权限信息表 两张关系表:用户-角色关系表、角色-权限关系表 模型操作 授权:通过给用户分配不同的角色,来改变其拥有的权..

Read more
12