A Kite programozási nyelv

Típusok, típuskonstrukciók



Típusszerkezet

A nyelv tartalmaz beépített elemi típusokat. Minden változó típusa az aktuális értékétől függ, nem lehet explicit megadni a változó típusát. Minden típus immutable a listát kivéve. Minden osztály a System.object osztályból származik.

Elemi típusok

Szám típusok

A nyelv megkülönbözteti az egész számokat és a valósakat. A egész számok előjeles 32 bitesek. A valós számok megjelenítés szempontjából fix 6 tizedesjeggyel rendelkeznek, ám a nyelv nagyobb pontossággal számol. A szokásos műveletek használhatók (összeadás, szorzás...).
Metódusai:

print kiírás std. outputra
string stringgé alakítás
range(to, step) visszaad egy listát, ami az aktuális számtól to értékig tartalmazza a számokat, opcionális step lépésközzel
random 0-tól az aktuális szám értékéig választ egy véletlenszámot

String típus

A nyelv nem tesz különbséget a karakter és a karakterlánc közt, tehát 1 karakter egy 1 karakterből álló stringnek felel meg.
Metódusai:

+ konkatenáció
* sokszorosítás
[x] karakter az x. helyen
number számra konvertálás
print kiírás std. outputra
find(string, start) string 1. előfordulási pozícióját keresi meg a start pozíciótól (-1 -et ad vissza, ha nem talált)
substr(start, length) visszaadja a start pozíciótól length hosszúságú stringet
rfind(string, start) ugyanaz, mint a find, csak itt a string végétől nézi
replace(tofind, replacement, start) tofind részt replacement résszel helyettesíti az opcionális start résztől kezdve
length visszaadja a string hosszát
lower visszaadja a stringet csupa kisbetűvel
upper visszaadja a stringet csupa nagybetűvel

Logikai típus

A logikai típusok értéke csak a true vagy a false értéket veheti fel.
Metódusai:

print kiírás std. outputra
number konvertálás számmá (0=false, 1=true)
string konvertálás stringgé

Típuskonstrukciók

Lista típus

A nyelv a listát alkalmazza, mint tömb/felsorolási típust. A lista elemeit vesszővel kell elválasztani, és [ ] jelek közé kell tenni. Ez az egyetlen beépített típus, ami nem immutable. Az elemei tetszőlegesek lehetnek, akár egy listán belül is. Így akár több dimenziós listákat is készíthetünk (lista eleme egy másik lista). Az elemekre egész számú indexekkel hivatkozhatunk (mint a tömböknél), az első elem indexe 0. A listákat konkatenálhatjuk (+), vehetjük a metszetét 2 listának (and) és kivonhatunk egymásból 2 listát (/);
Metódusai:

print kiírás std. outputra
sum listában szereplő számok összege
string konvertálás stringgé
product elemek produktuma (pl: elem*1, elem*2, elem*3, ...)
length elemek száma

Típuskonverziók

A nyelv explicit típuskonverziót támogat, amelyeket a különböző típusok beépített metódusaival tudunk alkalmazni.

Változók, konstansok

A nyelvben nincs lehetőség konstans definiálásra.
Változókat a property kulcsszóval deklarálhatunk, bár ez opcionális. A programban akárhol bevezethetünk új változókat, nincs külön deklarációs rész. A változók élettartama az a blokk, amiben bevezettük.

Kifejezések, operátorok

Kidolgozásra vár.