Pytanie 1. Czy potrzebna Wam ta wiedza na te tematy i/lub umiejetnosc programowania w asemblerze w pracy / projektach open-source/ wlasnych projektach?
Pytanie 2. Czy warto samemu napisac kompilator czy lepiej moze interpreter bo tam chyba nie powinno sie uzywac asemblera / kodu bajtowego?
Pytanie 3. A moze lepiej wcale nie pisac kompilatora / interpretera bo to i tak wcale albo prawie wcale nieprzydatne?
Jestem raczej typem badacza niz kreatora - wole jeden program napisac na wiele sposobow aby badac dany jezyk programowania, uzyc innego algorytmu, struktury danych, aby z programu ktory pisze jak najwiecej czasu poswiecic na kwestie informatyczne a nie na rozwiazanie problemu poza-informatycznego z innej dziedziny nauki (np. matematyki, ekonomii, fizyki, itd.). Bardzo interesuje mnie co sie dzieje na poziomie maszyny - czyli asembler lub kod bajtowy, ale jednoczesnie wiem ze to czasochlonne i chyba nieprzydatne i dlatego mam wahania co do wyboru programu do napisania.
Pytanie 4. Takze pisanie kompilatora mogloby zaangazowac tylko mala czesc jezyka programowania i algorytmow a caly asembler czy kod bajtowy - to juz lepiej chyba pisac interpreter w C/C++/Javie takiego Pythona/basha/PHP/ (a nawet i C90 - interpreter C90 tez moglby powstac? i na odwrot kompilator basha tez ? - choc byloby to bardzo trudne), bo sa bardziej przydatne od asemblera a takze latwiej byloby testowac taki interpreter ?
Hipotetyczne przypadki w Linuxie:
Case 'A': Cezary pisze caly kompilator w C90 aby moc kompilowac pliki C90. Po wielu bojach jest moment ze chce testowac plik one.c:
#include <stdio.h>
int main (void) {
int x = 5;
printf ("Hello World! %d", x);
return 0;
}
Zalozmy ze napisal caly kompilator w 1 pliku: translator.c
wykonywalny plik: 'translator' za pomoca polecenia: gcc -Wall translator.c -o translator
teraz aby skompilowac plik one.c do asemblera w konsoli pisze: .\translator one.c (jako odpowiednik gcc -S one.c) i otrzymuje plik one.s
Aby uzyskac relokowany plik obiektowy za pomoca asemblera w konsoli pisze np.: as one.s -o one.o (dla innego asemblera np nasm byloby to inne polecenie)
Pytanie 5 i dla mnie bardzo wazne:
Jezeli juz mam plik obiektowy z instrucjami asemblera to moge go teraz uruchomic tym asemblerem w celu przetestowania tego pliku, aby pojawil sie w konsoli napis: 'Hello World! 5'
???