计算机中的程序也是二进制数据,是由很多二进制数字组成的。计算机中执行指令的是CPU,CPU执行的指令都是用二进制数字表示,不同的二进制数字串代表着不同的指令。开发软件的时候,大多数情况下不会直接用二进制指令组成完整的程序,因为指令的功能过于简单,开发难度太大。一般开发软件是使用各种编程语言,编程语言都提供了一系列高级的指令,程序员按照编程语言的语法使用这些指令写出一段文字形式的程序,这些文字就是源代码。然后一个称为编译器的程序会把源代码翻译成CPU的指令,这样就可以让计算机运行了。源代码本身是不能让计算机运行的,一定要有一个翻译过程,计算机最终运行的一定是CPU指令。在一个已经翻译好的程序中是看不到源代码的,也不可能知道源代码是用什么语言写成。虽然可以进行逆向翻译,把CPU指令再翻译成某种源代码,但是翻译成哪一种语言是可以任意选择的,并不会只能翻译成原来的语言。这就像把一段英文文字翻译成了汉语,虽然可以再反过来把汉语译回英语,但绝不会是只能再翻译成英语,而是想翻译成哪一种语言都可以。如果之前翻译得好,没有留下翻译腔,那也不可能推断出这段汉语文字是从英语翻译而来的。即使有翻译腔之类的特征存在,如果不是事先知道英语这种语言的存在,也不可能推测出这是从英语翻译而来的。所以,看到程序的源代码,还进一步看到源代码是甲骨文,是不可能的。