Z pewnością można przechowywać wszystko, co dane, instrukcje zawarte, ale to, czy będziesz w stanie faktycznie wykonać te instrukcje i jak wiele zależy od kompilatora i platformy. Będziesz musiał zagłębić się w szczegóły niskiego poziomu obu, aby zrobić to poprawnie bez awarii lub zawieszenia programu lub środowiska (na przykład prymitywnego systemu operacyjnego, który nie jest chroniony przed aplikacjami).
Here to przykład przechowywania instrukcji BSWAP x86 jako danych w tablicy (nie przydzielane dynamicznie, ale generalnie nie powinno to mieć znaczenia) i wykonywania jej. Przykład faktycznie zapisuje jako dane, a nie pojedynczą instrukcję BSWAP, ale pełną procedurę C-Call, która jest zgodna z konwencją wywołującą mandat kompilatora, regulującą sposób przekazywania parametrów do niej i zwracania z niej wartości zwracanych.
Przykładem jest 32-bitowa aplikacja Windows, a ponieważ ma działać w systemie Windows, musi również zapewnić, że region zawierający instrukcje jest oznaczony jako czytelny i wykonywalny (pierwszy z nich jest przyznawany przez fakt, że są w tablicy, która może być odczytywana i zapisywana, a druga jest zapewniona przez wywołanie funkcji VirtualProtect() w celu poinformowania systemu operacyjnego o oznaczeniu regionu jako wykonywalny, co jest potrzebne, ponieważ system operacyjny próbuje chronić nas przed przypadkowym wykonaniem kodu, który może być złośliwe (np. niezaufane dane pochodzące z Internetu)).
+1 za jedyną odpowiedź w morzu "Nie, źle, trzymaj się z daleka", która mówi: "Tak, tak, faktycznie". –
Zgadzam się. JVM zapewnia mechanizm ładowania .class w czasie wykonywania w stosie i dynamicznego wywoływania jego funkcji. Ale Aditya prosi o dodanie funkcji w stercie, szczególnie w języku C. – Alam