自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 【大号乐高】rgb风扇的3针接口很松的解决方案

这两天618准备上rgb风扇。

2023-06-02 16:44:17 822

原创 【GPT】Cassandra相关知识学习提问

A: SASI(SSTable-Attached Secondary Index)是Cassandra数据库中一种高级的次要索引技术,可以用于对列数据进行快速搜索和过滤。相比于传统的索引技术,如基于B-tree的索引,SASI索引具有更高的性能和更强的灵活性。SASI索引将索引数据直接存储在SSTable文件中,这意味着索引数据与实际数据是密切相关的,而不需要额外的索引文件。这种紧密的关联使得SASI索引非常适合于Cassandra的分布式存储架构,可以在分布式系统中实现快速的本地搜索。

2023-03-27 23:04:07 143

原创 【Ubuntu记录】/etc/profile改坏了导致图形界面无法启动的解决方案

最近在研究如何开机自启动程序,按照网上思路在/etc/profile里面放了脚本,直接连人带系统崩掉,图形界面打不开。解决方案就是ctrl+shift+F6打开tty界面,然后登陆自己账户,用vi把/etc/profile修改好然后reboot现在姑且在桌面放个脚本用得了...

2021-11-30 14:08:26 1345

原创 Ubuntu系统以root权限运行快捷方式

开端最近有一个需要用root权限在Idea运行的项目,搞了半天没有办法给自己的用户加上root权限,没有办法,为了不用每次都跑到文件夹里面sudo ./idea.sh,研究了一下怎么用快捷方式以root权限运行这玩意儿,顺带这里记录一下。解决方案在桌面生成文件touch idea.desktop,名字无所谓,后缀名对就行。编辑文件gedit idea.desktop内容如下:[Desktop Entry]Type=ApplicationName=IntelliJ IDEA Communi

2021-11-13 19:43:03 3614

原创 南京大学 《软件分析》课程07 过程间分析(Interprocedural Analysis)

引入目前的所有分析都是过程内分析,不处理方法调用的。做最保守的假设不精准之源头为了更好的精度,使用过程间分析。在方法调用时,会有调用和返回边来传递数据流,避免过度假设造成的精度损失。调用图CHA程序中一种调用关系的表示,从调用点链接到目标方法。应用:所有过程间分析的基础程序优化程序理解程序调试程序测试。。。OO语言的调用图构造类层次分析CHA快速类型分析RTA变量类型分析VTA指针分析k-CFAJava中的方法调用三种调用Virtual call的特

2021-08-18 05:40:45 735

原创 南京大学 《软件分析》 06 Data Flow Analysis - Foundations II

前序我们上节课用新的方法展现了数据流分析的方法。那么对于我们的迭代算法,是否可以利用这种类似图分析的手段进行解答?所以我们可以把不动点的方法关联到算法上,这样我们就可以用不动点定理去解决迭代的问题。迭代算法-不动点定理回忆一下全格上的不动点这个f: L->L我们可以作为迭代中的F只要我们证明F是单调的就可以将两部分联系在一起。单调性证明转换函数:易得,因为Gen/Kill函数就是单调的,在之前的算法中如果00000某个字符变为1就不会变回0,所以这个过程一定是单调的。join

2021-08-18 03:17:02 361

原创 南京大学 《软件分析》05 Data Flow Analysis - Foundations I

前言抽象,晦涩,难懂另一个视角下的迭代算法回忆数据流分析里面的迭代算法OUT没有变化时,迭代就结束了。我们从另外一个角度来看,给定一个k个节点的CFG,迭代算法每次迭代对每个节点的OUT进行更新。例子假设值域是V,我们可以定义一个k元组:(OUT[n1], OUT[n2], …, OUT[nk])为Vk每次迭代都可以理解为对Vk进行遍历,变成一个新的Vk。转换函数和流控制处理可以抽象为一个函数F:Vk->Vk算法迭代地输出k元组直到前一次迭代和后一次的结果是一样的。初始化为

2021-08-11 07:07:43 383

原创 南京大学 《软件分析》04 Data Flow Analysis ApplicationsⅡ

Live Variable Analysis存活变量分析判断在程序点p处变量v的值是否能在CFG中由p起始的某条路径中被使用,如果被使用了,那么v在p处存活,否则v就在p处死亡。除了上面的定义,v在路径中也不能被重新定义 v不能在被使用前就被重定义 ,这样才是一个活变量。(此处错误理解重定义问题导致后面分析当中理解出了点错,思维死板,如果不小心听错了就会按部就班不做怀疑,很不好)该分析可以被用于寄存器分配,如果在过程中寄存器满了,我们倾向于替换一个包含死变量的寄存器(也是一种编译优化)理解Li

