整理 | 陈军 安徽天禾律师事务所律师
计算机软件同时兼具工具与文本属性,对此特殊版权保护客体,律师常常需要具备专计算机软件基础知识才能很好的理解,继而在遇有纠纷时很好得处理此类案件。笔者将陆续更新相关内容,以期消除律师在遇到计算机软件著作权纠纷案件时恐慌无力感。
计算机软件
是指计算机程序及其有关文档。
计算机程序
是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列(目标代码),或者可被自动转化(汇编或编译)成代码化指令的符号化指令序列(低级编程语言)或代码化语句序列(高级编程语言)。
指令
指令是指示计算机执行某种操作的命令,它由一串二进制数码组成。一条指令通常由两个部分组成:操作码+地址码。操作码:指明该指令要完成的操作的类型或性质,如取数、做加法或输出数据等。地址码:指明操作对象的内容或所在的存储单元地址。
编程语言
俗称”计算机语言”,种类非常的多,总的来说可以分成机器语言、汇编语言、高级语言三大类。电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。 目前通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言
汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的不同平台之间不可直接移植。
汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。
汇编语言的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
汇编
把汇编语言翻译成机器语言的过程称为汇编。
汇编程序
把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。
编译
就是把高级编程语言变成计算机可以识别的二进制语言(代码化指令序列)。
编译程序
也称为编译器,是指把用高级编程语言书写的源程序,翻译成代码化指令序列的转换程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。
高级编程语言和低级编程语言的区别
二者没有太本质区别,也没有太清晰的界线。低级语言更接近机器的工作方式,每个模块内的执行顺序几乎和机器实际执行时一样。人们要弄懂一小段低级语言需要看完几乎这一段的所有代码并将其执行过程在脑中过一遍才能知道这一段到底要干吗,无法一眼看出其意图。这就像一个语言障碍的朋友在跟你交流“把箱子放到门口”这一行为时,为让你明白而不得不实际演示一遍给你看——1.弯腰2.抱起箱子3.走到门口4.把箱子放下。当你只看他一个动作时,你不知道他到底要干什么。因为机器没有思考转化能力,只会严格的按照指令一条一条地执行。而人是可以将一系列动作概括总结归纳转化为一个行为进行描述的,高级语言就是这样更接近人类的思维方式,他就像人类说出来的话,很多小程序段往往可以通过几条核心语句就知道要干嘛,或者可以一眼就看出该程序块要干什么,比如上面的例子,高级语言就像一个健全人通过一句话来描述这一行为——“比尔,请把箱子放到门口”,而比尔在听到这句话的瞬间就明白了要干什么。
所以,高级语言更容易让人们看懂,相应的人们也更容易通过这种语言编写程序描述机器要干的行为。而低级语言是将这一行为中的每个动作几乎按顺序写出来好让机器一一执行,类似于描述动作执行的肢体语言。就好像“幸运52”中的猜词游戏,老婆比划,老公猜,老婆的动作比划是低级语言,老公说出正确答案时用的语言就是高级语言,二者描述的都是大屏幕上的一个东西。至于机器语言的难懂程度,看看老婆表演时的淋漓大汗就知道了。这也是为什么我们要折腾出这么多的高级语言,并不断追求贴近自然语言,因为我们都不想弄得一身汗臭。
所以,当机器会说自然语言给你听,并且是自然地自由地交流而不是像现在这样你说接近自然语言的高级语言给他听的时候(然后再通过编译程序等等翻译成机器码他才能听懂时),真正的可以学习、自行思考和自行记忆的人工智能就诞生了。
目标代码
目标代码(object code)指计算机科学中编译器或汇编器处理源代码后所生成的代码,它一般由机器代码或接近于机器语言的代码组成。是从程序的源代码经过汇编或者编译而形成的、用二进制数表示的代码化指令序列。
源代码
源代码是相对目标代码和可执行代码而言的。源代码就是用汇编语言和高级语言写出来的代码。它们是用国际常用字符表示的符号化指令序列或者符号化语句序列。
开源代码
开源代码指的是代码数据都没有进行过加密处理。一般是用来程序员之间的共享。方便进行第二次开发。用的话。跟普通源代码是一样使用的。