示例 ■程序的运行过程 口源程序 口汇编代码 口机器代码 LBB0_1: ·loc 1175 cmpl s10,-20(erbp) jge LBB0_3 #BB#2: .loc 1189 Ltmp6: while (i<10){ movl -24(%rbp),seax a=a +i; 编译器 add1 -20(%rbp),%eax 1++; movl eaX,-24(%rbp】 .loc 1199 movl -20(%rbp),&eax add1 $1,%eax movl %eax,-20(%rbp】 .loc 1205 jmp LBB0_1
示例 程序的运行过程 源程序 汇编代码 机器代码 编译器
position initial rate60 t 编译器工作流程 词法分析器 (id.1)(=)id.2》(+)(id.3)()(60y 语法分析器 = (id,1 + Void Compiler({ (id,2) d,3 60 语义分析器 position (id,1厂 + 2 initial (id,2) 3 rate (id,3 inttofloat t 60 中间代玛生成器 符号表 t1 inttofloat(60) t2=id3。t1 t3▣id2+t2 idl t3 代码优化器 t1=1d360.0 4d1mid2+生1 代码生成器 LDF R2,id3 ULFR2,R2,#60.0 LDF RI.id2 ADDF R1.R1,R2 STF idi,R1
编译器工作流程 Void Compiler(){ LexicalAnalysis(); SyntaxAnalysis(); SemanticAnalysis(); InterCodeGen(); CodeOptimization(); AssemblyCodeGen(); }
问题4: 你有没有想到过这样的问题 C语言的编译程序用什么语言 来写?可以就用C语言写吗?