1.编译器到底能做什么?有什么作用?搜集资料列出你所知道的编译器。
简单讲,编译器就是将高级语言翻译为机器语言(低级语言)的程序。一个现代编译器的主要工作流程:源代码 (source code) 预处理器 (preprocessor) 编译器 (compiler) 目标代码 (object code) 链接器 (Linker) 可执行程序 (executables)
典型的编译器输出是由包含入口点的名字和地址,c语言编译器ide代码编辑 以及外部调用(到不在这个目标文件中的函数调用)的机器代码所组成的目标文件。一组目标文件,不必是同一编译器产生,但使用的编译器必需采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的EXE,所以我们电脑上的文件都是经过编译后的文件。
编译器有:连线编译器on-line compiler)、预编译器(precompiler)、串行编译器(serial compiler)、特殊系统编译器(system-specific compiler)、
信息展示设施编译器(Information Presentation Facility Compiler)。
C语言编译器:TCVC6.0GCDev C++Visual StudioC++的编译器:Borland C++ Compiler 5.5.Dev-C++ 5.0DJGPPLCC-Win32OpenWatcomWatcom系统编译器。
2.你对编译器了解多少?举例某某编译器的发展情况。
20世纪50年代,IBM的John Backus带领一个研究小组对FORTRAN语言及其编译器进行开发。但由于当时人们对编译理论了解不多,开发工作变得既复杂又艰苦。与此同时,Noam Chomsky开始了他对自然语言结构的研究。他的发现最终使得编译器的结构异常简单,甚至还带有了一些自动化。分析问题的研究是在60年代和70年代,它相当完善的解决了这个问题。现在它已是编译原理中的一个标准部分。
人们接着又深化了生成有效目标代码的方法,这就是最初的编译器,它们被一直使用至今。
当分析问题变得好懂起来时,人们就在开发程序上花费了很大的功夫来研究这一部分的编译器自动构造。这些程序最初被称为编译器的编译器(Compiler-compiler),但更确切地应称为分析程序生成器(Parser Generator),这是因为它们仅仅能够自动处理编译的一部分。
编译器设计最近的发展包括:首先,编译器包括了更加复杂算法的应用程序它用于推断或简化程序中的信息;这又与更为复杂的程序设计语言的发展结合在一起。其中典型的有用于函数语言编译的Hindley-Milner类型检查的统一算法。其次,编译器已越来越成为基于窗口的交
互开发环境(Interactive Development Environment,IDE)的一部分,它包括了编辑器、连接程序调试程序以及项目管理程序。这样的IDE标准并没有多少,但是对标准的窗口环境进行开发已成为方向
3.搜集资料了解编译的第一部分----词法分析的情况。
词法分析是计算机科学中将字符序列转换为单词序列的过程。进行语法分析的程序或者函数叫做词法分析器(Lexical analyzer,简称Lexer),也叫扫描器(Scanner)。词法分析器一般以函数的形式存在,供语法分析器调用。
词法分析阶段是编译过程的第一个阶段,是编译的基础。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用Lex等工具自动生成