OT bitove polia a efektivita; Was: pointery C

Jan Waclawek konfera na efton.sk
Čtvrtek Květen 23 09:18:36 CEST 2013


>On 23. 5. 2013 7:16, Jan Waclawek wrote:
>>
>> Dolezitym argumentom proti musela byt aj pracnost prace s bitmi na PDP-11. Nepoznam tu architekturu, ale vzhladom na vytrvalost s akou do C prenikali featury prave z PDP-11, verim tomu, ze to tak bolo.
>
>A ja tu architekturu z davnych cias poznam :). Nemyslim, ze by pracnost 
>prace s bitmi bola o moc zlozitejsia ako inde. PDP-11 bol pouzivany ako 
>riadiaci mikropocitac, takze praca s bitmi mala svoje miesto.


Aha, dakujem za vysvetlenie.

No, nemyslel som si to; mal som o PDP-11 taku naivnu predstavu ze to bol
taky zmenseny funkcny ekvivalent IBM-360 (ale kedze vlastne ani tie
nepoznam, aj tam mohli byt bitove operacie efektivne implementovane ;-) )


>Tak ma napadlo - jednou cestou k implementacii adresovatelneho bitu by 
>mohol byt ARMovsky bit-banding, akurat by sme sa museli zmierit s tym, 
>ze vzdialenost medzi bitmi je 4. Ale bit ma svoju adresu, rovnaku ako 
>akakolvek ina...
>
>Otazky prenositelnosti  a pod nechajme bokom.


Kedze norma - ako uz bolo v predchadzajucej diskusii uvedene - sa pomerne
striktne vyvarovala predpisovaniu formy pointrov, nie je ziadna zasadna
prekazka implementovat bitove pointre uplne akokolvek, aj naozaj ako
bitova adresa. V skutocnosti je ta prekazka ciste administrativna a
spociva v C99 6.2.6.1#2:
Except for bit-fields, objects are composed of contiguous sequences of one
or more bytes,[...]
Z toho vyplyva druha, v podstate od tejto odvodena a tiez len
administrativna prekazka vo forme poziadavky, ze pri konverzii akehokolvek
pointra-na-objekt na pointer-na-char tento musi ukazovat na prvy byte
objektu.

No a chce to este nejakeho odvazlivca, ktory to do nejakeho vplyvneho
kompilatora (najlepsie gcc) naimplementuje a (co je paradoxne mozno este
tazsie) si si tu implementaciu presadi proti GNU klike.

wek




Další informace o konferenci Hw-list