本文目录一览:
代码是怎么被计算机识别,输入或输出的?
最原始的工作原理,就是通过三极管
指出栅极起控制作用),给它的栅极输入高电平(1)另外两极就导通(1)或断路(0),输入低电平(0)另外两极就断路(0)或导通(1)。
然后由各种电子元器件组成各种门电路(与、或、非,同,四个门以及这四个玩意组合起来的门电路)、“锁存电路”、“时序电路”等各种《数字逻辑电路》课程里会讲到的电路。
在《计算机组成原理》课程里,会教你如何把这些电路组成加法器、减法器、乘法器……然后这些各种“器”以及上述各种门电路组成芯片,芯片的引脚就是上面提到的三极管之类某些原件的某些极。小一些的芯片只有编号编号,比如4001之类的,早期并没有CPU的概念,所以早期的CPU也是用编号的,比如4004,8008,8080,8086……然后给某个引脚输入高电平(1)或者低电平(2),里面各种三极管会通通断断做一些改变,另外一些引脚就会在高电平(1)和低电平(0)之间做一些变化,就是你拿到的输出。输出连接到另一个芯片的某些引脚做输入,然后就……这门课还会教你如何用微码来编写CPU的微码指令,将读到的机器码转化为对应的微码程序,并用微码程序实现机器码命令的功能。
接下来《汇编语言》课程会教你写汇编程序,汇编的编译器会把你写的东西翻译成机器码。
代码,通过编译器,编译成汇编指令,最终翻译成机器码
机器码对应的0和1,变成了引脚的高低电平,输入给了译码器,调用(译码器输出的信号转换成了具体某个微码程序的地址)指定的微码程序,微码程序改变CPU内部某些模块的引脚的高低电平,控制具体的门电路,改变CPU某些引脚的输出,这些输出的引脚里,某几个引脚的高低电平改变了总线的行为,总线将剩下的输出信号给了指定硬件,比如内存/显卡。。。指定硬件根据这些信号由不同硬件做了不同事。
java工作原理
Java工作原理
由四方面组成:
(1)Java编程语言
(2)Java类文件格式
(3)Java虚拟机
(4)Java应用程序接口
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类 ,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用 。
Java代码到底是如何编译成机器指令的
编译器把一种语言规范转化为另一种语言规范的这个过程需要哪些步骤?回答这个问题需要参照《编译原理》,总结过程如下:
1)词法分析:读取源代码,一个字节一个字节的读进来,找出这些词法中我们定义的语言关键词如:if、else、while等,识别哪些if是合法的哪些是不合法的。这个步骤就是词法分析过程。
词法分析的结果:就是从源代码中找出了一些规范化的token流,就像人类语言中,给你一句话你要分辨出哪些是一个词语,哪些是标点符号,哪些是动词,哪些是名词。
2)语法分析:就是对词法分析中得到的token流进行语法分析,这一步就是检查这些关键词组合在一起是不是符合Java语言规范。如if的后面是不是紧跟着一个布尔型判断表达式。
语法分析的结果:就是形成一个符合Java语言规定的抽象语法树,抽象语法树是一个结构化的语法表达形式,它的作用是把语言的主要词法用一个结构化的形式组织在一起。这棵语法树可以被后面按照新的规则再重新组织。
3)语义分析:语法分析完成之后也就不存在语法问题了,语义分析的主要工作就是把一些难懂的,复杂的语法转化成更简单的语法。就如难懂的文言文转化为大家都懂的百话文,或者是注释一下一些不懂的成语。
语义分析结果:就是将复杂的语法转化为简单的语法,对应到Java就是将foreach转化为for循环,还有一些注释等。最后生成一棵抽象的语法树,这棵语法树也就更接近目标语言的语法规则。
4)字节码生成:将会根据经过注释的抽象语法树生成字节码,也就是将一个数据结构转化为另外一个数据结构。就像将所有的中文词语翻译成英文单词后按照英文语法组装文英文语句。代码生成器的结果就是生成符合java虚拟机规范的字节码。
计算机怎么读懂java代码的原理
首先你需要懂得编译原理这门学科,JDK将java代码编译成机器能够识别的二进制字节码,然后用JVM(java虚拟机)来加载这些二进制字节码并进行解析(翻译),然后形成指令并执行。jre其实就是java虚拟机的实现,全名叫做Java Runtime Environment