Welcome, Guest. Please login or register.


Author Topic: FORTH (Read 38355 times)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
FORTH
« on: 2013.March.30. 14:04:52 »
FORTH- nak is legyen sajat topikja magyarul is.
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: FORTH
« Reply #1 on: 2013.March.30. 14:07:12 »
Azt tudja valaki, hogy a FORTH- ban honnan jon ez az utasitas forma ? Es hogy miert kellett az assembly- t is hozza igazitani ?! Hihetetlen hogy 25 ev utan is tud lenni egy akkora kavaras, hogy a hajam az egnek all ...

Tehat hogy mi ez a "5, a, ld " sorrend ? Mire jo ez ? Vagy mit gyorsit ? Vagy kinek allt igy ra az agya ? Honnan jon ez ?
Z80 System

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: FORTH
« Reply #2 on: 2013.March.31. 09:06:58 »
Quote from: Z80System
Azt tudja valaki, hogy a FORTH- ban honnan jon ez az utasitas forma ? Es hogy miert kellett az assembly- t is hozza igazitani ?! Hihetetlen hogy 25 ev utan is tud lenni egy akkora kavaras, hogy a hajam az egnek all ...

Tehat hogy mi ez a "5, a, ld " sorrend ? Mire jo ez ? Vagy mit gyorsit ? Vagy kinek allt igy ra az agya ? Honnan jon ez ?

Egyszeru, a forth egy verem (stack) orientalt nyelv. Pl a klasszikus 5 + 3 az forth-ban 5 3 + Azaz, beteszed a verembe az 5-ot, majd a 3-at, a + meg osszeadja a verem tetejen levo ket szamot. Az assembly syntax-a ezzel van osszhangban, mivel az is forth implementacio vegulis: a parametereit benyomod a verembe eloszor, es utana jon csak hogy "ld" aminek az operandusai ott vannak a veremben mar.

A forth szepsege amugy az, hogy total egyszeru megis hatekony: a nyelvnek ugymond syntaxisa sincs igazan, un "szavakbol" (word) all, melyeket lehet definialni, az alap forth mag csak annyi kb hogy a word list-ben word-ot keres, amit definialtal, illetve stack-be probal szamokat (ami memoria cim is lehet) elhelyezni, ha nem talal wordlistben semmit az aktualis szora, akkor megprobalja annak tekinteni. A maga a + stb is ugy van definialva, valojaban nem arrol van szo, hogy a "forth mag" resze lenne. Igy a forth nagyon elemi szinten nezve hihetetlenul egyszeru, ellentetben pl BASIC-kel stb.

Pl gforth-ban amit Linux alol probalgatok, egy szo definicioja utolag is megvizsgalhato (see), ott pl latszik, hogy a + az valojaban egy definialt forth word, aminek definicioja egy assembly nyelvu reszlet, ami pont azt csinalja, hogy a verem tetejen levo ket szamot osszead (kiveve azokat), majd az eredmenyt szinten a verembe helyezi el.
« Last Edit: 2013.March.31. 09:44:02 by lgb »

Offline Lacika

  • EP addict
  • *
  • Posts: 3218
  • Country: hu
    • http://www.ep128.hu
Re: FORTH
« Reply #3 on: 2013.March.31. 09:35:35 »
Azt tudja valaki, hogy a fig-Forth-ban hogy működik a file-kezelés?

Offline Tuby128

  • EP addict
  • *
  • Posts: 1487
  • Country: hu
Re: FORTH
« Reply #4 on: 2013.March.31. 11:44:49 »
Pont most ismerkedem egy nagyon hasonló programnyelvvel, ahol a verem (STACK) 1. elemét ACCU1-nek, a 2. elemét ACCU2-nek hívják.
Az összeadás úgy működik, hogy:
L 12   - (LOAD) Töltsd a 12-őt az ACCU1-be (ACCU1 régi tartalma egyúttal ACCU2-be másolódik)
L 23  - Töltsd a 23-at az ACCU1-be (ACCU1 régi tartalma egyúttal ACCU2-be másolódik, tehát ACCU2 most 12 lesz)
i+   - Végezz integer összeadást ACCU1 és ACCU2 között, majd az eredményt tárold el ACCU1-ben
S "result"  - (STORE) Tárold el ACCU1-ben lévő értéket a "result" nevű változóba

Vajon a Forth is így működik?

Offline Tuby128

  • EP addict
  • *
  • Posts: 1487
  • Country: hu
