导航:首页 > 源码编译 > 高级语言写一个编译器

高级语言写一个编译器

发布时间:2023-10-24 23:19:45

⑴ 用于高级语言的编译程序有哪两种

用于高级语言的编译程序有两种:编译程序和链接程序。
以C语言为例,编译器是cc,可能链接程序就是link。
二者作用是不同的,编译器是把源程序翻译成符号语言,链接程序把来自不同源文件的多个程序整合起来,形成最终的可执行程序。
C++的编译系统沿用了C语言。其他语种,如PASCAL,DELPHI,C#,OBJECT-C,本质上没发生变化
高级语言本身分成两类,编译型和解释性的,编译型的就是上面的类型,解释型的,如BASIC,java
PHP,
PYTHON等,是不需要编译的,可以直接根据源代码(或中间代码)直接翻译到操作系统上。

⑵ 高级语言经过编译器之后的处理

假设你的程序有两种源代码,一种是C语言写的,一种是java写的,现在要发布到这几个平台上:
1、Windows 7/xp/vista...
2、Linux RedHat/Fedora/Unbutu...
3、Symbian S60/S50(手机)

那么源程序如果是C语言的,需要找下面的工具:
1、VC60/VS2008,负责编译生成VISTA/XP/WIN7用的.exe文件
2、G++,负责编译生成Linux用的可执行程序
3、Symbian用的C++编译器,不说也罢

如果源程序是JAVA语言的,那么需要做的仅仅是用javac编译、jar打包,然后:
1、确保目标WIN7/XP/VISTA安装了java虚拟机
2、确保目标LINUX安装了java虚拟机
3、确保目标手机Symbian系统已安装了支持同版本的java虚拟机

看明白没有?C语言编译器是直接把源程序一步翻译为目标计算机(16位,32位,64位)的指定芯片(X86或ALPHA PPC,RISC)、指定操作系统(WINDOWS,DOS,LINUX,SYMBIAN)用的特定可执行程序目标码,

而JAVA编译器是把程序翻译为中间码,由虚拟机将中间码解释为最终的指定芯片、指定操作系统的可执行程序目标码

严格来说,C和C++、JAVA都是跨平台的,但C#肯定不是,至少目前还没有人在LINUX上做C#的实现。

不同的是,C和C++是通过不同平台上的不同编译器实现跨平台
JAVA是通过不同平台的不同虚拟机实现跨平台

这样说你看懂了没有?

⑶ 为什么高级语言编程需要编译器

语言是人定义的,举个简单的例子
你创造个编译器定义语句
“我实现A+B”,在编译器里面你事先定义了这个句子等价于C语言的
int
C=A
+
B;再由C语言通过类似的方法转换成汇编语言,这样就把高级语言一步步处理成计算机能执行的每步。打个比方。一栋房子很高,顶楼就是高级语言,楼梯就是编译器,底层就是计算机能识别的操作。比如JAVA就是用C写的,其楼层比C高。一般来说,同等算法条件下C语言执行更快。关于楼梯的原理(编译器),你想了解的话你的看编译原理相关书籍,上面涉及很多数学知识,包括很多状态转化,词法分析,语义分析。比如int
C=A+B中如何识别INT是什么东西。“=”的意义等问题。说实话,如果你不是计算机专业,理解这个有困难的。对于一般人来说,不用从事相关工作的话,知道大概这个是干嘛的就行了。比如你盖个房子,你需要扳手,难道你要先学采铁矿学冶炼学制作扳手的方法?。。

⑷ 计算机执行用高级语言编写的程序有哪些途径

就是使用编译器,对源代码进行编译的过程。
翻译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器言)。然而,也存在从低级语言到高级语言的编译器,这类编译器中用来从由高级语言生成的低级语言培大代码重新生成高级语言代码的又被叫做反编译器。也有从一种高级语言生成另一种高级语言的编译器,或者生成一种需要进一步处理的的中间游羡代码的编译器(又叫级联)。
编译器将源程序(Source program)作为输入,翻译产生使用目标语言(Target language)的等价程序。源程序一般为高级语言(High-level language),如Pascal,C++等,而目标语言则是
汇编语言
或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。
一个现代编译器的主要工作流程如下:

* 源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序神中拍(executables)

⑸ 说明高级语言编译器和EDA综合器的区别

高级语言编译器和EDA综合器的区别如下
1、DA是电子设计自动化缩写,是九十年代初从CAD计算机辅助设计、CAM计算机辅助制造、CAT计算机辅助测试和CAE计算机辅助工程的概念发展而来的。EDA技术是以计算机为工具,根据硬件描述语言完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。
2、高级语言编译器是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。其以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。以上就是说明高级语言编译器和EDA综合器的区别。

阅读全文

与高级语言写一个编译器相关的资料

热点内容
如何开启app步数授权 浏览:22
linuxmaven路径 浏览:135
python爬qq说说 浏览:414
linuxmap文件 浏览:67
转转app如何搜索快手主播 浏览:776
移动硬盘文件夹成0字节 浏览:683
梦幻西游解压视频大全 浏览:252
解压小视频手速 浏览:152
我的世界服务器卡没血如何修改 浏览:161
vba入门到精通pdf 浏览:113
tomcat怎么一个服务器部署 浏览:797
phphttps接口 浏览:895
javabyte数组int 浏览:810
公司网络共享的文件夹 浏览:1000
拍脸搭配衣服是什么app 浏览:916
欧珀手机怎么更改加密密码 浏览:508
程序员那么可爱陆漓气人语录 浏览:904
python中del删除 浏览:461
华为云耀服务器和ecs区别 浏览:730
ruby语法编译语言 浏览:573