C++语法表达式规则的建立基础
作者:网络转载 发布时间:[ 2013/8/8 11:56:17 ] 推荐标签:
从案例说起
示例:摘自Essential C++,改进版
#include<iostream>
#include<string>
using namespace std;
int main()
{
string user_name,name2;
cout<<"Please enter your first name:";
cin>>user_name;
cin>>name2;
cout<<'
'
<<"Hello,"
<<user_name
<<" and "
<<name2
<<" goodby!
";
return 0;
}
参考Essential C++看完之后,可以明白两层意思,第一是程序可以做什么;第二是程序各部分的基本词素意思。但是了解了这二层意思仍然让人一头雾水。不知从何下手。于是,有了第三层理解。
第三层理解:用什么定义C++的语法表达式?用什么定义关键字?用什么定义标识符?于是,只好去查编译原理,里面的词法分析中,有一个产生式规则,可以对C++的语法表达式进行定义。 一个关键字对应一个词素,一个词素对应所有的标识符。预处理可以解释#define等声明,并起调用作用。
产生式规则是一个很有意思的东西,简单的说,是拿一个前提条件,推出一个果,然后不断的自我反馈调用直到全部推理出终结果。本身可以分为三部分:事实库,规则库,控制器。个人认为是这跟数理逻辑为直接的实现形式。由产生式规则构建了各种各样的词法分析器。也可以认为产生式规则是各种高级语言语法表达式的分野。认为产生式规则是编程语言的牛鼻子一点也不为过。
许多人认为C++很难,主要是因为所有的课程中,并没有将产生式规则及系统作为一个编程的重要概念基础提出(好能够查找相关的资料深入理解一番),由此后面的衍生概念难以理解。理解这一点后,我们再翻开C++的所谓的各种表达式规范格式,发现这只不过是产生式规则给不同的对象的定义罢了。也是说,产生式规则是一个元范式格式。构成了语法表达式定义的基础。当然,你也可以自己定义自己喜欢的语法表达式,如果构造的足够系统,一门新的编程语言诞生了。当年的java是这样来的。
如有不足之处,请指处,欢迎读者拍砖!
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11