Hehe, sziasztok, rég jártam itt. Szóval, az elmúlt hetek (hónapok...) nem teltek el hiábavalóan! Programozást tekintve sem.
Tudjátok, hogy sokféle nyelvvel kísérleteztem eddig. Vagy túl lassúak lettek a céljaimhoz, vagy elfogadhatatlanul macerásnak ítéltem meg a használatukat. Nekem tulajdonképpen tetszett legelső nyelvem, a "mau", csak nem volt elég gyors, sem elég könnyen bővíthető.
Nos örömmel közölhetem, hogy végre-valahára sikerült megalkotnom egy olyat, ami eleget tesz mindegyik kívánalmamnak! A pí-számító tesztben kb 6-szor vagyok csak lassabb mint a natív kód, ami csodálatos eredmény! A kód is egészen tiszta, világos, átlátható (mármint, a programnyelvet megvalósító C++ kódról beszélek), és nagyon robusztus, ugyanis alig van benne más mint egy rakás belső ugrótábla. Tehát könnyedén bővíthető, s e jövőbeli bővítések nem fogják lassítani a már benne levő feature-öket. Ami viszont a legcsodálatosabb az egészben: gyakorlatilag a szintaxist illetően egy refaktorált mauról van szó! Nem pontosan ugyanaz a szintaktikája, szóval nem kompatibilis vele, de aki laikus ránéz, azonnal azt mondaná, hogy ez egy mau nyelv TERMÉSZETESEN!
Szóval hihetetlenül hasonló. És ez remek dolog nekem, mert SZÁMOMRA ez valahogy kényelmes, magától értetődő!
Gyakorlatilag tehát most az van, hogy mert a nyelvem kellően gyors, nem kell külön „gépi kódot” írnom, amire majd a magam nyelvét lefordítom, hanem ettől a nagy melótól megmenekülök, mert leendő virtuális gépem assembly nyelve maga ez az UPU lesz (a refaktorált mau), a „gépi kód” pedig nem más, mint ezen UPU nyelv tokenizált változata (azaz, a „virtuális bájtkód”).
Véleményem szerint bonyolultságban, „magas szintűségben” e nyelv valahol az assembly és a C nyelv (nem a C++ csak a sima C ) közt van, de közelebb a C-hez mint az assemblyhez.
Érdekességképpen a pí-számító progi leggyorsabb változata:
@k [<|>]
#d @p 0. @n 1. @s 1.
{| 3000000 @p+= @s+/- / @n++++ |}
@p *= 4.
#g @K [<|>] -= @k "Idő = " ? " tick" NL
#d "Pí közelítés : " @p ??
Természetesen, a nyelvem tud ugróutasításokat is, szubrutinhívásokat, címkéket kezelni is, beágyazott alprogramokat amiknek külön névterük van, meg van még jópár más jósága is, amikről csak amiatt nem lelkendezek itt hosszan mert úgyse érdekel a kutyát se, jól tudom, sőt, nagy eséllyel már az eddigiekért is megkapom majd a kiosztásomat hogy túl bő lére eresztve fecsegek.
Mindegy, lényegében csak azt akartam közölni, hogy ami a programnyelvet illető célomat illeti, azt ELÉRTEM. Most következik egyrészt a doksiírás, másrészt a következő cél: a virtuális gép. Ja, ahhoz is készen van már a grafikus motor...