A Jasmin programozási nyelv

Nyelv szerkezete

Karakterkészlet

Jasmin az ASCII karakterkészletet használja.

Általános szerkezet

A nyelv alacsony szintje miatt nincsenek összetett bonyolult utasítások. A forráskód állítások sorozata úgy, hogy egy sorban csak egy állítás van (új sor karakter választja el őket). Egy állítás a következő lehet:

Direktívák

A direktívák olyan állítások, amelyek a Java virtuális gépnek adnak meta információkat. Ezen állítások a nevükből és nulla vagy több paraméterből állnak a név után, amiket a szóköz választ el. A Jasminban található direktívák mindegyike a pont („.”) karakterrel kezdődik.

Utasítások

Az utasítások hasonlóan a direktívákhoz, a nevükből és nulla vagy több paraméterből állnak, amiket szóköz választ el egymástól. Jasmin a JVM operációkészletét használja utasításainak (ezekre később kitérünk)

Címke

A Jasmin címkéi a nevükből állnak, amit a „:” karakter zár le. Továbbá a nevek nem kezdődhetnek számmal és nem tartalmazhatják a következő karaktereket: { = : . „ - }.

A címkék csak metódusokban használhatók és abban lokálisnak számítanak.

Kommentek

A komment kezdetét a pontosvessző karakter jelöli és a sor végéig tart. Állhat más Állítások után vagy külön sorban. Fontos azonban, hogy a „;” előtt legyen szóköz vagy tabulátor, különben Állításnak értelmezi a fordító.

Számok és Stringek

A nyelv csak az egyszerű decimális és hexadecimális, ill. integer típusú számokat támogatja az egészek közül. A lebegőpontos számoknál nem támogatja a tudományos és az exponenciális felírást. Továbbá nincsenek karakterkódok.

A stringek felépítése a szokásos idézőjelek közötti szöveg, de nem támogat speciális karaktereket az új sor (\n) és a tabulátor (\t) kivételével.

Osztálynevek

A java osztálynevek írásának konvencióit használja azzal a különbséggel, hogy pontok helyett a „/” karaktert használja elválasztásra. Pl.: java.lang.String az itt java/lang/String lesz.

Típusleírók

Típusleírókat a metódusok paramétereinek és visszatérési értékének megadásánál használjuk. Ezek a következők lehetnek:

Metódusleírók

A metódusok a következő módon épülnek fel:

foo/baz/Myclass/myMethod(params)returnType

Ahol:

foo/baz/Myclass/ - az osztály, amihez a metódus tartozik

myMethod() - a metódus neve

params - a paraméterek típusleírói pontosvesszővel elválasztva

returnType - pedig a visszatérési érték típusleírója