• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak pisze się własne kompilatory?

+1 głos
1,347 wizyt
pytanie zadane 14 marca 2018 w Offtop przez Hiskiel Pasjonat (22,830 p.)
Witam! Postawiłem sobie za cel napisać prosty interpreter, który interpretowałby polecenia mojego własnego języka. Jednakże to jest interpreter, a ciekawi mnie jak się pisze kompilatory. Jak kompilator zapisuje dane binarnie do pliku .exe? Skąd wie gdzie, co jak? I jeszcze miałbym pytanie. Da ktoś wskazówki czym się kierować pisząc własny interpreter?

2 odpowiedzi

0 głosów
odpowiedź 14 marca 2018 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Kompilatory zazwyczaj najpierw tłumaczą kod źródłowy danego języka, na kod języka asemblera, a następnie kod języka asemblera jest asemblowany do kodu maszynowego. Po prostu poszczególnym rozkazom odpowiadają odpowiednie wartości liczbowe (patrz: opcode). Przykładowo, u mnie rozkaz:

mov eax, 3

Został "zamieniony" na kod maszynowy:

66 B8 03 00 00 00

Tutaj masz jakieś materiały na temat pisania kompilatora: https://compilers.iecc.com/crenshaw/ "Odrobinę" stare (bardzo stare), ale może wyciągniesz z nich coś ciekawego. smiley

0 głosów
odpowiedź 14 marca 2018 przez Ehlert Ekspert (215,230 p.)

Zainteresuj się Bisonem.

Powodzenia, bo na pewno się przyda laughdevil

Podobne pytania

0 głosów
4 odpowiedzi 7,108 wizyt
0 głosów
0 odpowiedzi 1,104 wizyt
pytanie zadane 11 kwietnia 2017 w Systemy operacyjne, programy przez BinaryMan Stary wyjadacz (12,620 p.)
0 głosów
1 odpowiedź 599 wizyt
pytanie zadane 10 kwietnia 2024 w C i C++ przez sensor Użytkownik (680 p.)

93,788 zapytań

142,754 odpowiedzi

323,429 komentarzy

63,394 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...