编译原理):利用编译程序从源语言编写的源程序产生目标程序的过程; 用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成
扩展资料:
编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。
编译程序的语法消雹棚规则可用上下文无关文法来刻画。语法分析的方法分为两种:自上而下分析法和自下而上分析法。自上而下就是从文法的开始符号出发,向下推导,推出句子。
而自下而拿则上分析法采用的是移进归约法,基本思想是:用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里,肆配当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分归约成该产生式的左邻符号。
接口:FactorialImp抽象类:FactorialAbs实现计算阶乘n!的类:Fatorial代码:/** * * 阶乘计算器 * * 接口 */public interface FactorialImp {// 计算阶乘n!的值long factorial(int n)}/** * * 阶乘计算器 * * 抽象类 继承 FactorialImp */public abstract class FactorialAbs implements FactorialImp {/** * 实现计算阶乘n!的值的方法 */public long factorial(int n) {return multiplicationCount(n, n - 1)}/世芦** * 增加抽象方法--计算两数相乘 * * @param param1Int * @param param2Int * @return 两数相乘的积 */abstract long multiplicationCount(long param1Int, long param2Int)}/没如** * 实现阶乘计算器类 * */public class Fatorial extends FactorialAbs {@Overridelong multiplicationCount(long param1Int, long param2Int) {if (param2Int == 1) {return param1Int} else {return multiplicationCount(param1Int * param2Int, param2Int - 1)}}}/** * 测枯返启试类 * */public class Test {public static void main(String[] args) {Fatorial localFatorial = new Fatorial()System.out.println("100! = " + localFatorial.factorial(10))}}欢迎分享,转载请注明来源:内存溢出
评论列表(0条)