知产交叉论:软件双重性决定其技术性和表达性

一、软件由来

软件是相对于硬件而言的。

有了计算机,就有了计算机数据,就需要对计算机数据进行处理,就需要进行“人-机”交互。

从“人到机”角度,“人-机”交互就是需要计算机按人的意思进行相应的处理,再具体分解,就是让计算机按人的意思、按预定的顺序执行相应的指令,并产生相应的结果。

从“机到人”的角度,“人-机”交互就是机器将结果报告给执行人的过程,再具体一些,就是让机器按人的意思、按预定的顺序执行相应的指令转换为人可以识别的符号,以让人可以了解。

这些按预定顺序排列的指令就属于程序。相应程序就以软件的形式而存在。

二、软件双面体

从交流沟通角度来讲,软件或程序就属于沟通人类与计算机的媒介,天生就是“双面体”。

一个是与人打交道的“人面体”,“人面体”以“源代码”形成存在,“源代码”属于人类可以识别的语言。当然,人类也是通过“源代码”形成软件。“人面体”也是软件的原始初始状态。

一个是与机器打交道的“机面体”,“机面体”以“目标代码”的形式存在,“目标代码”属于机器可以识别的语言。通过“机面体”可以让机器执行相应的命令。

软件的“人面体”和“机面体”可以通过“编译”或“反编译”进行转换。通过“编译”,源代码可以转换为“目标代码”;通过“反编译”,“目标代码”也可以转换为“源代码”。当然,并不是所有语言开发的软件可能通过反编译将“目标代码”转换为“源代码”。

从功能角度,“人面体”主要价值在于软件的形成,软件开发需要从人可识别的语言——源代码开始。“机面体”主要价值在于软件的运行,从“人到机”,按人的意识执行相应指令;从“机到人”,将结果以人可以识别的方式展示、输出。因此,“源代码”的生命主要在于软件形成、软件更改、更新和升级。“目标代码”的生命在于运行与使用。

拿到的软件的源代码,就可以获得软件设计开发的逻辑;通过对源代码修改,可以改变软件的表现形式,可以自己使用。而如果拿到软件的目标代码,就是一个乱码文件,根本无法理解,当然也就无法抄袭与使用。

随着软件的系统性越来越高,开发成本越来越高,开发难度也越来越大。软件开发方当然不愿意让他人免费使用。因此,为了保证对软件的控制,软件开发者越来越不希望将“源代码”披露,只愿意披露“目标代码”,反正目标代码你也看不懂。

三、软件双面体决定保护的多重需要性

基于软件本身的“双面体”特点,导致软件具有功能原创性和表达独创性双重特点,也产生软件版权、专利及商业秘密的多重保护需要。

(本文作者:盈科李兆岭律师 来源:微信公众号 盈科知产)