( uid_21365 | 2020. 12. 28., h – 22:19 )

Nem is olyan rossz dolog, hogy úgy döntöttem, nem publikálom a nyelvet amíg kész nincs a doksi fordítása...

Mert ezzel is láthatóan úgy vagyok mint a regényeimmel: mikor már azt mondom: "kész", egy idő után kiderül hogy még ezt-azt beleírhatok.

Most itt a programnyelvemnél például, nem hazudtam, tényleg kész van, nem kezdtem újra... de ettől még KIEGÉSZÍTETTEM egy remek feature-vel, ami NEM töri meg a kompatibilitást. Egyszerűen arról van szó, hogy alapesetben amikor indexelek egy stringet (vagy akármit...) akkor a nyelvem nem végez indexhatárellenőrzést. Az lassítaná a futást ugye, és a legtöbbször felesleges is. Különben is itt a „filozófia” az, hogy vigyázzon a programozó, a programnyelv (interpreter) dolga a progi minél gyorsabb lefuttatása és nem az okoskodás.

Igenám, de aztán eszembe jutott valami. Néha az index ellenőrzése mégiscsak szükséges, és bár ez eddig is megoldható volt a nyelvemben, de ha az eddig rendelkezésre álló eszközökkel végzem, az lassú. Mármint a natív kódhoz képest lassú...

Szóval belevettem a safe kulcsszót. Minden utasítást ami indexeléssel kapcsolatos (vagy legalábbis majdnem mindet) ki lehet bővíteni ezzel. Ekkor ellenőrzi az indexhatárt... De, és itt jön a nagy poén, ekkor nem az történik hogy túllépésnél abortál, hanem inkább olyasmi történik ami a „kivételdobás”-nak felel meg leginkább, ha hasonlatot keresek rá!

Tehát:

mystring[@myindex]

a string megfelelő elemét a stack tetejére helyezi. Nem vizsgálja, a myindex értéke túllépi-e a string aktuális hosszát.

safe mystring[@myindex] §safelabel

Ez ugyanúgy a stack tetejére helyezi a string megfelelő elemét, DE előtte megvizsgálja az indexet. Ha úgy találja az index értéke invalid, akkor mégse helyez a stack tetejére semmit, hanem elugrik a §safelabel címkére.

Azaz erre a helyre ami így van megjelölve:

safelabel:

Természetesen a címke neve nem muszáj hogy safelabel legyen, lehet akármi. A paragrafusjel szerepe csak annyi hogy a Peri nyelvben minden címke amikor nem megjelöl egy helyet hanem hivatkozunk rá, e prefixummal kell bevezettessék.

Rengeteg helyen használható a safe kulcsszó a nyelvemben, de nem untatlak benneteket a többi lehetőség ismertetésével. Csak azt akartam leírni, hogy szóval VAN lehetőség a biztonságos programozásra (is) a nyelvemben immár! És ez a safe megoldás messze gyorsabb mint ha a Peri alapeszközeivel vizsgálgatnánk az ilyesmit, hiszen natív sebességgel fut az indexellenőrzés, a kód is áttekinthetőbb... Szóval mélységesen és szupermagasan elégedett vagyok most magammal!

Komolyan, lehet hogy 2020 a Covid miatt sokaknak egy szörnyű év volt, de számomra a legpompásabb sikerévek egyike, rengeteg szempontból!