• 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

HackNation - ogólnopolski hackathon
–1 głos
482 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,330 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,330 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ź 495 wizyt
pytanie zadane 30 czerwca 2024 w JavaScript przez niezalogowany
0 głosów
0 odpowiedzi 275 wizyt
pytanie zadane 11 czerwca 2024 w JavaScript przez niezalogowany
+2 głosów
2 odpowiedzi 563 wizyt

93,625 zapytań

142,548 odpowiedzi

323,034 komentarzy

63,129 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 1210p. - dia-Chann
  2. 1197p. - DziarnowskiJ
  3. 1177p. - Łukasz Piwowar
  4. 1172p. - CC PL
  5. 1161p. - Maurycy W
  6. 1141p. - Adrian Wieprzkowicz
  7. 1138p. - raydeal
  8. 1134p. - Tomasz Bielak
  9. 1116p. - rucin93
  10. 1101p. - robwarsz
  11. 1100p. - Mariusz Fornal
  12. 1024p. - ssynowiec
  13. 885p. - Dominik Łempicki (kapitan)
  14. 847p. - Grzegorz Aleksander Klementowski
  15. 838p. - Wojciech Malicki
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...