JAZYK JAVA MINUS MINUS (J- -, JMM)

POPIS SYNTAXE JAZYKA JMM

V popise sytnaxe sú použite operátory:

Zdrojovy subor

    /* postupnost importov externych tried */
{ import meno_triedy native "JVM_meno" }
    /* postupnost definicii triedy */
{ class ( ε | public | abstract | final ) meno_triedy 
    [ extends meno_nadtriedy ]
    { implements meno_rozhrania }
'{'
    { 
        ( /* datovy clen */
          modifikator typ meno_dat_clena ';'
        | /* metoda */ 
          modifikator (typ|void) meno_metody '(' Parametre ')' ';'
        | modifikator (typ|void) meno_metody '(' Parametre ')' '{' prikazy '}'
        | constructor '(' Parametre ')' '{' prikazy '}'
        )
    }
'}'
}

Modifikator

( ε | public | protected | private )  ( ε | static | abstract | final | static final )

Parametre

( ε | typ  meno_parametra { ',' typ  meno_parametra } )

Typ

( int | double | meno_triedy )

Prikaz

/* deklaracia */
Typ meno_premennej { ',' meno_premennej } ';'

/* vyrazovy prikaz */
meno_premennej '=' vyraz ';'
datovy_clen '=' vyraz ';'
volanie_metody ';'

/* prikaz navratu */
return [ vyraz ] ';'

/* prikaz cyklu */
while '('  vyraz ')' prikaz

/* prikaz vetvenia */
if '(' vyraz ')' prikaz [ else prikaz ]

/* zlozeny prikaz */
'{' { prikaz } '}' 

Vyraz

/* Primarny */
meno_premennej
new meno_triedy '(' argumenty ')'   /*NovyObjekt*/
volanie_metody
datovy_clen
celociselna_konstanta
realnociselna konstanta
retazcova konstanta
'(' vyraz ')'

/* pretypovavanie */
meno_triedy '(' null ')'
meno_triedy '(' this ')'
int '(' vyraz ')'
double '(' vyraz ')'
long '(' vyraz ')'

/* vyraz s binarnym operatorom */
vyraz ( '+'  | '-' | '*'  | '/'  ) vyraz
vyraz ( '<'  | '>'  | '<=' | '>=' | '==' | '!=' ) vyraz
vyraz ( '||' | '&&' ) vyraz

Volanie metody

this '.' meno_metody '('  argumenty ')'
meno_triedy '.' meno_metody  '(' argumenty ')'
super  '('  argumenty ')'
vyraz '.' meno_metody  '(' argumenty ')'

Pristup k datovemu clenu

this '.' meno_dat_clena
meno_triedy '.' meno_dat_clena
vyraz '.' meno_dat_clena

Argumenty

( ε | vyraz { ',' vyraz } )

Porovnanie jazykov Java a JMM

  Jazyk JAVA Jazyk JMM
LEXIKÁLNA ŠTRUKTÚRA
komentár /* text */
/** text pre dokumentaciu */
// text do konca riadku


// text do konca riadku
Kľúčové slová abstract boolean break byte case cast catch char class const continue default do double else extends final finally float for future generic goto if implements import inner instanceof int interface long native new null operator outer package private protected public rest return short static super switch synchronized this throw throws transient try var void volatile while abstract class double else extends final for if implements import int long native new null private protected public return static super this void while constructor
Identifikátory postupnosť Unicode písmen a číslic začínajúca písmenom postupnosť písmen a číslic začínajúca písmenom
Literály Celočíselný literál (214, 066, 0xCAFE, …)
Reálnočíselný literál (3.14, 6.e+77, …)
Logický literál (true, false)
Znakový literál ('a',…)
Reťazcový literál ("Toto je retazec")
Celočíselný literál (214)
Reálnočíselný literál (3.14)
Logický literál (true, false)

Reťazcový literál (“Toto je retazec“)
Oddeľovače ( ) { } [ ] ; , . ( ) { } [ ] ; , .
Operátory = > < ! ~ ? :
== <= >= != && || ++ --
+ - * / & ^ % << >> >>>
+= -= *= /= &= |= ^= %= <<= >>= >>=
= < >
== <= >= != && ||
+ - * /
SYNTAKTICKÁ ŠTRUKTÚRA
Typy Primitívne : byte, short, int, long, float, double, char, boolean
Typ trieda : menotriedy
Typ rozhranie : menotriedy
Typ pole : typ [ ]
Primitívne: int, double, boolean
Typ trieda: menotriedy

Typ pole: typ [ ]
Príkazy ; /* prazdny */
vyraz ;

if ( vyraz ) prikaz
if (vyraz) prikaz else prikaz
switch (vyraz) { prikazy }
id: prikaz
case konstvyraz : prikaz
default : prikaz

while (vyraz) prikaz
do prikaz while (vyraz);
for (vyraz; vyraz; vyraz) prikaz
break ;
continue;
return;

return vyraz;
throw vyraz;
synchronized (vyraz) prikaz
try {prikazy} finally {prikazy}
try {prikazy} catch (argument) {prikazy}
; /* prazdny */
vyraz ;
if ( vyraz ) prikaz
if (vyraz) prikaz else prikaz
while (vyraz) prikaz

return;
return vyraz;
Výrazy /* tvorene operatormi */ tvorene operatormi:
=
< > == <= >= !=
&& ||
+ - * /