This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
abap2015 [2015/10/02 17:06] deva |
abap2015 [2016/02/17 09:48] deva removed |
||
---|---|---|---|
Line 35: | Line 35: | ||
* az angol abc kis és nagybetűi | * az angol abc kis és nagybetűi | ||
* számjegyek (0-9) | * számjegyek (0-9) | ||
- | * ():<>=_,. | + | * ''():<>=_,.'' |
* szóköz, tab, sorvége | * szóköz, tab, sorvége | ||
Line 43: | Line 43: | ||
=== Azonosítók === | === Azonosítók === | ||
- | A változók nevei, illetve a program neve az angol ábécé kisbetűiből, számjegyekből és _ jelből állhatnak, és betűvel kell kezdődniük. | + | A változók nevei, illetve a program neve az angol ábécé kisbetűiből, számjegyekből és ''_'' jelből állhatnak, és betűvel kell kezdődniük. |
=== Típusok === | === Típusok === | ||
- | * I: négy bájtos, előjel nélküli egészként kell megvalósítani; literáljai számjegyekből állnak és nincs előttük előjel | + | * ''I'': négy bájtos, előjel nélküli egészként kell megvalósítani; literáljai számjegyekből állnak és nincs előttük előjel |
- | * B: egy bájton kell ábrázolni, literáljai a FALSE és a TRUE | + | * ''B'': egy bájton kell ábrázolni, literáljai a ''FALSE'' és a ''TRUE'' |
=== Megjegyzések === | === Megjegyzések === | ||
- | A sor elején álló * karakterektől kezdve a sor végéig. Megjegyzések a program tetszőleges pontján előfordulhatnak, a fordítást és a keletkező programkódot nem befolyásolják. | + | A sor elején álló ''*'' karakterektől kezdve a sor végéig. Megjegyzések a program tetszőleges pontján előfordulhatnak, a fordítást és a keletkező programkódot nem befolyásolják. |
=== A program felépítése === | === A program felépítése === | ||
- | A program szignatúrából, deklarációs részből és törzsből. A szignatúra tartalma: PROGRAM név ., ahol a név tetszőleges azonosító. A deklarációs részt DATA: vezeti be. A deklarációs rész nem kötelező, de ha van, akkor legalább egy változódeklarációt tartalamaz. A törzs utasításokat tartalamaz, de lehet üres is. | + | A program szignatúrából, deklarációs részből és törzsből. A szignatúra tartalma: ''PROGRAM'' név ''.'', ahol a név tetszőleges azonosító. A deklarációs részt ''DATA:'' vezeti be. A deklarációs rész nem kötelező, de ha van, akkor legalább egy változódeklarációt tartalamaz. A törzs utasításokat tartalamaz, de lehet üres is. |
== Változódeklarációk == | == Változódeklarációk == | ||
- | Minden változót név TYPE típus alakban, egy vesszőkkel elválasztott listában kell deklarálni, minden változóhoz külön feltüntetve a típusát | + | Minden változót név ''TYPE'' típus alakban, egy vesszőkkel elválasztott listában kell deklarálni, minden változóhoz külön feltüntetve a típusát |
== Kifejezések == | == Kifejezések == | ||
- | * I típusú kifejezések: számliterálok, I típusú változók. | + | * ''I'' típusú kifejezések: számliterálok, ''I'' típusú változók. |
- | * B típusú kifejezések: TRUE és FALSE, B típusú változók, két I típusú kifejezésből az = (egyenlőség), < (kisebb), > (nagyobb) infix operátorral, valamint az ezekből AND (konjunkció), OR (diszjunkció) infix és a NOT (negáció) prefix operátorral és zárójelekkel felépített kifejezések. | + | * ''B'' típusú kifejezések: ''TRUE'' és ''FALSE'', ''B'' típusú változók, két ''I'' típusú kifejezésből az ''='' (egyenlőség), ''<'' (kisebb), ''>'' (nagyobb) infix operátorral, valamint az ezekből ''AND'' (konjunkció), ''OR'' (diszjunkció) infix és a ''NOT'' (negáció) prefix operátorral és zárójelekkel felépített kifejezések. |
* Az infix operátorok mind balasszociatívak és a precedenciájuk növevő sorrendben a következő: | * Az infix operátorok mind balasszociatívak és a precedenciájuk növevő sorrendben a következő: | ||
- | * OR | + | * ''OR'' |
- | * AND | + | * ''AND'' |
- | * = | + | * ''='' |
- | * < > | + | * ''<'' ''>'' |
== Utasítások == | == Utasítások == | ||
- | * Értékadás: MOVE kifejezés TO változó . alakú. A változó és a kifejezés típusa csak azonos lehet. | + | * Értékadás: ''MOVE'' kifejezés ''TO'' változó ''.'' alakú. A változó és a kifejezés típusa csak azonos lehet. |
- | * Olvasás: A READ TO változó . utasítás a megadott változóba olvas be egy megfelelő típusú értéket a standard bemenetről. (Megvalósítása: meg kell hívni a be eljárást, amit a 4. beadandó feladathoz mellékelt C fájl tartalmaz. A beolvasott érték az eax (logikai típus esetén az al) regiszterben lesz.) | + | * Olvasás: A ''READ TO'' változó ''.'' utasítás a megadott változóba olvas be egy megfelelő típusú értéket a standard bemenetről. (Megvalósítása: meg kell hívni a be eljárást, amit a 4. beadandó feladathoz mellékelt C fájl tartalmaz. A beolvasott érték az eax (logikai típus esetén az al) regiszterben lesz.) |
- | * Írás: A WRITE utasítás a megadott kifejezés értékét a képernyőre írja (és egy sortöréssel fejezi be). (Megvalósítása: meg kell hívni a ki eljárást, amit a 4. beadandó feladathoz mellékelt C fájl tartalmaz. Paraméterként a kiírandó értéket (mindkét esetben 4 bájtot) kell a verembe tenni.) | + | * Írás: A ''WRITE'' utasítás ''.'' a megadott kifejezés értékét a képernyőre írja (és egy sortöréssel fejezi be). (Megvalósítása: meg kell hívni a ki eljárást, amit a 4. beadandó feladathoz mellékelt C fájl tartalmaz. Paraméterként a kiírandó értéket (mindkét esetben 4 bájtot) kell a verembe tenni.) |
* Aritmetika: | * Aritmetika: | ||
- | * ADD kifejezés TO változó . | + | * ''ADD'' kifejezés ''TO'' változó ''.'' |
- | * SUBTRACT kifejezés FROM változó . | + | * ''SUBTRACT'' kifejezés ''FROM'' változó ''.'' |
- | * MULTIPLY változó BY kifejezés . | + | * ''MULTIPLY'' változó ''BY'' kifejezés ''.'' |
- | * DIVIDE változó BY kifejezés . | + | * ''DIVIDE'' változó ''BY'' kifejezés ''.'' |
- | * MOD változó BY kifejezés TO változó . | + | * ''MOD'' változó ''BY'' kifejezés ''TO'' változó ''.'' |
- | * Ciklus: WHILE feltétel . utasítások ENDWHILE. | + | * Ciklus: ''WHILE'' feltétel ''.'' utasítások ''ENDWHILE'' ''.'' |
* A feltétel logikai kifejezés, és a ciklus belsejében legalább egy utasításnak kell lennie. A megszokott módon, elöltesztelős ciklusként működik. | * A feltétel logikai kifejezés, és a ciklus belsejében legalább egy utasításnak kell lennie. A megszokott módon, elöltesztelős ciklusként működik. | ||
* Elágazás: | * Elágazás: | ||
- | * IF feltétel . utasítások ENDIF. | + | * ''IF'' feltétel ''.'' utasítások ''ENDIF'' ''.'' |
- | * IF feltétel . utasítások ELSE. utasitasok ENDIF. | + | * ''IF'' feltétel ''.'' utasítások ''ELSE'' ''.'' utasitasok ''ENDIF'' ''.'' |
* A feltétel logikai kifejezés, és az egyes ágakban legalább egy-egy utasítás van. A megszokott módon működik. | * A feltétel logikai kifejezés, és az egyes ágakban legalább egy-egy utasítás van. A megszokott módon működik. |