Re: c 's OOP in VFS vs c++'s OOP

la deng
2007-05-04T11:00:18Z

On 5/4/07, WANG Cong <xiyou.wangcong@gmail.com> wrote:
> On Fri, May 04, 2007 at 04:32:27PM +0800, la deng wrote:
> >reference to the c++'s father's interview
> >
> >http://www.artima.com/intv/abstreffi.html
> >
> >fortran and c++ can achive good performance for they can abstract in
> >higher level and their compiler can think in higher level to avoid
> >the cache miss (like in the array vs vector )or to achive the "no
> >code" Optimization
> >
>
> Well, it seems

that you are a zealot of OOP. I admit OOP is really a good idea and a
good abstraction. And that's the reason why we borrow it in. Of
course, OOP in C is not true OOP. (Maybe we can call it pseudo-OOP.)
>
> >The vfs using c to OOP but c compiler can't have the high level
> >Intelligence as the c++ or fortran's compiler to help at the high
> >level Optimization
> >
>
> We just borrow the OOP ideas from OOP languages, like C++/Java/Python, but we can't use any of them. The reasons can be summarized as the following:
>
> 1. Those languages, like C++, hide many things behind you. But kernel needs to know those things.
> 2. Those languages can't be (well) mixed with assembly.
> 3. Speed is crucial for kernel, while those languages can't surpass C.
>
> >
> >one benchmark showed the c insert in the array will slow by speed of 1/17
>
> What benchmark? If your algorithm is well designed, C can't be more slowly.
>
> >
> >
> >Then ,what's the power of c OOP vs c++ with the compiler's
> >Intelligence in OOP?or maybe the c compiler have Outdated？
> >
>
> C compiler is _not_ out of date, of course. Why we choose OOP in C is explained above.
>
> In a word, we choose OOP because it's a good idea like you wanna show us, we prefer C because of it's low-levelness and speed.
>
> >any input will be appreciated.
>
> Regard!
>
> WANG Cong
>
>
well,I mean when use c as a higher level assembly maybe it a good
choose compare to assembly.

but,as below

http://www.research.att.com/~bs/esc99.html

when we use c to do the OOP ,for the c compiler has no the globe
Analysis .then the cache miss(for example : insert a array,c compiler
maybe put the data into memory and then take it again for no globe
Analysis ) and the data not Optimi for in the register and c can't
control register like lisp or c++ with some compiler glob control and
Analysis,giveing c the penalty of 1/17 speed as normal

What's you think about it?

Thanks