Re: Learning to use PICS

From: CBarn24050 (cbarn24050_at_aol.com)
Date: 11/28/04


Date: 28 Nov 2004 09:05:54 GMT


>Subject: Re: Learning to use PICS
>From: "Sergio Masci" sergio@NO.SPAM.xcprod.com
>Date: 28/11/2004 03:06 GMT Standard Time
>Message-id: <41a93fe9$0$1063$db0fefd9@news.zen.co.uk>
>
>
>john jardine <john@jjdesigns.fsnet.co.uk> wrote in message
>news:coac45$hvg$1@newsg3.svr.pol.co.uk...
>>
>> "Sergio Masci" <sergio@NO.SPAM.xcprod.com> wrote in message
>> news:41a89667$0$1067$db0fefd9@news.zen.co.uk...
>>
>> >[clip]

>> > The XCSB compiler will convert the following to just 6 machine code
>> > instructions:
>> >
>> > proc inline set_bit(ubyte *addr, ubyte id)
>> > *addr = *addr | (1 << id)
>> > endproc
>> >
>> > proc inline clear_bit(ubyte *addr, ubyte id)
>> > *addr = *addr & ~(1 << id)
>> > endproc
>> >
>> > proc inline ubyte test_bit(ubyte *addr, ubyte id)
>> > return (*addr & (1 << id) != 0)
>> > endproc
>> >
>> > proc main()
>> >

>> > ubyte a, b
>> >
>> > if (test_bit(&a, 1) then
>> > set_bit(&b, 2)
>> > else
>> > clear_bit(&b, 2)
>> > endif
>> > endproc
>>
>> Looks like "C" to me.
>> I know this must be so, as I can't understand it :-).
>> Yet I can easily read the 'Proton','CH-flash', 'iL_Bas16' etc Basics.
>> regards
>> john

>
>It supports pointers like "C" but unlike many C compilers for the PIC it
>doesn't generate a ton of code to build and pass the pointers and then
>dereference them if it can determine the address at compile time. PEEK and
>POKE would be more in keeping with other BASIC dialects but pointers allow
>the programmer to give the compiler more information which in turn helps the
>compiler trap silly errors and generate better code.
>
>The reason I chose the above example is because it shows how the compiler
>converts some very complex functionality into very tight code
>

Assembly language programmers do that in 3 instructions.



Relevant Pages

  • Re: new IL: C (sort of...).
    ... only for "recent" Pascals, ... far pointers weren't really limited, ... in my compiler, I made wchar_t a builtin type (in most cases, aliased to ... I could very well include builtin "managed strings" in the new IL. ...
    (comp.lang.misc)
  • Re: new IL: C (sort of...).
    ... and the frontend compiler needs to be able ... Having very limited pointers is a fact of life in a VM language though, ... vague claims about Pascal's pointer support. ... That is pretty normal for standards (the ...
    (comp.lang.misc)
  • Re: code optimiation
    ... Given that the compiler can often optimise the generated code to use the best sized types available, it's seldom worth specifying "fast" types explicitly. ... pointers and floating point types whose "zero value" might not be all- ... instruction, so the assembler produced for *p++ when used as the ... It will do the same job, and let you write the source code using proper array constructs. ...
    (comp.arch.embedded)
  • Re: A taxonomy of types
    ... I am describing how to represent the representation (and, ... if the system follows static typing rules (such as in a compiler), ... so, the hardware sees pointers and pointer arithmetic, but the compiler ... "Besides the char types, up to three sizes of integer, declared short int, ...
    (comp.lang.misc)
  • Re: new IL: C (sort of...).
    ... Having very limited pointers is a fact of life in a VM language though, ... only take about 1/2 the register space (presently, ... nearly any compiler can be written "to the standards", ... That is pretty normal for standards (the ...
    (comp.lang.misc)

Quantcast