Hirdetés

2024. április 26., péntek

Gyorskeresés

Hozzászólások

(#1) robohw


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

(#2) robohw


robohw
aktív tag

Készítettem hozzá egy tutorialt, ami pdf formában letölthető, példaprogramokkal együtt innen:

[link]

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

(#3) hiperFizikus válasza robohw (#1) üzenetére


hiperFizikus
aktív tag

Miből gondolod, hogy a kezdők élvezni fogják az agynyuvasztó gépi kódodat?
Inkább arról kellene értekeznünk, hogy egy magasszintű programnyelvnek milyen elemeket kellene tartalmaznia! - pl. modulárisnak kellene lennie. :D

A gázt is és a féket is egyszerre nyomni nem menő dolog !

(#4) #25954560 válasza hiperFizikus (#3) üzenetére


#25954560
törölt tag

nem feltetlen az elvezetrol szol :)
vannak a programozasnak olyan teruletei, ahol hasznos lenne tudni, hogy mi is tortenik amikor futtatsz egy kodot. minel magasabb szintu a nyelv, annal produktivabb lehet, de annal kevesbe optimalizalhato a programozo altal es annal jobban el van rejtve a hardver.
na ebbe a resbe szerintem ez pont jo lehet.

(#5) robohw válasza hiperFizikus (#3) üzenetére


robohw
aktív tag

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

(#6) robohw


robohw
aktív tag

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

(#7) robohw


robohw
aktív tag

A nyelv immár 10 utasítást ismer.
Részletek később...

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

(#8) hiperFizikus válasza #25954560 (#4) üzenetére


hiperFizikus
aktív tag

Szia!
Jól van, igazad van, de egy 50000 db soros programot összehozni gépi kódban legalábbis drága lenne, csak szoftvercégeknek jó. De mivel ez a topik nem csak egy féle új programnyelvre szorítkozik, ezért párhuzamosan megbeszélhetjük ezt a gépi kódosat is és a valamilyen új magas szintű programnyelvet is, hisszen mind a két téma érdekes.

Szerintem a magasszintű programnyelvnek modulárisnak kell lennie és tartalmazhat Goto-t is.
:)

A gázt is és a féket is egyszerre nyomni nem menő dolog !

(#9) robohw


robohw
aktív tag

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

(#10) hiperFizikus


hiperFizikus
aktív tag

Ez egy elhagyott topik 2018-09-16 01:51:10 , nem találtam más alkalmas topikot és új topikot nyitni neki korai, ezért bátorkodom itt megkérdezni : :((

Fejlesztek egy új program nyelvet, ami előrehaladott állapotban van . Biztosan bennetek is felmerült valamikor, hogy új program nyelvet csináltok, ezért kíváncsi lennék a véleményetekre ? :D

Most abban az állapotban van, hogy titkos, majdnem készen van, terjedelmes, valakinek le kellene fordítania üzleti változatra, szerintetek vásárolnák ? ;]

A gázt is és a féket is egyszerre nyomni nem menő dolog !

(#11) Hiftu válasza hiperFizikus (#10) üzenetére


Hiftu
senior tag

Nem.
Kismillió programnyelv közül lehet választani.
Miért adna bárki is pénzt egy újra, amihez fejlesztőt sem lehet találni.
Még a multik is a fejlesztés során szabadszoftver irányába mennek (abból használnak, de nem olyat készítenek), mert ott több ingyenes programot tudnak felmarkolni.

[ Szerkesztve ]

Tessék mondani, lehet itt hazudni? - Kaszt: Decker, Faj: Troll, Működési Terület: Prohardver

(#12) hiperFizikus válasza Hiftu (#11) üzenetére


hiperFizikus
aktív tag

Igazad lehet .

Egy dilemmával küzdök:
hogy a programnyelvem egyes eszközeit sokba kivariáljam vagy inkább elégedjek meg e eszközök kevés variációjával ? :F

A gázt is és a féket is egyszerre nyomni nem menő dolog !

Copyright © 2000-2024 PROHARDVER Informatikai Kft.