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