Kod bajtowy – Wiki

Kod bajtowy

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji , szukaj

Kod bajtowy ( ang. bytecode) – nazwa reprezentacji kodu używanej przez maszyny wirtualne oraz przez niektóre kompilatory . Kod składa się z ciągu instrukcji (których kody operacji mają zwykle długość jednego bajta , stąd nazwa), które nie odpowiadają bezpośrednio instrukcjom procesora i mogą zawierać instrukcje wysokiego poziomu (takie jak np. stwórz obiekt klasy X, połącz dwa łańcuchy itd.), jednak w przeciwieństwie do kodu źródłowego wymagają analizy tylko pojedynczych poszczególnych operacji.

W przeciwieństwie do maszyn fizycznych, które prawie zawsze są maszynami rejestrowymi , większość (choć nie wszystkie) maszyn wirtualnych to maszyny stosowe .

Spis treści

[ edytuj ] Języki i środowiska wykorzystujące kod pośredni

Do najbardziej znanych języków programowania wykorzystujących kod pośredni zaliczyć można:

oraz urządzenia z system Android , które wykorzystują maszynę wirtualną Dalvik

[ edytuj ] Przykład

[ edytuj ] Perl

Przykład kodu bajtowego Perla , źródło:

sub hello
{
        print "Hello,  ",  $_[0],  "\n"
}

$x = "world!";
hello($x)

generuje kod pośredniczący funkcji głównej:

OP     (0x815e2b0) enter
COP    (0x8168838) nextstate
SVOP   (0x81c9e20) const [5] PV (0x8165508) "world!"
PADOP  (0x8168950) gvsv  GV (0x814ccd4) *x
BINOP  (0x8168810) sassign
COP    (0x81688b8) nextstate
OP     (0x815e270) pushmark
PADOP  (0x81697f8) gvsv  GV (0x814ccd4) *x
PADOP  (0x8168d80) gv  GV (0x814cce0) *hello
UNOP   (0x815e290) entersub [4]
LISTOP (0x8150990) leave [1]

oraz procedury hello:

COP    (0x8150958) nextstate
OP     (0x81508a8) pushmark
SVOP   (0x8150998) const [3] PV (0x81654f8) "Hello,  "
PADOP  (0x8168a00) aelemfast  GV (0x814cbc0) *_
SVOP   (0x8150900) const [4] PV (0x816551c) "\n"
LISTOP (0x8168a58) print
UNOP   (0x81687b0) leavesub [1]

[ edytuj ] Java

Przykład kodu w Javie, źródło:

  outer:
  for (int i = 2; i < 1000; i++) {
      for (int j = 2; j < i; j++) {
          if (i % j == 0)
              continue outer;
      }
      System.out.println (i);
  }

Kompilator Javy generuje następujący kod bajtowy:

  0:   iconst_2
  1:   istore_1
  2:   iload_1
  3:   sipush  1000
  6:   if_icmpge       44
  9:   iconst_2
  10:  istore_2
  11:  iload_2
  12:  iload_1
  13:  if_icmpge       31
  16:  iload_1
  17:  iload_2
  18:  irem
  19:  ifne    25
  22:  goto    38
  25:  iinc    2,  1
  28:  goto    11
  31:  getstatic       #84; //Field java/lang/System.out:Ljava/io/PrintStream;
  34:  iload_1
  35:  invokevirtual   #85; //Method java/io/PrintStream.println:(I)V
  38:  iinc    1,  1
  41:  goto    2
  44:  return


WSA oddalił skargę na decyzję KRRiT ws. mutipleksu dla TV Trwam
Wojewódzki Sąd Administracyjny w Warszawie oddalił skargę fundacji o. Tadeusza Rydzyka Lux Veritatis na odmowną decyzję KRRiT dotyczącą miejsca na multipleksie naziemnej telewizji cyfrowej dla TV Trwam. Fundacja zapowiada skargę kasacyjną do NSA.



WSA oddalił skargę na decyzję KRRiT ws. mutipleksu dla TV Trwam
Wojewódzki Sąd Administracyjny w Warszawie oddalił skargę fundacji o. Tadeusza Rydzyka Lux Veritatis na odmowną decyzję KRRiT dotyczącą miejsca na multipleksie naziemnej telewizji cyfrowej dla TV Trwam. Fundacja zapowiada skargę kasacyjną do NSA.



Zatrzymano osobę wynoszącą tajne dokumenty z Watykanu
Żandarmeria watykańska ujęła osobę podejrzaną o przekazywanie mediom tajnych dokumentów Sekretariatu Stanu oraz prywatnej kancelarii papieża.



Sikorski o filozofii PiS: Dostać lanie i uważać się za zwycięzcę
Filozofia PiS, także w dziedzinie polityki zagranicznej, to: rzucić się na olbrzyma, dostać lanie, a potem uważać się za zwycięzcę moralnego - mówił szef MSZ Radosław Sikorski na piątkowej Radzie Krajowej PO.



Sondaż: Polacy sceptycznie o bojkocie Euro na Ukrainie
Ponad połowa Polaków sceptycznie odnosi się do idei politycznego bojkotu Euro 2012 na Ukrainie. Tak wynika z sondażu przeprowadzonego przez Centrum Badania Opinii Społecznej.



Home Page , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,