⑴ 用高级语言编写的源程序必须经过__ ___转化为等价的二进制代码程序,才能够在计算机中运行。
编译和链接。
编译:
1、利用编译程序从源语言编写的源程序产生目标程序的过程。樱耐
2、用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译枝锋程序把人们熟悉的语言换成2进制的。
编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
(1)高级语言程序必须经过编译吗扩展阅读
源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表猛颂晌它自身的值了。若一个种别含有许多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出自身的值。
词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现。
⑵ 用高级语言编写的源程序必须经过编译,产生目标程序后才能运行,这句话对吗
目标程序的运行依赖于特定的操作环境。通常情况下,源程序通过编译器转换成目标程序,但这仅仅是程序执行的第一步。目标程序必须进一步与库文件、资源文件等进行链接,最终生成可执行文件,才能在计算机上顺利运行。这一步骤对于许多高级语言如Java和C#尤为重要。Java和C#的程序在编译后生成的是字节码,字节码需要运行时环境(JVM或CLR)解释执行,因此不是真正的目标程序。
以Java为例,Java源代码经过编译器编译后得到的是字节码文件,字节码文件并非可以直接运行的机器码,而是需要在Java虚拟机(JVM)中解释执行。这个过程确保了Java程序能够在任何支持JVM的平台上运行,而无需重新编译。同样,C#程序编译后生成的是CIL(中间语言)代码,也需要CLR(公共语言运行时)来解释执行。
因此,尽管编译过程是程序开发中不可或缺的一环,但仅仅通过编译并不能使程序具备运行条件。目标程序的运行需要经过链接和解释执行的过程。无论是Java的字节码还是C#的CIL代码,它们都需要相应的虚拟机环境来运行,这与传统的机器码目标程序存在本质区别。
总之,对于像Java和C#这样的高级语言,编译后生成的字节码或CIL代码不是目标程序,它们必须在相应的运行时环境中运行。因此,上述说法并不完全准确,正确的理解应该是源程序经过编译后生成的目标程序,还需进一步链接和解释执行才能运行。