① C#的可执行程序每一次运行时都要进行即时编译吗
仅供参考:
1、C#是静态的强类型语言,所以要先编译后运行。
2、你这个Exe文件,你是直接点击打开还是在项目文件中按F5启动呢,如果是按F5他默认还会进行编译,然后运行,如果是直接点击打开Exe,即是直接运行这个已经编译过的文件,
② 编译程序和解释程序均能产生目标程序吗
不能
因为:编译程序能产生目标程序而解释程序则不能
补充:解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;编译程序(编译器)则是将源程序翻译成目标语言程序,然后在计算机上运行目标程序。两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程,而在解释方式下,解释程序和源程序(或某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。解释器翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立的目标程序。
补充:编译程序(Compiler,compiling program)也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
③ 编译是在程序运行的时候还是在程序开发的时候。
编译在程序运行之前,用于生成可执行文件。
但注意有部分解释执行的语言不需要编译
④ 为什么“运行可执行程序必须由编译器来启动程序”这局话是错的
是由操作系统来启动,与编译器毫无关系
⑤ 编译时分配内存和运行时分配内存
编译其实只是一个扫描过程,进行词法语法检查,代码优化而已,编译程序越好,程序运行的时候越高效。
我想你说的“编译时分配内存”是指“编译时赋初值”,它只是形成一个文本,检查无错误,并没有分配内存空间。
当你运行时,系统才把程序导入内存。一个进程(即运行中的程序)在主要包括以下五个分区:
栈、堆、bss、data、code
代码(编译后的二进制代码)放在code区,代码中生成的各种变量、常量按不同类型分别存放在其它四个区。系统依照代码顺序执行,然后依照代码方案改变或调用数据,这就是一个程序的运行过程。
⑥ 编写的程序一定要有编译器才能运行吗
不用,编译器只是有负责将编译语言翻译为机器语言的作用,编译后的程序就是机器语言了。可以直接在计算机上运行
⑦ 编译程序和解释程序均能产生目标程序吗
不能
因为:编译程序能产生目标程序而解释程序则不能
补充:解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;编译程序(编译器)则是将源程序翻译成目标语言程序,然后在计算机上运行目标程序。两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程,而在解释方式下,解释程序和源程序(或某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。解释器翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立的目标程序。
补充:编译程序(Compiler,compiling program)也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
⑧ 运行java程序时,为什么要先编译再运行,编译运行一起进行不行吗
java讲究的是 一次编译 处处运行,也就是提高了程序的一致性。java的程序之所在不同的操作系统上的运行结果是一样的,是因为java虚拟机。
所以要运行java都要装一个叫jdk的东西,里面有java的虚拟机。这个虚拟机就是来解释我们写的代码。通过这个虚拟机,就实现了代码的移植。
我们写好的程序,通过虚拟机,编译成class文件,然后在运行。但是我们只需要编译一次即可。
⑨ 进程和程序有什么区别
程序是静止的进程是动态的。没有建立进程的程序不能作为一个独立单位得到操作系统的认可。一个程序可以对应多个进程,但一个进程只能对应一个程序。进程包括程序和程序处理的对象(数据集)。进程能得到程序处理的结果。进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。
当程序为procere的译名时,一个程序即是特定的一系列动作、行动或操作,而这些活动、动作或操作必须被执行于相同方式以为了在相同环境下恒常得出相同的结果(例如紧急应变程序)。程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为进行某活动或过程所规定的途径。
程序是由序列组成的,告诉计算机如何完成一个具体的任务。由于现在的计算机还不能理解人类的自然语言,所以还不能用自然语言编写计算机程序。
⑩ 在编写程序时要用到编译器,什么是编译器有什么用
VC Borland C Eclipse 都是编译器 就是把你的源代码 编译 解释成机器能读懂的机器码 因为机器内部是用二进制的嘛 所以最终也就是一串 1 0 组成的序列