miert Forth?

Joco Paulin jpaulin at freemail.hu
Tue Mar 18 08:27:58 CET 2003


Hali!

> Nem akarom megismerni, egyelore nincs ra szuksegem. Csak kivancsi voltam,
> de azt hiszem nagyjabol megkaptam a magyarazatot.

Ha masert nem, azert erdemes, mert kesobb, ha olyan feladatod van, elo tudod
venni.

> RI soraibol nekem az derult ki, hogy az emberi oldal miatt. Konnyebb a
> fejlesztes soran probalgatni.

Nem csak. A dolog arrol szol, hogy a Forth egy "gepkozeli, magas szintu
nyelv"
Konnyu benne a bitbuhera, de emberkozeli modon kommunikalhatsz vele.

> Vannak fejleszto eszkozok, amelyekkel gyors a munka, de pocsek az
eredmeny,
> viszont ha mukodik es fizetnek erte, akkor sokszor nem erdemes tovabb
> foglalkozni vele.

Igen. Ezzel hosszabb a fejlesztes ideje, mint mas magas szintu nyelvekkel,
de viszonylag jo az eredmeny.

> Van iranyitastechnikara optimalizalt nyelv?

Igen, a Forth. Errol beszelunk eleitol fogva.

> Egy ilyen temarol minimum 10 perc egy rovid beszelgetes, ez kb. 700 Ft
> csucsidoben. Az email meg szinte ingyen.

Igaz, csak ha az ember nem tudja, hol kezdje, akkor a keves erdemi
erdeklodovel gyorsan dulore lehet jutni.
Szova, ha valakit nem erdekel, visszaesoen PgDn, egyebkent rovid ismertetes:

A Forth harom fo sajatossaggal bir, es egy negyedik, szerintem technikai
trukkel.
1, un. Screen technologia.
A progi nem egy linearis csatakigyo, mint sok mas nyelvben, hanem 64
karakter* 16 soros, un. screenekbol all.
A filozofia: ennyit tud a moho sapiens egyszerre agyilag kb atlatni.
Ennyiben tessek hat egy reszfeladatot max leirni, ha nem fer bele, tessek
tovabb bontani meg reszebb reszfeladatokra.
Egy screen legyen egy logikai egyseg.
Persze, parancssorban is definialhatsz, de ez a fejlesztes ideje (ez a
negyedik trukk). Osztan az egeszet ugyis atirod screenekbe.
2, Integer aritmetika
Az iranyitastechnikai feladatok jelentos resze igen szepen leirhato egesz
szamokkal. Ha azt hiszed, hogy nem, vezess be a feladat idejere "sajat
koordinatarendszert". Hosszu tavon megeri. Vedd bele azt is, hogy itt nem
feltetlenul kell a 10e-10 pontossag.
Ekkor a szamitasok jelentos resze egyszerusodik es gyorsul. (nincs
bittilitoli a karakterisztikakkal es mantisszakkal, normalizalas ide-oda)
Van ket byteos és negy byteos muveletsor. Ahhoz, hogy a csonkulasok
ritkabbak legyenek, bevezettek a */ muveletet, ahol pl. ket 16 bites szam
szorzatat 32 biten taroljak, ahogy illik, majd elosztva a harmadik szammal,
ismet valami 16 bit felet kaphatsz. Hibanyilvantartas nincs, ha tul ill.
alulcsordulas veszelye fennall, rendezd ezt le Te a programban.
Persze, szinte minden kezdo azzal tolti elso FORTH praxisat, hogy boldogan
megirja a lebegopontos muveleteket pl. a pi-vel valo szorzashoz.
Olyan programozok viszont, akik megertettek a dolog filozofiajat,
megkerestek azt a ket integert, amelyek egyikevel megszorozva az inputot,
majd a szorzatot elosztva a masikkal, baromi pontosan kozelited a pi-vel
valo szorzast.
A ket muvelet idoszukseglete nem azonos. Futasidoben meg nem mindegy.
3, RPN, Reverse Polish Notation, forditott, "lengyel" aritmetika, postfix
notation, stack
Akinek volt regen HP zsebkalkulatora, abban igen elenken el, hogy ezeken nem
volt egyenloseg jel.
Itt ugyanis a muveletvegzes nem az altalunk megszokott modon ment (3+2=5),
hanem ugy, hogy 3 2 +
A beirt szamok a stackre kerulnek, a beirt muveleti jelek a stack felsobb
regioiban tekergo adatok kozt vegeznek muveletet, es az eredmenyt a stack
tetejere teszik. Hatranya, hogy oda kell figyelni, milyen adatot milyen
sorrendben kotorsz elo illetve kersz be a periferiarol es teszed a stackre,
elonye, hogy a vegzes baromi gyors, mert nem kell tarolorekeszek kozott
bogaraszni, hogy a milyen valtozot milyen memoriacimrol kell elovenni.
Persze, az ember megizzad, mire kifejt egy szaftos zarojeles kifejezest,
node ez a fejlesztes idejebol megy, es nem a gep bogarassza futasidoben.

Ezen fentiek barmelyike elegendo ahhoz, hogy egy kobor erdeklodo visitva
menekuljon a helyszinrol, ugyanakkor az altaluk osszehozott eredmeny
(persze, ha megertetted a dolog filozofiajat, es a programodat is ezek
menten tervezed meg) igen tetszetos lehet. Kicsi, kompakt, kidobasra itelt
286-ososkon elmegy, floppyrol.

Udv:
Joco





More information about the Elektro mailing list