c 语言怎么实现可视化编程,自定义编程语言的实现

小刘是一名出色的软件工程师,能流畅的使用5种编程语言打印 hello world。一天他的准岳父(养老院院长)找到他,拜托他一件事:教养老院的老人们编程,不用太难,体验一把思想就行了

院长,别说了,拔刀吧

小刘内心是拒绝的,一些不可抗拒的原因,让他强忍住内心的翻滚,“嗯,没啥问题”。小刘神志有些恍惚,准备离开院长办公室。院长补充道:“对了小刘,老人们都不会英语,但ABCD还是认识的,这个你知道的吧,知道的吧 吧 吧 ...”

三天狂风暴雨般的发泄后,憔悴的小刘坐在台阶上吸着烟,开始想怎么去做这个事。有两种方案:

1:选一门现成的编程语言,但大部分都是老外写的,语言关键字和规则繁多,老人们吃不消

2:自己设计一门中文的编程语言,实现简单的输入输出,告诉老人什么是编程就行了

小刘选择自己设计一门编程语言,提笔一挥,寥寥的在小字本上涂涂画画。

定义 A,B,C;

B 等于 3;

输入 A ;

C 等于 A乘B;

输出 C;

当然,上面的例子,这只是小刘写在小字本上的草稿,具体语言规则怎么定义?怎么解析这个语言?怎么执行这个语言?懵逼的小刘开始查阅一些资料。了解市面上的语言是如何实现的。

小刘的故事先说到这儿。我们开始严肃一点...

『设计模式』中有一个模式可以解释特定的语法规则,它就是解释器模式(Interpreter Pattern),不同于的工厂模式或者策略模式,解释器模式在java或者.net中并不常见,业务中很少用去解释特定的语法,所以并不被广泛的使用。一个解释器可大可小,大可为复杂的编译器,小可以是一个简单的字符串解析。但本质都是对特定语法做出合理解释。

假设输入一个公式字符串: 1+2*3 注意这是一个字符串,要解析这个公式字符串,得到最终的值我们有两种方案:

循环遍历字符串,将括号,运算符,数字提取出来,然后根据运算符左右结合以及优先级来计算

将表达式转换为树结构的对象,树结构的每个节

你可能感兴趣的:(c,语言怎么实现可视化编程)