导航:首页 > 源码编译 > 编译器如何识别代码

编译器如何识别代码

发布时间:2023-03-19 11:19:43

❶ 代码是怎么被计算机识别,输入或输出的

最原始的工作原理,就是通过三极管
指出栅极起控制作用),给它的栅极输入高电平(1)另外两极就导通(1)或断路(0),输入低电平(0)另外两极就断路(0)或导通(1)。
然后由各种电子元器件组成各种门电路(与、或、非,同,四个门以及这四个玩意组合起来的门电路)、“锁存电路”、“时序电路”等各种《数字逻辑电路》课程里会讲到的电路。
在《计算机组成原理》课程里,会教你如何把这些电路组成加法器、减法器、乘法器……然后这些各种“器”以及上述各种门电路组成芯片,芯片的引脚就是上面提到的三极管之类某些原件的某些极。小一些的芯片只有编号编号,比如4001之类的,早期并没有CPU的概念,所以早期的CPU也是用编号的,比如4004,8008,8080,8086……然后给某个引脚输入高电平(1)或者低电平(2),里面各种三极管会通通断断做一些改变,另外一些引脚就会在高电平(1)和低电平(0)之间做一些变化,就是你拿到的输出。输出连接到另一个芯片的某些引脚做输入,然后就……这门课还会教你如何用微码来编写CPU的微码指令,将读到的机器码转化为对应的微码程序,并用微码程序实现机器码命令的功能。
接下来《汇编语言》课程会教你写汇编程序,汇编的编译器会把你写的东西翻译成机器码。
代码,通过编译器,编译成汇编指令,最终翻译成机器码
机器码对应的0和1,变成了引脚的高低电平,输入给了译码器,调用(译码器输出的信号转换成了具体某个微码程序的地址)指定的微码程序,微码程序改变CPU内部某些模块的引脚的高低电平,控制具体的门电路,改变CPU某些引脚的输出,这些输出的引脚里,某几个引脚的高低电平改变了总线的行为,总线将剩下的输出信号给了指定硬件,比如内存/显卡。。。指定硬件根据这些信号由不同硬件做了不同事。

❷ 编译器如何识别字符是关键字还是变量名的

编译过程大概分这么几步
首先用有限状态自动机把代码文本分割成一个一个的token,每个token是一个意义单位,
比如
int main(123);
就被分割成了
int
main

123


然后对token列表根据该语言的语法建立语法树,在建立语法树的过程中就要区分某个单词是关键字还是标识符(也就是变量名),一般来讲编译器一般都有一个保留字列表,开始的时候都当作变量名看待,如果发现某个变量名出现在了保留字列表里,就对其进行标识处理。

❸ 计算机是如何识别C语言的

计算机是不能直接识别C语言的,它需要经过特殊的编译器,编译之后的二进制才能被计算机识别,计算机只能识别二进制代码。

整个程序的编译过程中有三个角色:程序员——编译器——计算机。

程序员和编译器之间的交流是C语言,同时编译器也能把C语言经过翻译成二进制指令。编译器相当于程序员和计算机之间的翻译官。

一个C语言程序的过程有以下步骤:
一、程序员使用C语言编写代码;
二、编译把代码翻译成二进制指令;这里也有四个步骤:
a.预处理,这里主要处理头文件,和程序中的一些宏代码;
b.编译,主要是把每个C语言文件编译成二进制目标代码;
c.链接,把上一步生成的目标代码和库文件进行链接,最终生成可执行程序。

以上就是C语言到计算机可识别代码的转换过程。

❹ c与c++语言编译器是如何识别关键字

根据编译器的不同,有不同的识别方式,例如VC6.0使用系统内建关键字列表,如果用户定义变量的时候使用了系统默认的关键字,则会在编译的时候产生错误。

附上:
C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。

1 数据类型关键字(12个):
(1) char :声明字符型变量或函数
(2) double :声明双精度变量或函数
(3) enum :声明枚举类型
(4) float:声明浮点型变量或函数
(5) int: 声明整型变量或函数
(6) long :声明长整型变量或函数
(7) short :声明短整型变量或函数
(8) signed:声明有符号类型变量或函数
(9) struct:声明结构体变量或函数
(10) union:声明联合数据类型
(11) unsigned:声明无符号类型变量或函数
(12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)

