• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Semantyka, weryfikacja, analiza i transformacja kodu bajtowego, Saarbrucken, Niemcy

    01.12.2010. 17:37
    opublikowane przez: Redakcja Naukowy.pl

    Dnia 27 marca 2011 r. w Saarbrucken, Niemcy, odbędzie się konferencja pt. "Semantyka, weryfikacja, analiza i transformacja kodu bajtowego".

    Kod bajtowy, taki jak ten generowany przez kompilatory Java czy .NET, stał się ważnym tematem zainteresowania przedsiębiorców i naukowców. Zainteresowanie przedsiębiorców wynika z faktu, że kod bajtowy jest zwykle stosowany w aplikacjach internetowych i urządzeń mobilnych (karty chipowe, telefony itd.), gdzie istotnym zagadnieniem jest bezpieczeństwo.

    Kod bajtowy jest niezależny od urządzenia i umożliwia dynamiczne wprowadzanie kategorii, co stanowi dodatkowe wyzwanie dla stosowania metod formalnych. Ponadto nieustrukturyzowany charakter kodu i wszechobecność stosu argumentu również stawiają dodatkowe wyzwania przed analizą kodu bajtowego.

    Warsztaty skupią się na teoretycznych i praktycznych aspektach semantyki, weryfikacji, analizy, certyfikacji i przekształcania kodu bajtowego.

    Za: CORDIS

    Czy wiesz ĹĽe...? (beta)
    Kod zarządzany – odmiana kodu bajtowego działającego pod kontrolą środowiska uruchomieniowego Microsoft .NET Common Language Runtime. W przeciwieństwie do klasycznego kodu bajtowego kod zarządzany jest kompilowany do kodu maszynowego bezpośrednio przed pierwszym uruchomieniem, jest więc do tego czasu przenośny i dostosowany do każdego procesora i systemu operacyjnego, o ile jest na nim zainstalowane środowisko uruchomieniowe, dzięki czemu łączy w sobie zalety zarówno kodu bajtowego, jak i kodu maszynowego. Dalvik – maszyna wirtualna systemu operacyjnego Android. Została zaprojektowana w taki sposób, aby było możliwe jej wydajne działanie na platformach wyposażonych w wolniejsze procesory oraz małą pamięć - na przykład urządzenia mobilne. Nie jest maszyną wirtualną Javy i używa własnego kodu bajtowego, jednak możliwa jest konwersja kodu bajtowego Javy do kodu Dalvika. Aplet Javy – aplet dostarczany w postaci kodu bajtowego Javy. Może zostać uruchomiony w przeglądarce internetowej wykorzystując wirtualną maszynę Javy albo w samodzielnej aplikacji AppletViewer służącej do testowania apletów Javy. Mogą być pisane zarówno w Javie jak i innych językach kompilowanych do kodu bajtowego - na przykład Jython.

    MIDletPascal – darmowy kompilator na licencji GPL języka programowania Pascal pozwalający na wygenerowanie kodu bajtowego zgodnego z implementacja Java ME , co pozwala na uruchamianie aplikacji w nim napisanych na różnorakich urządzeniach mobilnych takich jak : telefony, palmtopy itp. Wirtualna maszyna Javy (ang. Java Virtual Machine, w skrócie JVM) – maszyna wirtualna oraz środowisko zdolne do wykonywania kodu bajtowego Javy. Według szacunków różnych firm i autorów publikacji, liczba urządzeń wyposażonych w JVM wynosi od 3 do 10 miliardów, w tym 1 miliard komputerów, a liczba programistów tworzących oprogramowanie na tę platformę – od 6,5 do 9 milionów.

    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. Dekompilator – program przekształcający język maszynowy lub kod bajtowy do postaci języka wyższego poziomu. Proces tłumaczenia kodu nazywa się dekompilacją. Dekompilacja nie odtwarza kodu źródłowego programu sprzed jego kompilacji, a jedynie postać źródłową w pewnym języku wyższego rzędu (zależnym od dekompilatora) i mającą identyczne działanie jak dekompilowany kod.

    Analiza semantyczna w teorii kompilatorów to faza procesu kompilacji, wykonywana po analizie syntaktycznej, a przed generowaniem kodu, w której sprawdzana jest poprawność programu na poziomie znaczenia poszczególnych instrukcji oraz programu jako całości. Analiza semantyczna najczęściej operuje na drzewie składni, do którego dodaje dodatkowe informacja, np. typy wartości. Generowanie kodu – ogół czynności dokonywanych podczas kompilacji, w których na podstawie abstrakcyjnej reprezentacji kodu źródłowego (przeważnie pewnego drzewa) generowany jest kod niskopoziomowy - asembler, kod wykonywalny, lub rzadziej kod w języku pośrednim.

    Program do kompresji kodu HTML - program do zmniejszania wielkości dokumentów HTML, polegający na likwidowaniu zbędnych spacji, znaków końca akapitu itd. Pozwala zazwyczaj zmniejszyć wielkość pliku o 10-20 procent, ale skutkiem jest znacznie mniejsza przejrzystość kodu źródłowego - w skrajnych przypadkach programy takie tworzą jeden ciąg kodu, trudny do czytania w trakcie reedycji dokumentu. Większość edytorów HTML posiada wbudowany kompresor kodu.

    Testy statyczne są formą testowania oprogramowania bez uruchamiania programu podczas testów. Test polega na automatycznym i ręcznym sprawdzaniu kodu w celu znalezienia błędów. Najczęściej wykonywany jest przez twórców kodu jako pierwsze i podstawowe sprawdzenie każdego programu. Testowanie statyczne sprawdza podstawową poprawność kodu i pozwala ocenić, czy program jest gotowy na bardziej szczegółowe testowanie.

    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.

    Dodano: 01.12.2010. 17:37  


    Najnowsze