随笔分类 - 程序设计语言--实践之路
自学《程序设计语言--实践之路》笔记
摘要:大多数程序设计语言中都有表达式和/或对象的类型概念。类型起着两种主要的作用:1)类型为许多操作提供了隐含的上下文环境,使程序员不必显示地描述这种环境。例如在c++、java和c#中,操作new my_type()不仅为类型my_type的对象分配大小合适的存储块,还自动的调用与此类型相关的用户定义的
阅读全文
摘要:顺序机制分为八个主要类别:顺序执行、选择、迭代、过程抽象、递归、并发、异常处理和推断、非确定性。 迭代:反复执行一段给定代码,或者是执行一定次数,或者是执行到某个运行时条件成立。迭代结构包括for/do、while/repeat循环。 1 表达式求值 表达式:一个表达式或者是一个简单对象,或者是应用
阅读全文
摘要:1.作用域中别名的含义 在程序中同一位置上两个或多个名字引用同一对象的情况称为别名;一个名字在程序中一个给定位置上引用多个对象的情况称为重载。 1.1内部运算符的重载 在面向对象的C++中,A+B可以是operator+(A,B)的简写,也可以是A.operator+(B)的简写。在后一种情况下,A
阅读全文
摘要:早期推动语言发展的是两个互为补充的目标,一个是机器无关性,另一个是更易于进行程序设计。近年来,在推动语言进步方面,机器无关性并没有起到很大的作用。另一方面,使程序设计更易于设计是一个更难以琢磨也更具挑战性的目标,它影响着语言设计的各个方面,从历史上看与其说是一个科学问题,不如说更多的是审美以及实验和
阅读全文
摘要:正则表达式:词法分析; 上下文无关文法:语法分析; 一些基本概念:非终结符、终结符、产生式、最右推导、最左推导。每个推导可以用图形表示为一个语法分析树,该树的根是文法的开始符号,其叶子结点就是它的产生式。如果一个文法产生的语法分析树的数量多于一个,则称这个文法具有歧义性。
阅读全文
摘要:一般来讲, 解释器可以带来更大的灵活性且能对程序做出更好的诊断。有些语言特征如果不用解释的方式,几乎无法实现。例如一个程序可以为自己生成新的代码片段,而且随后执行他们。将有关程序实现的决策推迟到运行时在进行,这种方式称为迟约束。 编译方式能带来更好的性能。有些决策是可以在编译时就做的决策,不必等到运
阅读全文
摘要:程序语言的设计与实现是密切相关的,实现方面的因素以许多种方式影响设计的决策。 程序语言分类:说明式/命令式; 命令式语言(主流语言): 1)冯.洛伊曼语言:将修改变量的值当做计算的基本方式的语言; 2)脚本语言; 3)面向对象语言。 分类的界限是模糊的。例如冯洛伊曼语言和面向对象语言之间的界限往往非
阅读全文