Hlavní navigace

Názor k článku Můžeme věřit překladačům? Projekty řešící schéma „důvěřivé důvěry“ od Ray - Zdarec... Taková migrace kódu/metadat do binarek překladače... Ono to...

  • Článek je starý, nové názory již nelze přidávat.
  • 6. 9. 2018 10:57

    Ray (neregistrovaný)

    Zdarec...

    Taková migrace kódu/metadat do binarek překladače... Ono to hodně souvisí s tím co Pavel píše. Pokud si jeden nedá pozor (a v rámci času a vývoje to je někdy dost těžké) na migraci kódu a metadat ze zdrojáku do binárky, tak se dostává do podobné situace. A při zjištění dané věci nezbývá, než opravit prapůvodní verzi (obvykle) a postupne překopilovat všechny verze zpětně. Někdy stačí přepsat pár drobností je to OK... Typickej příklad pro C, parsování zpětnýho lomítka:

    switch (character)
    case 'n':return(0x0d);
    case 'r':return(0x0a);
    ....

    Není moc co řešit. Jinak to ani nešlo, prvni verze neuměla "\n" :) Nicméně, postupem času se změní kód na:

    switch (character)
    case 'n':return('\n');
    case 'r':return('\r');
    ....

    Je to přece přehlednější. Pak se naskýtá otázka, kde vlastně je uloženo 0x0d a 0x0a ? Ve zdrojkáku už ne... Pokud pak někdo prohodí D/A protože to je blbě a má být A/D, tak rozdílné binárky ze stejného zdrojaku zprodukují rozdílnej výsledek. V tomto prípadě relativně bagatelní.

    Kdysi v minulosti přemigrovaly ty konstanty do binárky a už se jen přelejvá pri kompilaci z jedné verze do druhé a její hodnota už není pod kontrolou zdrojového kódu. Je krásně zbinarizovaná. A neviditelná.

    Tohle je samozrejmně jednoduchý příklad, nicméně, podobné věci se dějí nejen na takto krásné a kontrolovatelné úrovni. V dnešní době, plné "metadat" je to raz dva.... A když se jeden snaží, není takovéj problem zbinarizovat bůch ví co. Speciálně kód, co děla optimalizace má spousty možností (třeba příprava lookup tabulek, což je čiště vygenerovanej kód a pod)... A krásné na tom je nejvíce to, jak to není na první pohled vidět. Koho by napadlo, že ta věc nahože, druhá v pořadí, je vlastně "průser" ? Nejspíš jen toho, kdo se s tím někdy potkal. Jojo, slepice a vajíčko :)

    R.