被编译
① 请教个问题,很好奇代码到底是怎么被编译的
开关经过基本组合, 已经可以成为某些行为或是数学运算, 这些基础的行为的组合成果, 就是我们所称的CPU. 而因为都是以0/1(开/关), 来进行"行为"及"运算"之过程, 所以, 固定的运作行为, 是需要被设计出来的, 也就成了一般所称的指令与资料.
CPU能够看得懂(识别)的指令与资料, 是以0/1组合而成, 我们称为机器语言.
为了让人方便记忆与使用, 所以用很近似的方式, 发展了汇编语言. 此时汇编语言跟机器语言的差异不大, 很大部分是一比一替代.
之后为了能更有效应用, 语言开始进化, 产生了高阶语言的概念. 此时, 高阶语言语法, 代表的是一种概念, 需要编译器, 翻译出适当可完整实现此概念的机器语言, 让CPU可以运作.
基本概念是这样, 有兴趣的话, 可以阅读一些关于 computer architecture 的资讯.
② 源程序A被编译成101010101000,可以倒翻译过来吗
比如源程序A被编译成101010101000
=========================
个人觉得这个假设是不成立的,具体编译成什么应该是由每个编译器的实现有关,每个编译器对于代码的优化都不一样。
所以A不一定会编译成101010101000,具体是什么是由具体的编译器决定的。这个不存在一一对应关系。
就个人目前理解,编译实际是就是把你编的代码变成CPU懂的方式(CPU就是一堆电路而已),并且要保证两者在逻辑上的等价。
以上都是瞎说的,因为我还没学编译原理....
③ “文件被编译”换句话是什么
在U盘上安装个pe吧。 第一:将U盘做成启动盘(建议老毛桃PE系统) 第二:下载最新系统,解压后将里面的X.gho文件复制到你的U盘里。 第三:用U盘启动电脑进入PE系统,利用克隆工具还原U盘里的X.gho文件。
④ 编写java代码不能被编译 这是怎么回事
需要配置环境变量 参照http://jingyan..com/article/f96699bb8b38e0894e3c1bef.html
代码也写错了 System.out.println(""); 不是逗号 String[]后面有空格
⑤ 变量名会被编译吗
对于变量名,会根据变量类型 开辟不同大小的内存空间 然后个相对地址记录下来。 对于编译后, 不存在变量名,只有对应的相对地址。
⑥ UNIX操作系统是怎么被编译的
unix下一般用gcc编译c语言,g++编译c++
编译其实是四个过程:预处理、编译、汇编、链接
由gcc这个程序执行。
gcc只是个程序,程序也就是一堆二进制码构成的东西罢了!
写个字符串变成二进制码的程序不冲突呀!
⑦ 为什么存在的java类没有被编译
是不是类编译都没通过?所以没生成class文件。你检查下那个类编写的语法吧,是不是哪有问题?
如果编译能通过 ,那么通过eclipse的project-clean 清理下文件所在的工程
⑧ JAVA的源程序是怎样被编译和运行的
java
程序
编译是根据“类库”
也就是
jvm了
解释编译。
在用到的时候必须要有识别“解释后的java程序的类库
两个过程
java原程序-----java.class
文件====
解释执行
这两个过程中都要用到
类库
⑨ 编译器是怎么被编译出来的
我们要在Y系统上做一个C语言的编译器,假定:X与Y是不同的两种计算机,其指令系统不兼容。考虑以下几种情况:
Case 1: Y上没有C语言编译器,但X系统上有。
那么我们可以先在X系统上开发一个针对Y系统的C语言交叉编译器。然后用这个交叉编译器重新编译已有的这个C编译器的源代码,就可以得到能在Y系统上运行的C语言编译器了。(交叉编译器:在X系统上运行的编译器,但编译出来的目标代码在Y系统上运行。嵌入式平台上的程序基本都是交叉编译得到的,因为嵌入式平台上很少会有自己的编译器)
Case 2: X,Y上都没有C语言编译器,但有另一种语言的编译器。
a.我们可以先划出C语言的一个子集,这个子集必须满足两个条件:首先,必须足够简单,简单到可以用另一种语言来编写接受这个子集的编译器;其次,必须足够强大,强大到用这个语言子集就可以编写出接受C语言的编译器。(你一定奇怪为什么一个语言的子集就能写出接收整个语言的编译器,呵呵。我猜是因为一个语言的很多复杂特性都是由简单特性构成的,就像一个struct结构完全可以用几个定义在一起的简单变量代替实现;而且,编译器的实现往往不会用到这个语言的高级特性,需要用的都加到那个子集里就行。)
b.再用另一种语言编写一个能接受这个C语言子集的编译器,只要保证可以在Y系统上正确运行就行,并不对其效率作要求,因为基本上它只被用一次。
c.然后,用C语言的子集编写一个在Y系统上的C语言编译器,用上一步得到的编译器编译得到可用的Y系统上的C编译器。
⑩ 请问c语言的源程序被编译后的代码是机器码吗
首先语言和被编译成的代码没有直接关系。有把Java编译成机器码的编译器也有把C语言编译成Java字节码的编译器。
机器码只是CPU直接认读的编码,不等于和硬件打交道的。操作硬件是你通过程序操作CPU做到的。操作系统只不过是别人写的程序而已,说到底还是程序。