• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Kod bajtowy Javy



    Podstrony: 1 [2] [3] [4] [5]
    Przeczytaj także...
    Perl – interpretowany język programowania autorstwa Larry’ego Walla początkowo przeznaczony głównie do pracy z danymi tekstowymi, obecnie używany do wielu innych zastosowań. Wzorowany na takich językach jak C, skryptowe: sed, awk i sh oraz na wielu innych.Adobe ColdFusion – pierwsza i najczęściej spotykana implementacja języka programowania ColdFusion Markup Language (CFML), który jest używany w tworzeniu dynamicznie generowanych stron internetowych. Początkowo był to produkt firmy Allaire, w 2001 roku firma ta została zakupiona przez firmę Macromedia, która została w 2005 roku włączona do korporacji Adobe Systems. ColdFusion bazuje na specyfikacji języka ECMAScript, ale nie jest z nią w pełni zgodny.

    Kod bajtowy Javy – lista instrukcji do wykonania przez wirtualną maszynę Javy (JVM). Każdy kod operacji kodu bajtowego ma jeden bajt długości, chociaż niektóre kody operacji wymagają parametrów, co sprawia, że mamy dużo wielobajtowych instrukcji. Nigdy nie użyto wszystkich możliwych 256 kodów operacyjnych.

    Związek z językiem Java[ | edytuj kod]

    Programista języka Java w rzeczywistości nie musi wiedzieć, jak działa kod bajtowy Javy. Jednak w piśmie IBM developerWorks zasugerowano: „Znajomość kodu bajtowego Javy pomaga programiście tak, jak znajomość asemblera pomaga programistom języków C i C++”.

    Przyrostek (sufiks) – w językoznawstwie jest to każdy fragment wyrazu (jego morfem), o ile jest dodany po jego rdzeniu (czyli podstawie słowotwórczej) i jednocześnie ma własności słowotwórcze (czyli nie jest końcówką fleksyjną, przy czym rozróżnienie na "sufiks" jako element słowotwórczy i "końcówkę" jako wykładnik fleksyjny typowe jest wyłącznie dla polonistyki i slawistyki, a nie jest stosowane w innych filologiach, stąd na przykład w angielskiej i niemieckiej wersji tego artykułu "sufiks" jest egzemplifikowany w pierwszym rzędzie jako wykładnik deklinacyjny). Danemu wyrazowi może towarzyszyć jeden sufiks, kilka lub żaden.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.

    Instrukcje[ | edytuj kod]

    Każdy bajt może mieć 256 różnych wartości. Spośród nich w 0x00 przez 0xca, 0xfe, i 0xff są przypisane wartości. 0xba jest nieużywany z powodów historycznych. 0xca jest zarezerwowany jako instrukcja przerwania dla debuggerów i nie jest używany w języku. Podobnie 0xfe i 0xff nie są używane, gdyż zarezerwowane są do wewnętrznego użytku maszyny wirtualnej.

    W językach programowania system typów może być zdefiniowany jako system klasyfikacji wyrażeń w zależności od rodzajów wartości, jakie one generują. Każdej obliczonej wartości przypisywany jest pewien typ, który jednoznacznie definiuje, jakie operacje można na niej wykonać. Śledząc przepływ wartości, system typów stara się udowodnić, że w programie występuje poprawne typowanie, tzn. nie dochodzi do sytuacji, w której na wartości określonego typu próbujemy wykonać niedozwoloną operację.Programowanie proceduralne to paradygmat programowania zalecający dzielenie kodu na procedury, czyli fragmenty wykonujące ściśle określone operacje.

    Instrukcje można podzielić na następujące grupy:

  • ładujące i zapisujące (np. aload_0, istore),
  • arytmetyczne i logiczne (np. ladd, fcmpl),
  • zmieniające typ (np. i2b, d2i),
  • tworzące obiekt i manipulujące nim (np. new, putfield),
  • przenoszące sterowanie (np. ifeq, goto),
  • wywołujące metodę i wracające z niej (np. invokespecial, areturn).
  • Jest też kilka instrukcji służących do bardziej wyspecjalizowanych czynności, np. zwracanie wyjątków, synchronizacja itd.

    C# (C Sharp, dosłownie "C-krzyżyk", "cis") – obiektowy język programowania zaprojektowany przez zespół pod kierunkiem Andersa Hejlsberga dla firmy Microsoft.PHP – obiektowy język programowania zaprojektowany do generowania stron internetowych i budowania aplikacji webowych w czasie rzeczywistym.

    Duża część instrukcji ma też prefiksy lub sufiksy związane z typami zmiennych, na których pracują. Oto ich lista:

    Na przykład, ladd dodaje do siebie dwie zmienne typu long, a sadd dwie zmienne typu short. Instrukcje „const”, „load” i „store” mogą ponadto posiadać sufiks wyglądający tak: „_n”, z tym, że w miejscu n podstawiamy liczbę od 0-3 dla instrukcji „load” i „store”. Największe możliwe n dla instrukcji „const” zależne jest od typu, na którym pracuje.

    Stos (ang. Stack) – liniowa struktura danych, w której dane dokładane są na wierzch stosu i z wierzchołka stosu są pobierane (bufor typu LIFO, Last In, First Out; ostatni na wejściu, pierwszy na wyjściu). Ideę stosu danych można zilustrować jako stos położonych jedna na drugiej książek – nowy egzemplarz kładzie się na wierzch stosu i z wierzchu stosu zdejmuje się kolejne egzemplarze. Elementy stosu poniżej wierzchołka można wyłącznie obejrzeć, aby je ściągnąć, trzeba najpierw po kolei ściągnąć to, co jest nad nimi.Asembler (z ang. assembler) – termin informatyczny związany z programowaniem i tworzeniem kodu maszynowego dla procesorów. W języku polskim oznacza on program tworzący kod maszynowy na podstawie kodu źródłowego (tzw. asemblacja) wykonanego w niskopoziomowym języku programowania bazującym na podstawowych operacjach procesora zwanym językiem asemblera, popularnie nazywanym również asemblerem. W tym artykule język programowania nazywany będzie językiem asemblera, a program tłumaczący – asemblerem.


    Podstrony: 1 [2] [3] [4] [5]




    Warto wiedzieć że... beta

    Przedrostek, prefiks – w językoznawstwie jest to fragment wyrazu (tzw. morfem) dodawany po lewej stronie do słowa podstawowego lub jego rdzenia (czyli do podstawy słowotwórczej), służący tworzeniu wyrazów pochodnych. Wyraz może nie posiadać żadnego prefiksu, może posiadać jeden lub więcej prefiksów.
    Scala − język programowania łączący cechy języków funkcyjnych i obiektowych. Scala działa na Wirtualnej Maszynie Javy, a także na Java Platform, Micro Edition Connected Limited Device Configuration i platformie .NET. Nazwa ma za zadanie podkreślać skalowalność języka, stąd Scala ("scalable language").
    NetLogo to język programowania i zintegrowane środowisko modelowania matematycznego. Język NetLogo został zaprojektowany na bazie języka Logo. Jego twórcy kierowali się zasadą niski próg i brak sufitu: język ma umożliwić łatwą pracę nowicjuszom a jednocześnie sprostać potrzebom zaawansowanych użytkowników. Ma wbudowaną obszerną bibliotekę modeli z różnych dziedzin, takich jak ekonomia, biologia, fizyka, chemia, psychologia i wiele innych. NetLogo jest wykorzystywane także w celach edukacyjnych.
    Ruby to interpretowany, w pełni obiektowy i dynamicznie typowany język programowania stworzony w 1995 roku przez Yukihiro Matsumoto (pseudonim Matz). W języku angielskim ruby oznacza rubin.
    Kod operacji (ang. opcode) – w informatyce jest to liczba, będąca fragmentem rozkazu przekazywanego do wykonania do procesora, która informuje jaka operacja ma być wykonana. Każde polecenie assemblera jak add, sub, itd. posiada swój numer, na który jest zamieniane podczas kompilacji do kodu maszynowego. Zbiór kodów dla danego procesora jest określany w jego modelu programowym.
    Instrukcja - w programowaniu jest to najmniejszy samodzielny element imperatywnego języka programowania. Instrukcja może być niskiego poziomu napisana w asemblerze np. mov ax,bx, która po przetłumaczeniu na kod binarny nadaje się do uruchomienia przez procesor lub instrukcja wysokiego poziomu napisana np. w języku C: int a = 5;, która zostanie przetłumaczona na kilka instrukcji niskiego poziomu. Program jest tworzony jako zbiór różnych instrukcji. Instrukcja może zawierać wewnętrzne komponenty (np. wyrażenia).
    The GNU Compiler for Java (GCJ) - zestaw narzędzi dla języka Java, który jest częścią zestawu kompilatorów GCC z projektu GNU.

    Reklama

    Czas generowania strony: 0.029 sek.