Ez a nyelv amit most írok, lényegében maga a Furor, csak:
1. Átneveztem
2. Mindent ami nem abszolút létszükséglet legalább az elinduláshoz és az include állományok megemésztéséhez, kiszórtam külső libekbe
3. Néhány teljesen agyament szintaxist kicseréltem emberbarátabb akármikre (de ettől még elég fura maradt, csak hát azért mégis kissé jobb...)
4. Még sokkal jobb lett az interfész ami összekapcsolja a core-t a librarykban definiált cumókkal
5. Épp ma javítottam ki egy... na nem hibát, tudtam róla rég, de mondjuk hogy hiányosságot: eddig a finite loop-ok nem voltak használhatóak úgy, hogy a loop-ot tartalmazó függvényt rekurzívan meghívjuk a loop-on belül. Mostantól ez a korlátozás megszűnt. Igaz hogy ezzel eléggé agyonbonyolódott a ciklusváltozók kezelése a libraryban, mert mostantól nem a kód tokeneiben tárolódnak hanem egy veremtárban, de ez az én bajom és annyi baj legyen: készen van, jól működik, s nyelv szintaktikája semmit se változott, csak egy megkötéssel kevesebb!
6. Nem kompatibilis a Furorral, de nagyon könnyű átírni rá Furor programokat, mert csak kevés helyen kell változtatni a kódon.
7. LEHET benne OS-t írni! Csak felesleges. Igaz hogy volt régen ilyen tervem, de letettem róla. Túl nagy meló, ami azt jelenti hogy sok időt venne el a regényírástól.
8. Lassabb mint a Furor: a benchmarkok szerint nagy általánosságban kb 20-szor lassabb a natív kódnál, azaz durván kétszer lassabb mint a Furor (kevesebb mint kétszer...), ami azonban nagyon jó eredmény mert eredetileg úgy saccoltam hogy 25-ször lesz lassabb mint a natív kód. Ez a lassulás amiatt történt mert minden libekben van, s így a funkcióhívásoknál ugye a rendszerstack van matatva ami időbe telik. Cserébe azonban messze sokkal jobban személyre szabható mint a Furor.
Íme 2 példaprograny: ez a pí értékét számítja ki iterációval:
###sysinclude standard.uh
tick sto clock1
#d
0. sto p 1. sto n 1. sto s
3000000 {{ s+/- n++++ / sum p }}
4. prd p
tick @clock1 #g -
."idő = " print ." tick\n"
."Pí közelítés = " p #d printnl
end
{ „clock1” }
Ez meg a prímszámok mennyiségét számolja össze egy intervallumban, az Eratoszthenészi szita módszerét alkalmazva:
###sysinclude standard.uh
tick sto startingtick
#g 100000 sto MAX
@MAX mem !maximize sto primeNumbers
one count
2 0 sto#s primeNumbers
2 @MAX külső: {{ ,
@count {{
{{}}§külső {{}} primeNumbers[] !/ inv { {{<}}§külső }
}}
// {{}} gprintnl // A talált prímszám kiiratásához kommentezzük ki e sort
{{}} @count++ sto#s primeNumbers
}}
@primeNumbers inv mem
."Time : " tick @startingtick - print ." tick\n"
."Prímek száma = " @count printnl
end
{ „MAX” } { „startingtick” } { „primeNumbers” } { „count” }
Note: nem a te kedvedért írtam e választ, te nem érdemled meg, hanem a többieknek, az esetleges érdeklődőknek. Bár igaz, te is érdeklődő vagy, hiába is tagadod, különben nem enne a fene oda téged mindig a topikjaimba. De annyi baj legyen, kezdem úgy vélni, még mindig jobb ha vannak irigyeim meg ellenségeim, mintha egy szürke kis nímand lennék akire senki nem figyel.