发布时间:2024-01-07 14:30
不通过翻译的方式生成目标程序,从用户的角度来看,解释器利用用户提供的输入执行源程序中指定的操作
他对于错误的诊断效果比编译器更好,因为他逐个语句地执行源程序。
就是一个程序,可以把一种语言编写的程序(源语言程序)翻译生成为另外一种语言编写的程序(目标语言程序)
: 源程序经过预处理器(preprocessor) 生成经过预处理的源程序,再到编译器 形成目标汇编程序,再到汇编器 生成可重定位的机器代码,再到链接器/加载器 (链接器能解决外部内存地址问题,加载器把所有的可执行文件放到内存中执行)最后得到目标机器代码
编译器是一种程序,把源程序翻译成目标语言程序,并且报告错误。
解释器就直接执行源程序中指定的用户提供输入的操作
编译器相对于翻译器:更快,C生成目标语言程序比翻译器inputs,outputs更快
翻译器相对于编译器:拥有更好的错误诊断,毕竟他是逐个语句执行源程序。
汇编语言更容易生成并且更方便debug
C的编译器多,基本上可以编译到每一个硬件
把汇编程序翻译成机器代码 机器代码是可重定位的。