需要实现一个C语言解释器,请有经验的兄弟指教一下

时间:2021-05-09 17:06:32
公司以前一个字节码的PLC解释器,老板嫌它落后,都是全局变量式的编程,而且现在的程序员懂C的多,懂PLC语言的少,因此老板要求写一个C语言解释器,解决现场硬件端口操作逻辑问题。我们是做数控系统的,将来可能要做工业现场自动化方面。请有经验的兄弟提一些建议,谢谢!

16 个解决方案

#1


可以参考 《C语言大全》第四版
里面最后一章有讲 Little C的解释器

#3


学习......

#5


呵呵,我是学习自动化的,工作从事的是C/C++/C#编程
PLC都是梯形图和指令编写的,不过也没感觉PLC编程没C好啊。
如果你真的用C,那就把逻辑关系找好吧。相信那样可以解决

#6


感谢各位兄弟的回答,我们需要一个轻量级的解释器,4楼说的那个东西太大了.我们不需要实现多少库函数.初步的打算是还是编译成字节码,让它在虚拟机中运行,当然虚拟机也得自己写.

#7


把它翻译成中间语言,有优化等就不要解释器,而叫编译器。

#8


五楼的兄弟,我们的解释系统接受字符编程,不接受梯形图,主要还是老板的意思,说梯形图不好搜索.现在的问题是,PLC的地址都写成全局变量,而且要手工赋一个固定的地址,程序小时还没什么问题,大了管理起来麻烦,而且我们同时开发多个工程,中间即有共同部分又有各自独自的部分,很不方便.PLC编程感觉就象汇编编程,太"低级"了,不象C编程,随便拉个工科毕业的就能搞定,我们做这个东西就是为了现场编程的方便,技术支持的到客户那去,根据客户的特殊要求,写一个C程序就行了.

#9


再补充一句,我们不是写标准确C,比如会内建端口类型

#10


各位有没有用C++写的C解释器例子?我们公司绝大多数用C++,只有少部分人用C#和Perl,我也只会C++,C不太适应.

#11


看看forcal行不行。
http://blog.csdn.net/forcal

#12


可以参考《C语言大全》第四版 
里面最后一章有讲Little C的解释器

#13


up

#14


引用 10 楼 joshua0137 的回复:
各位有没有用C++写的C解释器例子?我们公司绝大多数用C++,只有少部分人用C#和Perl,我也只会C++,C不太适应.

那就看看mini c++
《c++编程艺术》最后一章,mini c++解释器

#15


编译原理的书也可以看看.

#16


这个...要是不会PLC的话那也得找第三方语言来写C的编译器吧?学习学习~我也要好好学习编译原理哦~~

#1


可以参考 《C语言大全》第四版
里面最后一章有讲 Little C的解释器

#2


#3


学习......

#4


#5


呵呵,我是学习自动化的,工作从事的是C/C++/C#编程
PLC都是梯形图和指令编写的,不过也没感觉PLC编程没C好啊。
如果你真的用C,那就把逻辑关系找好吧。相信那样可以解决

#6


感谢各位兄弟的回答,我们需要一个轻量级的解释器,4楼说的那个东西太大了.我们不需要实现多少库函数.初步的打算是还是编译成字节码,让它在虚拟机中运行,当然虚拟机也得自己写.

#7


把它翻译成中间语言,有优化等就不要解释器,而叫编译器。

#8


五楼的兄弟,我们的解释系统接受字符编程,不接受梯形图,主要还是老板的意思,说梯形图不好搜索.现在的问题是,PLC的地址都写成全局变量,而且要手工赋一个固定的地址,程序小时还没什么问题,大了管理起来麻烦,而且我们同时开发多个工程,中间即有共同部分又有各自独自的部分,很不方便.PLC编程感觉就象汇编编程,太"低级"了,不象C编程,随便拉个工科毕业的就能搞定,我们做这个东西就是为了现场编程的方便,技术支持的到客户那去,根据客户的特殊要求,写一个C程序就行了.

#9


再补充一句,我们不是写标准确C,比如会内建端口类型

#10


各位有没有用C++写的C解释器例子?我们公司绝大多数用C++,只有少部分人用C#和Perl,我也只会C++,C不太适应.

#11


看看forcal行不行。
http://blog.csdn.net/forcal

#12


可以参考《C语言大全》第四版 
里面最后一章有讲Little C的解释器

#13


up

#14


引用 10 楼 joshua0137 的回复:
各位有没有用C++写的C解释器例子?我们公司绝大多数用C++,只有少部分人用C#和Perl,我也只会C++,C不太适应.

那就看看mini c++
《c++编程艺术》最后一章,mini c++解释器

#15


编译原理的书也可以看看.

#16


这个...要是不会PLC的话那也得找第三方语言来写C的编译器吧?学习学习~我也要好好学习编译原理哦~~