OT bitove polia a efektivita; Was: pointery C

Michal Gregor a2x1nptda8 na email.cz
Čtvrtek Květen 23 08:37:16 CEST 2013


Ale bit se prece da taky adresovat. Je to pointer jako kazdy jiny - trochu 
pocitani adresy v pameti + vybrani patricneho bitu.


Michal Gregor



----- Original Message ----- 
From: "Milan B." <milan na bastl.sk>
To: <hw-list na list.hw.cz>
Sent: Thursday, May 23, 2013 8:24 AM
Subject: Re: OT bitove polia a efektivita; Was: pointery C


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.

Implementovane boli instrukcie BIC, BIS a BIT. A to dokonca na ukor
beznych logickych operacii AND, OR (BIS je vlastne OR, ale BIC je AND s
negovanym operandom).

Je pravda, ze u C sa da velmi jednoducho predstavit, ako by sa
jednotlive konstrukcie dali na PDP-11 prelozit jednou instrukciou. Ale
to moze byt aj genialnym navrhom instrukcnej sady PDP-11. Ale uznavam,
ze niektore konstrukcie  (pre a post inkrement) svoj povod nezakryju.

> Dalsi argument proti je, ze bit ako usporne implementovana ale samostatna 
> premenna/typ zasadne naburava predstavu, ze vsetky objekty su 
> adresovatelne (mimochodom to naburava u niektorych starsich strojov aj 
> char, ale to bolo tak potrebne aj v tej dobe, ze tam sa prizmurilo oko - 
> vsimnite si, ze povodne char nebol mysleny ako typ pre aritmetiku). 
> Mimochodom, poziadavka bytovej adresovatelnosti je v norme dodnes a de 
> iure to brani efektivnej implementacii dodatocne zadefinovaneho 
> standardneho typu _Bool, a bitove polia (co je tiez len dorobok) sa lisia 
> od "plnohodnotnych" typov presne v tomto detaile (z praktickeho hladiska 
> to znamena, ze na bitove polia neexistuju smerniky).

Toto bude hlavny dovod.  Kedze C je vlastne smerniky a par beznych
jazykovych konstrukcii naokolo, akykolvek "neadresovatelny" datovy typ
musi byt na obtiaz :)

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.

-m-



> wek
>
>

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list 



Další informace o konferenci Hw-list