目录

计算机基础

5G

数学&统计学

人工智能

工具

文件

程序语言

Python

Java

C/C++

Perl

Scala

Trait(特征)

clojure

函数定义

Comments, 注释

其他

数据类型和数据存储

函数基础知识(与语言无关)

写入时复制

RTTI(Run-Time Type Identification)

foo

幂等

中间表达形式(IR)  

抽象语法树

CG/CFG/ICFG

字面量

其他

计算机视觉

设备

机构

变异测试

设计模式

单例模式

DCE


记录遇到过的概念和术语。

计算机基础

见以下链接

计算机基础概念和术语_计算机基础术语_天边一坨浮云的博客-CSDN博客

5G

见以下链接

概念和术语-5G通信_5g vim全称_天边一坨浮云的博客-CSDN博客

数学&统计学

见以下链接

概念和术语-数学&统计学_天边一坨浮云的博客-CSDN博客

人工智能

见以下链接

记录踩过的坑-AI_天边一坨浮云的博客-CSDN博客

工具

见以下链接

各种工具一览_doxygen类似的工具_天边一坨浮云的博客-CSDN博客

文件

见以下链接

各种文件格式介绍_.hpp .cu_天边一坨浮云的博客-CSDN博客

程序语言

Python

见以下链接

基础

Python中的一些基础知识_天边一坨浮云的博客-CSDN博客

方法

Python中的各种方法一览_python方法_天边一坨浮云的博客-CSDN博客

各种错误

Python中的各种报错-使用包时遇到的错误_python 报错_天边一坨浮云的博客-CSDN博客

Java

见以下链接

记录踩过的坑-Java_天边一坨浮云的博客-CSDN博客

C/C++

见以下链接

记录踩过的坑-C/C++_integral_constant_天边一坨浮云的博客-CSDN博客

Perl

=head1 NAME 

The name of your program or module.

=head1 SYNOPSIS 

A one-line description of what your program or module does (purportedly).

=head1 DESCRIPTION 

The bulk of your documentation. (Bulk is good in this context.)

=head1 AUTHOR 

Who you are. (Or an alias, if you are ashamed of your program.)

=head1 BUGS 

What you did wrong (and why it wasn’t really your fault).

=head1 SEE ALSO 

Where people can find related information (so they can work around your bugs).

=head1 COPYRIGHT 

The copyright statement. If you wish to assert an explicit copyright, you should say something like: 

Copyright 2013, Randy Waterhouse.  All Rights Reserved.

perl 也支持多行注释,最常用的方法是使用 POD(Plain Old Documentations) 来进行多行注释。方法如下:

#!/usr/bin/perl
 
# 这是一个单行注释
print "Hello, world\n";
 
=pod 注释
这是一个多行注释
这是一个多行注释
这是一个多行注释
这是一个多行注释
=cut

=cut    是结束pod块的标志,与程序分开。

Scala

Trait(特征)

Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大。

与接口不同的是,它还可以定义属性和方法的实现。

一般情况下Scala的类只能够继承单一父类,但是如果是 Trait(特征) 的话就可以继承多个,从结果来看就是实现了多重继承。

Trait(特征) 定义的方式与类类似,但它使用的关键字是 trait,如下所示:

trait Equal {
  def isEqual(x: Any): Boolean
  def isNotEqual(x: Any): Boolean = !isEqual(x)
}

clojure

函数定义

To define your own functions, use defn

(defn name doc-string? attr-map? [params*] body) ;attr-map用于增加metadata

例子, 

(defn greeting
  "Returns a greeting of the form 'Hello, name.'"
  [name]
  (str "Hello, " name))
(greeting "world")
-> "Hello, world"
(doc greeting) ;查看doc string
-------------------------
exploring/greeting
([name])
Returns a greeting of the form 'Hello, name.'

Comments, 注释

单行: ; ;; ;;; Lisper习惯于用越多;表示越重要或者越概要的注释 

;      单行注释 

;;     函数注释 

