Vlákno názorů k článku Programovací jazyk Forth a zásobníkové procesory (6) od Marek Brunda - > Při běhu programu se jméno proměnné vždy...

  • Článek je starý, nové názory již nelze přidávat.
  • 15. 2. 2005 13:59

    Marek Brunda (neregistrovaný)
    > Při běhu programu se jméno proměnné vždy nahradí adresou, na které je uložena
    > hodnota proměnné
    Ve skutečnosti se adresou nahradí jméno každého slova, nikoliv jen proměnné. Navíc to není adresa, na níž je hodnota uložena, ale adresa, na níž je, zjednodušeně řečeno, uloženo slovo, které tuto hodnotu obsahuje ve svém těle.

    Ještě k minulému dílu:
    > Uvnitř smyčky je možné používat speciální klíčové slovo i,
    > pomocí kterého...
    Ve Forthu žádná speciální klíčová slova nejsou, což je právě jedno z jeho základních paradigmat. Slovo i je navíc ukázkou jednoho z nejtriviálnějších slov jazyka, které může být implementováno např. takto:

    : i r> r@ swap >r ;
  • 15. 2. 2005 15:05

    Pavel Tišnovský
    Zlatý podporovatel
    Ad adresa: toto vsak plati pouze pro Forthy, ktere provadeji klasicke neprime provadeni, tj. program se ve skutecnosti sklada pouze z neprimych adres. Moderni Forthy (moderni ve smyslu casovem, ne nutne kvalitativnim :-) vetsinou primo provadi preklad a tak jedina slova, ke kterym je zapotrebi znat adresu, je prave promenna.

    Ad smycky: nespravne jsem se vyjadril; v te vete jsem pouze chtel vyjadrit, ze se opravdu jedna o "specialni" slovo, nikoli o pouhe oznaceni indexu (na prvni pohled to tak vypada). To "klicove" samozrejme neplati, dekuji za upozorneni.
  • 15. 2. 2005 17:51

    Marek Brunda (neregistrovaný)
    Máte pravdu, že spousta dnešních F. kompiluje přímo do strojového kódu, nicméně i tak se kromě primitiv, jejichž sémantika se zakompiluje pomocí několika málo instrukcí, musí často kompilovat i adresy slov, třeba za instrukcí CALL. Nešlo mi o to, že by tvrzení nebylo správné, ale o to, že to svádí k domněnce, že proměnná má jakoby nějaké zvláštní postavení oproti jiným slovům. Navíc, většina kompilátorů jakýchkoliv jazyků kompiluje adresu proměnné.

    Abych jen nešťoural, Váš seriál se mi líbí a jsem rád, že se tu něco o tomto zajímavém jazyku objevilo:)
  • 16. 2. 2005 8:24

    Pavel Tišnovský
    Zlatý podporovatel
    Me to stourani nevadi :-), naopak mam radost, ze jste me uporornil na nepresnosti, kterych jsem se pri psani dopustil.