Re: FORTH
« Reply #5 on: 2013.March.31. 12:22:57 »
Ohh, valamit elfelejtettem. Az általam elmített esetben a verem nem olyan verem, hogy "megtelik", tehát nem kell üríteni. Itt inkább arról van szó, hogy új elem esetén az egész sor átmásolódik a következő helyre, a legutolsó pedig "kiesik". Egyébként nálam 4db ACCU van, de még nem jöttem rá milyen utasítás használja az ACCU3-at és 4-et.
 Ha processzorszinten gondolkodom az ilyen típusú veremkezeléshez nem is kell a memóriában matatni, elég hozzá néhány regiszter, ami a megfelelő módon működik. (Természetesen a feldolgozandó adatokat a memóriából vesszük).
  Valahol mintha azt olvastam volna, hogy az x86 matematikai társprocesszora (amit később a 386DX, 486DX majd Pentium prociknál be is integrálták) is hasonló elven működik. Sőt mintha az MMX utasításkészlet is valahogy így dolgozna.

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: FORTH
« Reply #6 on: 2013.March.31. 13:07:31 »
Érdekes amiket írtok. Az jutott eszembe hogy akkor a gépi kódú nyelv miért nem forth jellegű? Vagy későn jött létre ez a nyelv, hogy már csak a math procikba építhettek be hasonlót?
Vigyázat! Szektás vagyok! :)

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: FORTH
« Reply #7 on: 2013.March.31. 13:08:07 »
Illetve azért a gépi kód is forth jellegű valamennyire persze...
Vigyázat! Szektás vagyok! :)

Offline Lacika

  • EP addict
  • *
  • Posts: 3218
  • Country: hu
    • http://www.ep128.hu
Re: FORTH
« Reply #8 on: 2013.April.01. 14:39:47 »
Ez vajon miért nem működik?

( Vangelis )
: PL
  DURATION PITCH 1 SOUND
;

: VANGELIS
  0 63 63 2 PHASE 0 -10 -10 4 PHASE
  0 -40 -40 20 PHASE 1 ENVELOPE
  160 LEFT 160 RIGHT
    54 6 PL 53 6 PL 53 12 PL
    54 6 PL 53 6 PL 53 12 PL
    54 6 PL 53 6 PL 53 12 PL
    61 24 PL
    61 6 PL 60 6 PL 58 12 PL
    58 6 PL 56 6 PL 54 12 PL
    54 6 PL 53 6 PL 51 36 PL
    53 6 PL 51 6 PL 51 12 PL
    53 6 PL 51 6 PL 51 12 PL
    53 6 PL 51 6 PL 51 12 PL
    60 24 PL
;

Offline Lacika

  • EP addict
  • *
  • Posts: 3218
  • Country: hu
    • http://www.ep128.hu
Re: FORTH
« Reply #9 on: 2023.April.18. 20:54:26 »
Van fantázia ebben a nyelvben.
Ez mondjuk még nem FORTH "mélyvíz" :-)

Offline Lacika

  • EP addict
  • *
  • Posts: 3218
  • Country: hu
    • http://www.ep128.hu
Re: FORTH
« Reply #10 on: 2023.April.19. 09:38:47 »
Két számolást meg lehet még "spórolni".
« Last Edit: 2023.April.19. 09:42:18 by Lacika »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14779
  • Country: hu
    • http://enterprise.iko.hu/
Re: FORTH
« Reply #11 on: 2023.April.19. 09:41:40 »
Jé egy ember aki képes volt Forth programot írni? :ds_icon_cheesygrin:
:smt038

Offline Tuby128

  • EP addict
  • *
  • Posts: 1487
  • Country: hu
Re: FORTH
« Reply #12 on: 2023.April.19. 15:59:37 »
Code: [Select]
  3 1 DO I
    650 1 DO

Egyik sorban így van a DO utána meg úgy. Ez nekem nem tetszik. Gondolom az elso DO az olyan mint a Basic-ben a FOR.
A másodiknál nem értem miért kell 650 a sor elejére.

Offline Lacika

  • EP addict
  • *
  • Posts: 3218
  • Country: hu
    • http://www.ep128.hu
Re: FORTH
« Reply #13 on: 2023.April.19. 19:18:58 »
Az I nem tartozik a DO, hoz, az már a következő utasítás :-)
Mindkettő számlálós ciklus, a lépésköz a ciklus végéből derül ki (LOOP - egyesével lépeget vagy +LOOP)

Offline gflorez

  • EP addict
  • *
  • Posts: 3615
  • Country: es
    • Támogató Támogató
Re: FORTH
« Reply #14 on: 2023.April.19. 19:25:18 »