自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mkt的博客

学习用

  • 博客(13)
  • 收藏
  • 关注

原创 笔记——零知识证明zkSNARK

记录下学习零知识证明的相关资料以及协议构建过程相关定义Definition 1 (Quadratic Span Program)若一个程序QQQ为QSP,则其在域FFF上存在两个集合V={vk(x):k∈{0,...,m}}V = \left\{v_k(x):k\in\left\{0,...,m\right\}\right\}V={vk​(x):k∈{0,...,m}}和W={wk(x):k∈{0,...,m}}W = \left\{w_k(x):k\in\left\{0,...,m\right\

2020-08-23 13:01:54 371

原创 密码学(Cryptography)学习——Negligible and Noticeable Functions

在密码学之中,最弱的也是最简单Computational Hardness Assumptions就是单向函数(one way function, 下文简称OWF)的存在。在引入OWF之前,先介绍两个函数。一、简介Noticeable 和 negligible 函数是用来形容某些事件发生的概率的大小的。直觉上来说,noticeable function要求比某些多项式可逆(inverse-...

2018-09-22 14:18:09 2054 1

翻译 Software Construction学习——可复用的构建

一.设计可复用的类在OOP之中设计可复用的类    ·    封装和信息隐藏    ·    继承和重写    ·    多态、子类和重载    ·    泛型编程    ·    LSP原则    ·    委派和组合(Composition)1.LSPBehavioral subtyping——行为子类型    -子类型多态( Subtype polymorphism) :客户端可用统一的方式...

2018-05-07 23:18:49 323

翻译 Software Construction学习——可复用性的形态与特征

一.什么是可复用软件定义:软件的复用是一个通过实用已经存在的软件的组件来实现或更新软件系统的一个过程。从两个角度来看软件复用:    ·    创造(Creation):面向复用的编程(Programming for reuse)——开发出可复用的软件。    ·    使用(Use):基于复用的编程(Programming with reuse)——利用已有的可复用软件搭建应用系统复用的好处: ...

2018-05-01 15:48:35 316

翻译 Software Construction学习——可理解性(Understandability)

代码的可理解性是针对程序员而言,防止为了使程序员能更好地理解自己所写的代码,并且让他人也能理解代码的功能。一个软件的外部性的好坏取决于其内部性,而内部代码能被更好地理解,也能使其更好优化其它内部性质从而实现一个优质代码。一.    理解性的指标e.g.    ·    是否遵循特定的命名规范?    ·    是否有足够的注释/说明    ·    是只能同时执行一个事情还是多个事情可以被同时执行...

2018-04-08 18:58:42 2116

翻译 Software Construction学习——ADT和OOP的相等性

在很多场景下,需要判定两个对象是否“相等”,例如,判断某个Collection中是否包含特定元素。“==”和“equals()”有何区别?如何定义ADT正确实现equals()一.    什么是等价性(Equality)ADT是对数据的抽象,体现为一组对数据的操作。而抽象函数AF是将内部表示R转换为抽象表示A。而等价性就是基于AF来定义的。现实中每个对象都是独特的,所以无法有完全相等,但有“相似性...

2018-04-07 20:50:42 160

翻译 Software Construction学习——面向对象编程(OOP)

面向对象编程(Object-Oriented Programming)——将ADT的接口和其实现分离开来,在Java之中通过Java的接口来实现。并且通过接口来定义ADT,然后在用具体的类去实现ADT。一.    面向对象的标准一个面向对象编程的语言应当有着一个有关类的中心理论。这样的编程语言应当使其类和特征具有断言(assertion)(规约,前提,后置和不变量)和异常处理,并且能依靠工具来针对...

2018-04-07 19:21:38 223

翻译 Software Construction学习——抽象数据类型(ADT)

抽象数据类型(Abstract Data Type)和表示独立性(Representative independence):使我们能够区分如何在程序中使用数据结构和数据结构本身的形式    ·    抽象数据类型会避免客户对数据内部的表示进行猜测(即“表示泄漏”)。从而导致潜在的bug——即在用户和实现者之间建立起了一个防火墙。一.    抽象(Abstraction)和用户(User-Defin...

2018-04-06 19:11:50 594

翻译 Software Construction学习——设计规则(Designing Specification)

在软件构造的过程中,每一个函数、方法都有自身具体的实现方式,而其实现方式是依据所给定的规约(spec)来实现的。本次就是来学习如何定义编程中的“规约”。一.    编程语言中的函数(Function)和方法(Method)“void”意味着没有返回值,而java对于返回值类型是否匹配,是在静态类型检查阶段完成。而对于参数类型是否匹配的检查,也是在静态类型检查阶段完成。“方法”是程序的“积木”,可以...

2018-04-02 20:00:09 262

翻译 Software Construction学习——数据类型和类型检查

数据类型是代码中经常出现的东西,但是我们可能对其本身并没有多少深入的了解,在java之中,数据的不同类型之间还有着各种各样的共性和差异,理解这种数据类型,就可以更好防止数据泄露,更好的利用数据。一. 编程语言中的数据类型类型(type)是一系列的值,还有一系列与之相关的操作。    e.g.            boolean: 布尔值(true, false)            int: ...

2018-03-30 14:09:21 218

翻译 Software Construction学习——软件的质量属性

软件的质量是衡量软件好坏的一个重要的指标;在软件构造的过程中需要了解如果达不到质量指标,会有什么后果;还需要了解有哪些面向质量指标的软件构造技术。 一.软件系统的质量属性外部质量因素(External quality factor):外部质量因素比如软件使用的速度和难易度,这些因素都会被用户所探查到。内在因素(internal factors):内部质量因素比如模块化编程、代码可读性。内部因素一般...

2018-03-20 22:09:35 415

翻译 Software Construction学习——多维度看软件

软件的开发过程:idea->requirement->design->code->installable/executable package软件的维度主要有三块:    1.Moment--某一时间点;Period--长时间下    2.Build-time--构造阶段;Run-time--运维阶段    3.Code-level--代码层面;Component-leve...

2018-03-12 23:00:18 676

原创 Ant的初次学习及使用

因为课程实验要求,需要将java文件脱离eclipse环境进行编译、打包和运行,虽然可以手动执行这些操作,但是当文件量过大时会显得十分复杂,因此需要写一个脚本来执行对应的操作;而ant就是一个可以实现这样目的的构建工具。一.    安装与配置网址:https://ant.apache.org/bindownload.cgi当前版本已经是1.10.2解压文件到D:\Apache\apache-ant...

2018-03-08 19:33:18 340 1

空空如也

空空如也

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

TA关注的人

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