[cpp] Re: Cpp Digest, Vol 24, Issue 18

liangml liangml at 6636.com
Fri Mar 10 13:48:45 CST 2006


嵌入一个Python的脚本引擎应该可以很容易做到这一点吧.


----- Original Message ----- 
From: <cpp-request at codingnow.com>
To: <cpp at codingnow.com>
Sent: Friday, March 10, 2006 12:00 PM
Subject: Cpp Digest, Vol 24, Issue 18


> 想在 Cpp 列表发言 , 请 email 给
>
> cpp at codingnow.com
>
> 经由 WWW 订阅或取消订阅 , 请到
>
> http://codingnow.com/mailman/listinfo/cpp
>
> 或通过 email , 送出一封标题或内文为 'help' 到
>
> cpp-request at codingnow.com
>
> 想与列表管理员取得联系时 , 请 email 给
>
> cpp-owner at codingnow.com
>
> 当回信时 , 请给一个适当的标题 , 这样会比
> "Re: Contents of Cpp digest..."更清楚明白.
>
>
> Today's Topics:
>
>   1. 编译器是怎么处理 ( a && b )||(c) 之类的表达式的? (Fei Xu)
>   2. Re: 编译器是怎么处理 ( a && b )||(c) 之类的表达式的?
>      (=?GB2312?B?wqzBorV0KGJhZF9maXNoKQ==?=)
>   3. Re: 编译器是怎么处理 ( a && b )||(c) 之类的表达式的? (li yuan)
>   4. Re: 关于c++最近遇到的几个不得不提的问题 (Leo Liang)
>   5. Re: 编译器是怎么处理 ( a && b )||(c) 之类的表达式的? (huangyi)
>   6. RE: 编译器是怎么处理 ( a && b )||(c) 之类的表达式的? (刘 思立)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 9 Mar 2006 15:58:36 +0800
> From: "Fei Xu" <flyingxu at gmail.com>
> Subject: [cpp] 编译器是怎么处理 ( a && b )||(c) 之类的表达式的?
> To: "C++ Discuss Group" <cpp at codingnow.com>
> Message-ID:
> <37c058bd0603082358p291182c4u192fd093daddfdb5 at mail.gmail.com>
> Content-Type: text/plain; charset=GB2312
>
> 现在自己要写一段程序,处理类似于下面的字符串,
> ((a AND b)OR (x OR y) ) AND z
> 其中a b x y,z都是已知的值,AND OR的规则和c里面一模一样,然后按照与/或的关系得到这个表达式的值。
> 我觉得这个处理的办法应该在编译器里面一样,但是我却不是很懂。
>
> 能给点建议或者网上有类似的源码吗?
>
> 或者该看什么书?我估计应该大学的本科教材里就有讲的吧?
>
>
> --
> Fei Xu
> Shanghai, China
>
>
>
> ------------------------------
>
> Message: 2
> Date: Thu, 9 Mar 2006 16:07:54 +0800
> From: "=?GB2312?B?wqzBorV0KGJhZF9maXNoKQ==?=" <luliyi1024 at gmail.com>
> Subject: Re: [cpp] 编译器是怎么处理 ( a && b )||(c) 之类的表达式的?
> To: "C++ Discuss Group" <cpp at codingnow.com>
> Message-ID:
> <9faf1d280603090007r28a0b0b1s9e1c6ae2998a4209 at mail.gmail.com>
> Content-Type: text/plain; charset=GB2312
>
> 编译原理
>
> On 3/9/06, Fei Xu <flyingxu at gmail.com> wrote:
>> 现在自己要写一段程序,处理类似于下面的字符串,
>> ((a AND b)OR (x OR y) ) AND z
>> 其中a b x y,z都是已知的值,AND OR的规则和c里面一模一样,然后按照与/或的关系得到这个表达式的值。
>> 我觉得这个处理的办法应该在编译器里面一样,但是我却不是很懂。
>>
>> 能给点建议或者网上有类似的源码吗?
>>
>> 或者该看什么书?我估计应该大学的本科教材里就有讲的吧?
>>
>>
>> --
>> Fei Xu
>> Shanghai, China
>>
>> _______________________________________________
>> Cpp mailing list
>> Cpp at codingnow.com
>> http://codingnow.com/mailman/listinfo/cpp
>>
>
>
>
> ------------------------------
>
> Message: 3
> Date: Thu, 9 Mar 2006 16:12:05 +0800
> From: "li yuan" <suif.liyuan at gmail.com>
> Subject: Re: [cpp] 编译器是怎么处理 ( a && b )||(c) 之类的表达式的?
> To: "C++ Discuss Group" <cpp at codingnow.com>
> Message-ID: <173ef0c60603090012n40c6e34ap at mail.gmail.com>
> Content-Type: text/plain; charset="gb2312"
>
> 可以用stack,再结合一个运算符的优先级的表,具体可以参考编译器的书《编译原理及实践》上就有讲
>
> 在06-3-9,Fei Xu <flyingxu at gmail.com> 写道:
>>
>> 现在自己要写一段程序,处理类似于下面的字符串,
>> ((a AND b)OR (x OR y) ) AND z
>> 其中a b x y,z都是已知的值,AND OR的规则和c里面一模一样,然后按照与/或的关系得到这个表达式的值。
>> 我觉得这个处理的办法应该在编译器里面一样,但是我却不是很懂。
>>
>> 能给点建议或者网上有类似的源码吗?
>>
>> 或者该看什么书?我估计应该大学的本科教材里就有讲的吧?
>>
>>
>> --
>> Fei Xu
>> Shanghai, China
>>
>> _______________________________________________
>> Cpp mailing list
>> Cpp at codingnow.com
>> http://codingnow.com/mailman/listinfo/cpp
>>
>
>
>
> --
> 一步两个脚印
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: 
> http://codingnow.com/pipermail/cpp/attachments/20060309/9219ab9d/attachment-0001.html
>
> ------------------------------
>
> Message: 4
> Date: Thu, 9 Mar 2006 17:18:51 +0800
> From: "Leo Liang" <leoliang at gmail.com>
> Subject: Re: [cpp] 关于c++最近遇到的几个不得不提的问题
> To: "C++ Discuss Group" <cpp at codingnow.com>
> Message-ID:
> <6a8cd4180603090118rdfa6502g628f9638b9aa0767 at mail.gmail.com>
> Content-Type: text/plain; charset=GB2312
>
> OCCI是C++接口。跟JDBC的API非常类似。
> 本来是面向对象的设计,接口的地方却要变成C,多别扭啊
>
>
> On 3/5/06, Wu Yongwei <adah at sh163.net> wrote:
>> C接口还是C++接口?C接口的话应该没有问题的(至少Windows等平台是如此)。
>>
>> 要跨编译器使用,对象接口一般都必须是纯C的("extern "C" { ... }")。
>>
>> 吴咏炜
>>
>> Leo Liang wrote:
>>
>> > 还是解决不了二进制兼容性问题啊
>> > 我遇到的问题是在solaris上使用oracle library,oracle只提供SunStudio编译的lib,我用gcc连接就会出错。
>> >
>> > btw,好像这个maillist的都是做windows平台的多,unix的少?
>> >
>> >
>> > -----------------------------------------------------------------------------------------
>> > Leo Liang
>> > E-mail:                                     leo.liang at gmail.com
>> > Blog (tech & learning):               http://aleung.blogbus.com
>> > Blog (photography & outdoor):    http://sunnyday.cn2k.net
>> > Delicious bookmark:                  http://del.icio.us/aleung
>> > -----------------------------------------------------------------------------------------
>> >
>> >
>> >
>> > On 3/2/06, analyst <qiaojie at gmail.com> wrote:
>> >
>> >>根据多年来C++做大型工程总结下来的经验,对于C++模块应该坚持两个原则,复杂对象使用抽象接口暴露功能,简单对象使用模板或内联函数暴露功能,即可避免这两个问题,根据这种原则实现的C++模块的成功典型有COM,ATL,STL等等。
>> >>
>> >>
>> >>
>> >>在06-3-2,zhs007 <sssxueren at gmail.com> 写道:
>> >>
>> >>一,二进制兼容性太差
>> >>最近帮个朋友写点东西,他提供了几个lib,里面用到了stl,是 vc 自带的,我这边所有的库都是用 stlport编译的,如果要使用他的 lib
>> >>,我所有的库需要重新编译不说,还有少量的接口,stlport 和 msstl 不兼容......
>> >>c++只有源码级别的兼容,太不方便了。这点比C都要差得太多了,所以一直到现在,我都在传递参数的时候,尽量的传
>> >>const char* ,而不是 std::string 。
>> >>二,弱 link 的问题
>> >>有个项目,大约 100 多个文件,维护起来很痛苦,所以我决定按功能,分成若干小 
>> >> lib,最后 link 成 dll,这样
>> >>可维护性更好一些。粗想下来什么问题都没有,但却就是这样简单的工作都会出问题:
>> >>为了降低模块之间的耦合度,我使用了很多 factory ,这样就会有一系列 
>> >>object 是弱 link
>> >>的(增减修改object都不会对整体造成任何影响),而 lib 本身也是 弱 link 
>> >>的,没有使用到的东西是不会 link
>> >>到最终的目标文件中去的,于是,表面上看来编译链接都没问题,但实际运行起来就发现,怎么什么都是空的阿,调试了半个多小时,终于找到原因,超级郁闷的说!
>>
>> _______________________________________________
>> Cpp mailing list
>> Cpp at codingnow.com
>> http://codingnow.com/mailman/listinfo/cpp
>>
>
>
> --
> -----------------------------------------------------------------------------------------
> Leo Liang
> E-mail:                                     leo.liang at gmail.com
> Blog (tech & learning):               http://aleung.blogbus.com
> Blog (photography & outdoor):    http://sunnyday.cn2k.net
> Delicious bookmark:                  http://del.icio.us/aleung
> -----------------------------------------------------------------------------------------
>
>
>
> ------------------------------
>
> Message: 5
> Date: Thu, 9 Mar 2006 18:26:51 +0800
> From: huangyi <huangyi12 at gmail.com>
> Subject: Re: [cpp] 编译器是怎么处理 ( a && b )||(c) 之类的表达式的?
> To: "C++ Discuss Group" <cpp at codingnow.com>
> Message-ID:
> <e4aa78cf0603090226s4a5bb5fdo174f06d3a8a041b at mail.gmail.com>
> Content-Type: text/plain; charset="gb2312"
>
> stack,或者利用BNF。
> 也有一些个词法分析程序生成器,我没用过。
> 据说boost里有一个词法分析的库 写出来的代码很接近BNF的表达形式 也没用过
>
> On 3/9/06, li yuan <suif.liyuan at gmail.com> wrote:
>>
>> 可以用stack,再结合一个运算符的优先级的表,具体可以参考编译器的书《编译原理及实践》上就有讲
>>
>> 在06-3-9,Fei Xu <flyingxu at gmail.com> 写道:
>>
>> > 现在自己要写一段程序,处理类似于下面的字符串,
>> > ((a AND b)OR (x OR y) ) AND z
>> > 其中a b x y,z都是已知的值,AND OR的规则和c里面一模一样,然后按照与/或的关系得到这个表达式的值。
>> > 我觉得这个处理的办法应该在编译器里面一样,但是我却不是很懂。
>> >
>> > 能给点建议或者网上有类似的源码吗?
>> >
>> > 或者该看什么书?我估计应该大学的本科教材里就有讲的吧?
>> >
>> >
>> > --
>> > Fei Xu
>> > Shanghai, China
>> >
>> > _______________________________________________
>> > Cpp mailing list
>> > Cpp at codingnow.com
>> > http://codingnow.com/mailman/listinfo/cpp
>> >
>>
>>
>>
>> --
>> 一步两个脚印
>>
>> _______________________________________________
>> Cpp mailing list
>> Cpp at codingnow.com
>> http://codingnow.com/mailman/listinfo/cpp
>>
>>
>
>
> --
> http://codeplayer.blogbus.com
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: 
> http://codingnow.com/pipermail/cpp/attachments/20060309/b2d17c06/attachment-0001.html
>
> ------------------------------
>
> Message: 6
> Date: Thu, 09 Mar 2006 11:17:59 +0000
> From: 刘 思立 <neptrue at hotmail.com>
> Subject: RE: [cpp] 编译器是怎么处理 ( a && b )||(c) 之类的表达式的?
> To: cpp at codingnow.com
> Message-ID: <BAY109-F39B0C64F4B6AB039C96FEEA2EC0 at phx.gbl>
> Content-Type: text/plain; charset=gb2312; format=flowed
>
> 这个应该是算符优先分析法来parse~~
>
>
>>From: "Fei Xu" <flyingxu at gmail.com>
>>Reply-To: C++ Discuss Group <cpp at codingnow.com>
>>To: "C++ Discuss Group" <cpp at codingnow.com>
>>Subject: [cpp] 编译器是怎么处理 ( a && b )||(c) 之类的表达式的?
>>Date: Thu, 9 Mar 2006 15:58:36 +0800
>>
>>现在自己要写一段程序,处理类似于下面的字符串,
>>((a AND b)OR (x OR y) ) AND z
>>其中a b x y,z都是已知的值,AND OR的规则和c里面一模一样,然后按照与/或的关系 
>>
> 得到这个表达式的值。
>>我觉得这个处理的办法应该在编译器里面一样,但是我却不是很懂。
>>
>>能给点建议或者网上有类似的源码吗?
>>
>>或者该看什么书?我估计应该大学的本科教材里就有讲的吧?
>>
>>
>>--
>>Fei Xu
>>Shanghai, China
>>
>>_______________________________________________
>>Cpp mailing list
>>Cpp at codingnow.com
>>http://codingnow.com/mailman/listinfo/cpp
>
> _________________________________________________________________
> 免费下载 MSN Explorer:   http://explorer.msn.com/lccn/
>
>
>
> ------------------------------
>
> _______________________________________________
> Cpp mailing list
> Cpp at codingnow.com
> http://codingnow.com/mailman/listinfo/cpp
>
>
> End of Cpp Digest, Vol 24, Issue 18
> ***********************************
> 



More information about the Cpp mailing list