2021-08-11 04:30:50 305

原创 南京大学《软件分析》课程03 数据流分析-应用Ⅰ

创建时间:2021年7月31日13点46分数据流分析概览回忆:CFG(上下文无关语法)下的数据流是怎么样的?什么是应用独有数据(application-specific Data)?数据流流经节点(基本块/声明)、边(控制流信息)。一个sound的分析,may analysismay analysis:输出信息可能是正确的 (over-approximation)must analysis:输出信息必须是正确的 (under-approximation)Over- and under-a

2021-08-04 12:13:57 520

原创 南京大学《软件分析》课程笔记 02 IR(Intermediate Representation)中间表达式

创建时间:2021年7月23日16点08分什么是IR程序语言的中间表达形式,去除了如注释等无关程序运行的部分,提供了一个通用的分析对象。编译器和静态分析器AST和IRAST:高层,接近语法结构通常依赖于编程语言适合快速的类型检查缺少控制流信息IR:底层,接近机器码通常语言无关简洁且统一包含控制流信息常常被认为是静态分析的基础IR三地址码右侧结构内最多只能有一个操作符3AC: 包含最多三个地址地址有以下三种情况:名称:a, b常量:3编译器生成临时变量:

2021-07-28 11:04:57 690

原创 南京大学《软件分析》课程笔记01 Introduction

前言发现现在网上的笔记都不怎么适合阅读,就自己做一下简介程序语言 (Programming Languages)国内研究PL的不多,人才很少活跃度很高在理论部分,考虑的是如何设计一个语言的语法和语义,如何设计语言的类型系统等等问题;有了语言的语法、语义和类型系统之后,我们需要支撑语言的运行。因此,在环境部分,需要考虑如何为运行中的程序提供运行时环境——如何设计编译器,在运行时需要怎样的支持(如内存的分配管理)等等;应用部分则关注如何保证语言所写出程序的效率、安全性和可靠性,主要考虑如何对

2021-07-21 13:26:53 668 1

原创 [随便看看]How to Read a Paper,教授教你读计算机方向论文

前言这篇文章是连续三周摸鱼的我拿来给自己更快进入工作状态用的,不能说是仅供娱乐,只能说对这篇文章的分析未能采用严格完备的科研研究方法。众所周知,读论文是世间一等一的难事,那么能否有一个方法论可以解决这个问题?答案是套娃,写一篇教你读论文的论文。读论文的方法有很多,不妨谷歌一下。这些方法之间有相似,有差异,有的殊途同归,有的干脆就是水火不容,有人说先看Abstract对身体好,有人说先看abstract先入为主不合适,这个问题可以很长篇大论的研究,希望研一之前我能研究好。不同的论文阅读目的、阅读者的

2021-06-28 23:33:01 183

原创 [软件工程程序修复论文阅读]基于代码感知机器翻译的程序修复

论文基本信息最后的作者Lin Tan现在在普渡,本文也是基于之前一篇CoCoNuT的结果,有兴趣的可以看一下,本文二作就是CoCoNuT的一作。这篇发的今年的ICSE,看到的时候百感交集。论文需要解决的问题APR问题,还是在做自动程序修复这块。本文认为自动程序修复有两个主要限制:搜索空间可能不包含正确补丁,其实就是source和训练思路并不足以提供给模型解出正确解的可能搜索策略忽视语法规则。这个限制其实是根植于方法来源的,本来就是有借鉴翻译的思路,但翻译过程中的语法规则没有代码这样的严苛和

2021-05-26 10:43:43 692 5

原创 从零开始的LLVM+Clang(一)——下载、配置到第一个pass

从零开始的LLVM+Clang(一)——下载、配置到第一个pass前言一、配置信息二、LLVM+Clang安装方法一:下载预编译包方法二:下载官方源码自行编译1.配置需求2.下载源码3.编译开始方法三:apt-get(不推荐)三、Hello World Pass!前言这段时间在给老板打工,学习计划内有个LLVM+clang的学习计划,于是年少无知的我开始倒腾起了这玩意儿,走了很多弯路,也看了不少大佬的资料,最后也有了些自己的心得,所以就把记录的笔记摘抄一下,留作备忘,也供大家参考。一、配置信息Win

2020-09-20 20:51:36 17810

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除