;;;    macro或者defmulti的注释 

;;;;   ns注释 

多行: 

(comment " 

...1... 

...2... 

")

其他

ABI:Application Binary Interface,应用二进制接口

Alias分析

是一个决定两个指针是否指向同一个对象(alias)的过程

Advanced Vector Extensions

(AVX, also known as Sandy Bridge New Extensions) :AVX指令集是Sandy Bridge和Larrabee架构下的新指令集。

nql-network query language

网络查询语言

User-Defined Functions

UDFs

数据类型和数据存储

见以下链接。

数据类型和数据存储_fp32 int32_天边一坨浮云的博客-CSDN博客

函数基础知识(与语言无关)

见以下链接。

函数基础知识_天边一坨浮云的博客-CSDN博客

写入时复制

写入时复制(英语:Copy-on-write,简称COW)是一种计算机程序设计领域的优化策略。其核心思想是,如果有多个调用者(callers)同时请求相同资源(如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的(transparently)。此作法主要的优点是如果调用者没有修改该资源,就不会有副本(private copy)被建立,因此多个调用者只是读取操作时可以共享同一份资源。

RTTI(Run-Time Type Identification)

通过运行时类型信息程序能够使用基类指针或引用来检查这些指针或引用所指的对象的实际派生类型。

foo

就像经济学家有时候使用术语“widget”来最终作为对正在被测bai量的“something”的替代。程序员倾向于使用术语“foo”(FOO的发音)作为在讨论想法或者是提出例子时一些确实存在的东西的普遍替代语。假如你在创建一个新的用户命令时,为任何一组程序员定义一个都要遵循的模板,你可能会以下面的格式为该命令描述语法:
  Command foo (arg1, arg2)
  其中“foo”可能意味着“你给这条命令起的名字”。换句话说,“foo”对于一些值是没有意义的标志符,这些值在使用该模板来定义一个真正的命令时会被提出来。(“arg1”和“arg2”是你在定义命令时将定义的参数或信息)。因为“foo”没有它自己合理的意义,并且“foo”传统上是作为标志符使用,任何程序员都会清楚的知道这一点。

幂等

软件开发中的幂等通常是系统接口对外的一种承诺,承诺只要调用接口成功,外部多次调用对系统的影响是一致的。  

为什么要做幂等?

比如说一个提现接口:  bool withdraw(account_id, amount); 这个接口存在一个典型的调用环境:分布式系统的网络不确定性。   withdraw请求可能已经被服务器端正确处理,但服务器端的返回结果由于网络等原因被丢掉了,导致客户端无法得知处理结果。如果是在网页上,一些不恰当的设计可能会使用户认为上一次的操作失败了,然后进行重试,这就可能导致withdraw被调用两次甚至多次,账户也可能被多次扣钱。  

什么时候做幂等?

接口可能被重复调用(http、thrift等)

消息可能被重复发送

作业可能被并发处理

数据可能被并发处理(乐观锁)

中间表达形式(IR)  

在编译原理课程中,我们通常将编译器分为前端和后端。其中,前端会对所输入的程序进行词法分析、语法分析、语义分析,然后生成中间表达形式,也就是 IR(Intermediate Representation )。后端会对 IR 进行优化,然后生成目标代码。

抽象语法树

在计算机科学中,抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。

CG/CFG/ICFG

CG(call graph)和CFG(control-flow graph)都是表示程序控制流的有向图,但它们并没有包含的关系。

一个CG是表示整个程序中方法(函数)之间调用关系的图,图中的节点是方法,边表示调用关系。例如方法foo()调用了方法bar(),则CG中应有一条从foo()到bar()的有向边。

一个CFG是表示一个方法内的程序执行流的图,图中的节点是语句(指令),边表示执行流。例如语句A执行后的下一条语句是B,则CFG中应有一条从A到B的有向边。条件语句(if-else, while-do)之后可能执行的语句不止一个,可能执行true-branch或false-branch,所以CFG上条件语句节点的后缀会有多个,表示其后可能执行的不同branches。

还有ICFG(interprocedural control-flow graph),它的信息就是CG加上CFG的信息。ICFG可以看做是给所有方法的CFG加上这些方法之间互相调用的边(CG)所形成的图。调用边(call edge)从调用语句(call site)连到被调方法(callee)的入口。与CG不同的是,ICFG除了调用边,还包含相应的返回边(return edge),从callee的出口连到call site之后执行的下一个语句。

字面量

在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。几乎所有计算机编程语言都具有对基本值的字面量表示,诸如:整数、浮点数以及字符串;而有很多也对布尔类型和字符类型的值也支持字面量表示;还有一些甚至对枚举类型的元素以及像数组、记录和对象等复合类型的值也支持字面量表示法。

其他

奥卡姆剃刀:Occam's razor

GQM: Goal-Question-Metric

D2D: Device to Device

ICTs: Information and Communication Technologies  

IoT: Internet of Things

V2X: Vehicle to Everything

UAV: unmanned aerial vehicle

M2M: Machine to Machine

RNG: random number generator

万能近似定理:Universal Approximation Theorem

SKU: A stock-keeping unit (SKU) is a scannable bar code, most often seen printed on product labels in a retail store. The label allows vendors to automatically track the movement of inventory.

CMMI: Capability Maturity Model Integration

SMS: systematic mapping study  

智慧城市智能运行中心(IOC):Intelligent Operations Center 可监视并管理城市服务。它通过集中化的智能,提供了对日常城市运营的洞察。现在,城市、政府机构和企业可以优化运营效率并改进规划。ioc是指智慧城市智能运行中心(IOC)。

计算机视觉

视频码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。

RGBA:是代表Red(红色)Green(绿色)Blue(蓝色)和Alpha的色彩空间。虽然它有的时候被描述为一个颜色空间,但是它其实仅仅是RGB模型的附加了额外的信息。

HSV:色相,Hue,饱和度,Saturation,明度,Brightness

错觉式伪影:pareidolic artifact

波尔卡圆点:一般是同一大小、同一种颜色的圆点以一定的距离均匀地排列而成。

HSYNC/VSYNC

首先从过去的 CRT 显示器原理说起。CRT 的电子枪按照上面方式,从上到下一行行扫描,扫描完成后显示器就呈现一帧画面,随后电子枪回到初始位置继续下一次扫描。为了把显示器的显示过程和系统的视频控制器进行同步,显示器(或者其他硬件)会用硬件时钟产生一系列的定时信号。当电子枪换到新的一行,准备进行扫描时,显示器会发出一个水平同步信号(horizonal synchronization),简称 HSync;而当一帧画面绘制完成后,电子枪回复到原位,准备画下一帧前,显示器会发出一个垂直同步信号(vertical synchronization),简称 VSync。显示器通常以固定频率进行刷新,这个刷新率就是 VSync 信号产生的频率。尽管现在的设备大都是液晶显示屏了,但原理仍然没有变。

立体视觉是计算机视觉领域的一个重要课题,它的目的在于重构场景的三维几何信息。

设备

见以下链接。

遇到的各种设备一览_天边一坨浮云的博客-CSDN博客

机构

欧洲核子研究中心:CERN

美国国家标准与技术研究院:National Institute of Standards and Technology,NIST

变异测试

首创于1970s,变异测试最初是为了定位揭示测试单元的弱点。这个理论是:如果一个边缘被引入,同时出现的行为(通常是输出)不受影响的情况下,那么这说明了:变异代码从没有被执行过(产生了过剩代码)或者测试单元无法定位错误。为了使之适用于所有情况,必须引入大量的变异,导致这个程序的极大量的副本被编译和执行。变异测试的花费问题,阻碍了它作为一种软件测试方法的实际应用。

设计模式

单例模式

单例模式,即Ensure a class only has one instance, and provide a global point of access to it,只有一个实例

DCE

Dead Code Elimilation

Dead Computation Elimilation

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