gnupic: Re: [gnupic] is OO any use?
Subject:
Re: [gnupic] is OO any use?
From:
David P Harris ####@####.####
Date:
19 Aug 2005 15:13:41 +0100
Message-Id: <4305E8F2.1080906@telus.net>
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: ####@####.####
>>For additional commands, e-mail: ####@####.####
>>
>>
>>
>>
>>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: ####@####.####
>For additional commands, e-mail: ####@####.####
>
>
>
>
>