Re: is OO any use?
David P Harris <[email protected]>
| Newsgroups | gmane.comp.hardware.microcontrollers.gnupic |
|---|---|
| Message-ID | <[email protected]> |
David- Is this written up somewhere? Sounds interesting. Being able to choose between early and late binding is very useful, and let's you tune your application. David David McNab wrote: >Thanks all for comments. > >As it happens, I've just migrated over the OO layer from my slow/compact > forth to the new fast/bloaty forth. > >The OO uses a vtable at the start of each object's data area, to 'tag' >what class the object is, and facilitate late binding. > >Method and attribute accesses get compiled to code which passes a 2-byte >hash of the method/attribute name, for faster comparison during the search. > >Even with this optimisation, the cpu usage for late-binding method >lookup is weighing in at 218 cycles minimum. that's 43.6us for an 18f >running at 20MHz. This will grow further for methods further down the >vtable, and grow even more harshly for methods higher in the class' >ancestry. Eek. > >Fortunately, the OO also supports early binding, which cuts this down to >2 cycles - the cost of a CALL. The syntax is uglier though, and needs >the user to know the object's class ancestry. > >Anyway, what the hell, it's done. I might find a use for it, or I may >not. But I'd better warn users in the doco that accessing objects using >late binding cops a cruel speed penalty. > >Cheers >David > > >David Santo Orcero wrote: > > >> Hello, David! >> >> >> >> >>>This is not a troll, so please forgive me if it comes across as such. >>> >>> >> I don think so. :-) >> >> >> >> >>>What I'm asking here is - is there any real practical value to be gained >>> >>> >>>from supporting OOP in a PIC runtime environment? >> >> >> Let's divide the question in two parts: >> >> OOP as a design metodology: so far you are confortable with OOP design, I >>don't feel any problem with using it. If it allows you to a better design, >>and a cleaner organization, you will have a code more easy to understand >>and maintain. And if you use assembler -and most of us use it-, you will >>need that kind of code. There are tricks well known to obtain good >>non-OOP code for a OOP design, so don't be afraid to mix OOP design with >>final assembler code. >> >> OOP programming languages: teorically, it is possible; but I don't know >>any OO language compiler for PICs. Anyway, I strongly doubt that it is >>usefull. There are some issues related with dynamic linking and function >>calling that are heavier in a OO languaje due to polymorfism and inherance >>that could make the call of a function too heavy for obtaining good >>performance for a PIC. More powerfull microcontrolers -and I think here in >>something like a picojava core and higher- would allow an OO languaje, but >>the energy needs will be higher, and the cost of the components and the >>development time of the hardware will also increase. >> >> Yours: >> >>David >> >>--------------------------- >> David Santo Orcero >>http://www.orcero.org/irbis >>--------------------------- >> >>--------------------------------------------------------------------- >>To unsubscribe, e-mail: [email protected] >>For additional commands, e-mail: [email protected] >> >> >> >> >> > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [email protected] >For additional commands, e-mail: [email protected] > > > > >