gnupic: Re: [gnupic] is OO any use?


Previous by date: 19 Aug 2005 13:31:52 +0100 Re: [gnupic] is OO any use?, David Santo Orcero
Next by date: 19 Aug 2005 13:31:52 +0100 Re: [gnupic] is OO any use?, Daniel Serpell
Previous in thread: 19 Aug 2005 13:31:52 +0100 Re: [gnupic] is OO any use?, David Santo Orcero
Next in thread: 19 Aug 2005 13:31:52 +0100 Re: [gnupic] is OO any use?, Daniel Serpell

Subject: Re: [gnupic] is OO any use?
From: David McNab ####@####.####
Date: 19 Aug 2005 13:31:52 +0100
Message-Id: <4305D130.3020909@rebirthing.co.nz>

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: ####@####.####
> For additional commands, e-mail: ####@####.####
> 
> 
> 

Previous by date: 19 Aug 2005 13:31:52 +0100 Re: [gnupic] is OO any use?, David Santo Orcero
Next by date: 19 Aug 2005 13:31:52 +0100 Re: [gnupic] is OO any use?, Daniel Serpell
Previous in thread: 19 Aug 2005 13:31:52 +0100 Re: [gnupic] is OO any use?, David Santo Orcero
Next in thread: 19 Aug 2005 13:31:52 +0100 Re: [gnupic] is OO any use?, Daniel Serpell


Powered by ezmlm-browse 0.20.