(2)控制语句关键字(12个):
A循环语句
(1) for:一种循环语句(可意会不可言传)
(2) do :循环语句的循环体
(3) while :循环语句的循环条件
(4) break:跳出当前循环
(5) continue:结束当前循环,开始下一轮循环
B条件语句
(1)if: 条件语句
(2)else :条件语句否定分支(与 if 连用)
(3)goto:无条件跳转语句
C开关语句
(1)switch :用于开关语句
(2)case:开关语句分支
(3)default:开关语句中的“其他”分支
D
return :子程序返回语句(可以带参数,也看不带参数)

3 存储类型关键字(4个)
(1)auto :声明自动变量 一般不使用
(2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)
(3)register:声明积存器变量
(4)static :声明静态变量

4 其它关键字(4个):
(1)const :声明只读变量
(2)sizeof:计算数据类型长度
(3)typedef:用以给数据类型取别名(当然还有其他作用
(4)volatile:说明变量在程序执行中可被隐含地改变

❺ 计算机的01代码是怎样被识别的

明白这一点就好办了 编译器首先将你写的代码读入内存.然后寻找代码中的关键字.标识符等信息.建立一个所谓的符号表.根据这个符号表对你的源代码进行检查.检查的依据正是该语言的语法和句法规则.比如是否有变量重复定义错误.是否有类型不兼容错误.是否有遗漏语句分隔符错误等等.这些都是比较简单的.例如根据语言的关键字表可以检查是否有非法的关键字(语句分隔符之后的下一个有效字符一定是一个关键字或已定义的标识符.因此很容易识别并挑出其中的关键字进行检查).其它检查也是类似的. 检查没有问题后.编译器开始链接和映射操作(该过程在检查阶段也有使用).将你的源程序翻译成汇编程序或其它中间程序.这一步是最复杂的.因为句法和语法比较简单.但整个程序的逻辑却复杂的多.而且编译器还要负责在不改变代码原意的前提下将代码尽可能地进行优化. 最后就是将生成的汇编代码翻译为机器语言.这一步是最简单的.因为汇编只是将机器语言简单符号化而已.现在的编译理论已经能够确保将汇编代码准确地翻译为机器码了.

❻ 用高级编程语言写的代码计算机是怎么识别的

首先我要说明一下,您这个问题本来就有问题。
其实只有二进制文件计算机才直接识别,也就是bin文件。
用高级编程语言写的代码,通过编译器或编程平台(像VC++,VC#.net之类的)转化为可执行程序(exe文件),然后可以在操作系统中执行,说白了,通过用高级编程语言生成的可执行程序不能直接通过计算机去识别,它必须通过操作系统识别后,然后由操作系统向计算机硬件发出相应的处理信息。计算机硬件才能进行操作。(纯属个人见解)
兄弟我也只懂一点而已,还是一个在校学生,可能解释得不太清楚。
我的QQ是:57862207,乐意和大家交流。

❼ 编译器怎么知道include的是库文件还是其他目标文件

系统查询。编译器会自动进行系统查询识别,所以是知道include里的目标文件的。编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。

❽ 编译器 如何识别源程序是c或c++

例如linux下有
gcc
,windows下有ms
vs
系列。c的源程序经过这些编译器每种平台都有自己的c编译器的,再与各自平台的连接器就可以生成该平台下对应的二进制执行代码了。
但由于c语言很多时候会涉及很多硬件级调用的,这个对平台依赖性极大。所以移植性这种东西,我只能说,哈哈

阅读全文

与编译器如何识别代码相关的资料

热点内容
天河三号算法 浏览:924
php队列教程 浏览:632
洪水命令 浏览:529
安卓怎么弄成苹果在线 浏览:435
谷歌web服务器地址 浏览:898
安卓锁屏图片如何删除 浏览:719
python3多进程编程 浏览:714
证明代码是程序员写的 浏览:397
算法错误发现办法 浏览:410
河南省医院挂号是哪个app 浏览:629
冬日恋歌哪个APP能看 浏览:673
委内瑞拉加密货 浏览:10
程序员写日记哪个软件好 浏览:108
加密机操作手册 浏览:860
dos命令自动关闭 浏览:328
心田花开app在哪里评价 浏览:449
求索记录频道哪个app可以看 浏览:730
金梅瓶pdf下载 浏览:985
机器软件用什么编程 浏览:845
java虚拟机指令 浏览:671