Odpověď na názor

Odpovídáte na názor k článku Kouzlo minimalismu potřetí: vývoj her a dem pro osmibitová Atari. Názory mohou přidávat pouze registrovaní uživatelé. Nově přidané názory se na webu objeví až po schválení redakcí.

  • 6. 3. 2026 21:27

    forth

    Cecko umoznuje programovat tak, ze nemas ani tuseni jake problemy mu zpusobujes. Umoznuje ti mit libovolny pocet parametru, volat fci a v ni dalsi fci, v kazde mit lokalni promenne.

    Pouziva na to elegantni metodu, ze si kazda fce nejak uklada promenne na zasobnik. Kazda zanorena fce ma svoji oblast. Problem se Z80 je ten, ze to krasne ulozis na zasobnik, ale uz se pak k tomu krome posledni polozky nedostanes... Musis okolo toho delat nejakou dalsi rezii, aby k promennym byl pristup a ta rezie je mnohdy vetsi nez co resis.

    Cecko se pak snazi vymyslet neco, co porusuje jeho vlastnosti, ktere od nej cekas. Napriklad zjisti, ze z te fce uz nic nevolas, je posledni, takze by ty promenne mohla mit stale v registrech (leaf function optimization).

    Ale ty jsi odstinen tak, ze si neuvedomujes, ze prepravovat 1, 2, 3, 4 nebo i 5 osob v aute je neco jine nez mit tech osob (promennych) 6. Reseni bude jine, co fungovalo predtim uz nemusi.

    Cecko pak musi premyslet, jak ohnout samotne zakladni reseni, aby bylo efektivni. S tim musi pocitat vsechno. Ze to co normalne plati, nemusi platit. Knihovny atd.

    Nektere jazyky ti povoli jen globalni promenne a kupodivu, ty pak navrhnes reseni, co je mnohem lepsi a snazsi na prevod do asm.

    Nektere jazyky maji navic emulovany zasobnik, ale jejich zakladni slova jsou zalozene na tom ze pohodlny pristup mas jen k posledni nebo predposledni polozce. To te nuti napsat to reseni zase jinym algoritmem. A ten prekladac ma usnadnenou praci, protoze misto aby se snazil prevest tvoji abstrakci na instrukcni sadu daneho procesoru si to udelal vicemene za nej ty.

    V Cecku napises proste nejaky krasny abstraktni algoritmus, kde prekladac bude premyslet, pak zjisti ze existuje jediny pripad, kdy optimalizace nefunguje a tak ji zavrhne. I kdyz ty vis ze takova data nikdy nedostane, ale napsal si to tak ze on to nepozna. Vubec nevis ze mu hazes klacky pod nohy.

    V asm naopak vis, ze kdyz neco treba pretece, tak to je presne ten trik ktery vyuzijes, aby to bylo efektivnejsi. Nebo jakakoliv jina specialni vlastnost daneho procesoru.

    Z80 a 6502 jsou tak odlisne pristupy, ze i kdyz delas benchmark tak prijdes na to, ze i ty algoritmy budes mit jine, protoze pro kazdy CPU se hodi jine reseni. Takze i ty klacky co mu hazes pod nohy, muzou byt pokazde nekde jinde.

    Proste tyto procesory jsou z doby, kdy C nebylo vsude a kdy jim jeste instrukcni sada nesla naproti.