随笔-341  评论-2670  文章-0  trackbacks-0
    眼下新的GUI Framework的第一版也就只剩下3个控件了。虽然之前说过要开发一个理论上是P2P上的远程对象交互协议、要开发一个窗口设计器、还要开发一个LALR Parser GUI作为GUI Framework的demo。我想这也是一个大的工程,对于我一个人来说。但是今天的一个想法终于把这三个东西串了起来。

    想必大家MFC用得很囧吧。Linux下面开发C++反正所有选择相比起当年的Borland C++Builder来说都是很烂的,那就不说了。Windows下面开发C++是哭笑不得。C++ Builder虽然想法是好的,其实我也不介意他用Delphi的VCL,只是编译器的bug实在是太多了。新的C++Builder连试用版的安装程序都有问题,于是彻底失去希望了。现在RAD也就剩下MFC一个了。说实话我以前做游戏、做软件渲染器到现在做编译器做什么什么的,实际上都是类似库或者是中间件的,跟RAD一点关系都没有。只不过我仍然非常喜欢RAD这样的开发方式。但是MFC那个样子实在是RAD不起来啊,所以我干脆揭竿而起,另做一个了。至于将来前途怎么样我就不管了,至少得先让自己爽起来再说。

    为什么我那么强调窗口设计器呢?其实可以大家可以开个C#,尝试做一下我以前那个破IDE的界面。这样的话窗口设计器会给你一份代码,藏在XXForm.Designer.cs底下,然后写几行代码把东西当prototype跑起来。然后你再用MFC做一遍。现在VC++ 9.0对MFC的支持其实也是很漂亮的,只不过量变引起不了质变而已。做完了之后比较一下哪个比较囧(指的仅仅是开发过程,不要拿效率说事儿,那点破界面慢一点无所谓)。

    现在我揭竿而起重头来了一次,就等于给你.NET的System.Windows.Forms一样,有类库没有界面编辑器。如果你想做一个界面出来的话就要自己亲手写一个XXForm.Designer.cs出来。这个其实比MFC更囧,也令我自己更加不爽。要是我自己做的东西连我自己用着都不高兴的话那就太没意思了,所以得来一个那样的设计器才行。

    话说到这里,其实VL++这套类库(除了GUI还有很多其他东西,用了的话连STL都免了)文件结构复杂,每一次使用都要重新一个一个添加,也是很不爽的。因此至少窗口设计器也要自动把这些该加进去的文件添加到vcproj不是么。但是VL++并不仅仅是一个GUI Framework啊,至少还能写编译器是吧。自己做了一个Syngram,直接在C++里面写左递归文法,用起来也挺爽的。当然爽不是爽在能写文法,而是爽在这样做,编译器遇到了大的变化也非常容易改,传说中的解耦啊。Vczh Free Script 1.0只是一个支持闭包的东西,后来大刀阔斧修改了,就变成同时支持很多个编程范式的脚本语言了。多亏了Syngram啊,改语法真是不费吹灰之力。既然我要弄一个GUI工具来写编译器,那么吧两个工具整合在一起,就是一个很自然的想法了。再加上未来有空的话还要做一个远程对象交互协议,也是很需要GUI工具帮忙的。

    于是呢,虽然工程量很大,但是我们来展望一下。现在,自己需要开发一个系统的客户端,这个客户端需要跟远程的数据库打交道,同时还要支持大量的配置。那怎么办呢?首先,打开这个工具,连接到一个刚刚建立好的vcproj上面,然后就拖控件了。拖完了之后就是一个prototype了,一跑觉得不错。现在,从远程的机器那边拿到一个使用远程对象交互协议的接口说明,添加到这个工具里面,这个工具就自动产生了客户端的代码,让你可以像调用一个类一样跟远程的机器打交道(像SOA?我觉得不像,我也不想像。像WCF?虽然概念类似,不过既然我不做SOA,那就不像了)。最后一步要配置。现在配置都写DSL啊。所谓的DSL就是面向特定领域的特殊语言。编译器不会写?没关系,还是那个工具,新建一个编译器,拖几个文法出来,搞一搞,呀,代码出来啦。用这个生成以后的代码写写后端,一个DSL就有啦。

    嗯嗯,虽然很理想化,但至少这玩意儿作为一个原型存在,也是挺好玩的。不过呢,可能要花很长时间,这个计划也不是稳定的,得看未来发生了些什么事情。不过最少那个做编译器的玩意儿还是要的。ANTLR这个LL(k)都有了,我Syngram好歹也是LR(k),不做就不爽啦。
posted on 2008-08-19 09:51 陈梓瀚(vczh) 阅读(1778) 评论(5)  编辑 收藏 引用 所属分类: 其他

评论:
# re: 关于VL++辅助C++程序设计的设想 2008-08-19 10:35 | jetricy
不管3721先sf,
分布式的做编译器的环境?
我暂时还是个对编译器有兴趣的外行,啥时候搞一个像样的LR(K)还是比较口水的  回复  更多评论
  
# re: 关于VL++辅助C++程序设计的设想 2008-08-19 15:35 | foxtail
慢慢玩吧 有的你玩了  回复  更多评论
  
# re: 关于VL++辅助C++程序设计的设想 2008-08-19 19:42 | 空明流转
去吧去吧,先搞吧。其实我用了YACC觉得也还行,生成现在配合构建脚本还算凑合。  回复  更多评论
  
# re: 关于VL++辅助C++程序设计的设想[未登录] 2008-08-20 05:34 | missdeer
做IDE,有意思,我喜欢  回复  更多评论
  
# re: 关于VL++辅助C++程序设计的设想 2008-08-23 23:58 | dell
Windows下面开发C++的确很受折磨。  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理