Új hozzászólás Aktív témák

  • robohw

    aktív tag

    Az elmúlt hetekben elkezdtem fejleszteni egy minimalista programozási nyelvet. A nyelv munkacíme egyébként JIZ (jump if zero).

    Ez egy mindössze nyolc utasításra épülő (Brainf*ck impulzus) gépközeli nyelv. A programnyelvet kiegészíti egy hardver emuláció, un. virtuális gép is, amelyen a megírt és lefordított programokat futtatni lehet. Maga a program egy értelmező, fordító és a VM (virtuális gép) all in one, egy .exe-be ágyazva.
    A progi beolvassa a forrásfájlt, majd fordítás után lefuttatja azt. A kimenet egy másik file lesz, amely lépésről lépésre tartalmazza a program futása során keletkezett memória és regiszter állapotokat, valahogy így:

    00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

    00 02 05 00 00 00 00 00 00 AD 00 AD 01 A1 3F EA 3E
    10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    ACCU: 02 IP: 08 Instr: ADD Output: 00000000
    ---------------------------------------------------| 1
    * 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

    00 02 05 00 00 00 00 00 00 AD 00 AD 01 A1 3F EA 3E
    10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    ACCU: 07 IP: 0A Instr: ADD Output: 00000000
    ---------------------------------------------------| 2
    * 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

    00 02 05 00 00 00 00 00 00 AD 00 AD 01 A1 3F EA 3E
    10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07

    ACCU: 07 IP: 0C Instr: STA Output: 00000111
    ---------------------------------------------------| 3
    * 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

    00 02 05 00 00 00 00 00 00 AD 00 AD 01 A1 3F EA 3E
    10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07

    ACCU: 07 IP: 0E Instr: JMP Output: 00000111
    ---------------------------------------------------| 4
    * 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

    00 02 05 00 00 00 00 00 00 AD 00 AD 01 A1 3F EA 3E
    10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07

    ACCU: 07 IP: 3E Instr: HLT Output: 00000111
    ---------------------------------------------------| 5

    A kérdésem az volna, hogy akadna-e érdeklődő a dologra, mert ha igen, akkor nem hagynám abba a fejlesztést. Én a magam részéről a dologgal elértem a célomat, ami egyébként az volt, hogy egy 8 utasításos programnyelvet alkossak, amelyben turing-teljes programok írhatók. Azonban a fejlesztés végén vettem észre - nem kifejezetten egyedül -, hogy a redukált utasításkészlet, a script jelleg és a VM egyszerűsége okán alkalmas lehet kezdők számára, egyfajta oktatási segédeszközként.

    Szóval?

    [ Szerkesztve ]

    My own programming language: http://www.robomax.online

Új hozzászólás Aktív témák