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

interpretowanie operatorów dla komendy takie pytanie

42 Warsaw Coding Academy
–1 głos
221 wizyt
pytanie zadane 20 czerwca 2024 w JavaScript przez niezalogowany
takie pytanie co do pewnnych rzeczy w powinno sie w interpreterze  uzywac osobnych dopasowan dla operatorów i dla komend bo z tego co widziąłem cos w przykądowym kompilatorze to jest to troche zrobione w sposób łaczenia i to mnie zaciekawiło gdyz w sumie nie wiem czy mój interpreter jest poprawny tez uzywałem w nim dla date i time osobnych wyrazen regularnych .btw zapomniałem napisa co dodaniu tego(ogołnie to gdzie to znikneło przeciez to dodałem ach niewazne ) . wie ktos cos na ten temat?
komentarz 20 czerwca 2024 przez Comandeer Guru (607,060 p.)
Totalnie nie rozumiem pytania. Możesz pokazać konkretny kod z tego przykładowego kompilatora?
komentarz 20 czerwca 2024 przez niezalogowany
chodzi o to czy mój interpreter powinien zamist dopasowywac np equal: 3, 7 [+];
to osobno dla equal dopasowywac equal osobno operator np + itp

1 odpowiedź

+2 głosów
odpowiedź 21 czerwca 2024 przez Comandeer Guru (607,060 p.)

O ile dobrze rozumiem, to pytasz o to, jakie etapy powinna mieć kompilacja/interpretacja. Ten przykładowy kompilator ma trzy podstawowe etapy:

  1. tokenizacja – gdzie każdy token jest parsowany osobno, zatem liczby osobno, operator osobno itd.,
  2. parsowanie – gdzie tokeny są łączone w większe części i powstaje AST,
  3. trawersacja – gdzie kompilator przechodzi przez AST i robi żądane operacje (w przykładzie jest to zamiana AST na inny format drzewka i wygenerowanie z niego kodu).

W teorii pierwsze dwa etapy można złączyć, ale zwykle są oddzielnie, bo w taki sposób parsowanie jest po prostu bardziej elastyczne i może pokryć więcej przypadków. IMO też zrobienie tego oddzielnie jest prostsze.

Co do trzeciego etapu, to w trakcie przechodzenia przez AST możesz na bieżąco wykonywać poszczególne fragmenty. Możesz też np. generować z niego kod JS, który na końcu odpalisz choćby przy pomocy eval().

komentarz 21 czerwca 2024 przez niezalogowany
nie chdozi o to czy mam osobno miec regaxy dla np osobno dla np print i osobno miec do tego np + czyli wyrazenia osobne dla print i dla + zmaist jedno to dwa osobne
komentarz 21 czerwca 2024 przez niezalogowany

@Comandeer, tak jak juz o tym wspominasz to  juz nie wiem jak mam robic te interpretory i czemu potrafią niby byc proste ale potem okazuje sie ze na 300 liniach sie nie konczy 

1
komentarz 21 czerwca 2024 przez niezalogowany
ach czyli osobno dzieki

Podobne pytania

–1 głos
1 odpowiedź 250 wizyt
pytanie zadane 30 czerwca 2024 w JavaScript przez niezalogowany
0 głosów
0 odpowiedzi 141 wizyt
pytanie zadane 11 czerwca 2024 w JavaScript przez niezalogowany
+2 głosów
2 odpowiedzi 303 wizyt

93,377 zapytań

142,379 odpowiedzi

322,528 komentarzy

62,726 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...