3307664427

3307664427



sprawdza czy dany ciąg może zostać wygenerowany przez gramatykę dla języka źródłowego. Analizator składniowy ma również jeszcze jedno bardzo istotne zadanie, mianowicie ma zgłaszać występowanie błędów składniowych. Jest to bezpośrednio związane z tym, że nie realne jest aby kompilator przetwarzał tylko poprawne programy, gdyż programiści to też ludzie i zdarzają się im błędy. Gdyby jednak dało się ich całkowicie unikać, wtedy projekt i stworzenie kompilatora bardzo by się uprościły. Niestety tak nie jest i często zdarza się, że programiści piszą niepoprawne programy, więc dobry kompilator powinien pomóc programiście w zlokalizowaniu błędu i jego usunięciu. To spowodowało, że obsługa błędów w analizatorze składniowym ma postawione proste cele:

•    zgłaszać obecność błędu, w jasny sposób

•    w razie wykrycia błędu, szybo wracać do analizy składniowej w celu wykrycia kolejnych błędów

•    nie spowalniać w sposób znaczący przetwarzania poprawnych programów.

Jedną z ważniejszych funkcji kompilatora jest zapamiętywanie identyfikatorów, które są używane w programie źródłowym oraz zbieranie informacji o ich różnych atrybutach. Atrybuty mogą dostarczać informacji na temat ilości zajętej pamięci przez identyfikator, o jego typie, zasięgu (jego dostępność i widoczność w programie). Także w przypadku nazw atrybuty podają liczbę i typy argumentów, metody przekazywania każdego argumentu oraz typ wyniku o ile ta metoda zwraca wynik. Tablica symboli jest zbudowana ze zbioru rekordów z atrybutami dla wszystkich identyfikatorów. Struktura to za zadanie ma umożliwiać szybkie znalezienie rekordu dla każdego identyfikatora oraz szybkie zapisywanie i odczytywanie danych z rekordu. Identyfikator napotkany przez analizę leksykalną dodawany jest do tablicy symboli. Reszta faz wstawia do tablicy informacje o identyfikatorach, aby w kolejnych etapach kompilacji wykorzystać je do różnych celów takich jak; sprawdzenie podczas analizy semantycznej i generacji kodu czy identyfikatory używane są poprawnie oraz wygenerowania poprawnych operacji na nich działających. Dokładne informacje na temat przydzielonej pamięci identyfikatorom są niezbędne do działania generatora kodu [5],

13



Wyszukiwarka

Podobne podstrony:
8. Przykład • Obliczymy wartość zagregowana oczekiwanej szkody, która może zostać wygenerowana przez
Farmakologia wykład012 Działanie na płód Przed podaniem leku zawsze należy uwzględnić, czy dany śro
1 (185) 2009-04-27ZESPÓŁFENYLOKETONURII MATCZYNEJ Czy kobieta z fenyloketanurią może zostać szczęśli
wirusy (1) jednym z pierwszych eksperymentów jest zakażenie jaj kurzych różnymi drogami, by sprawdzi
Władza totalitarna może zostać zilustrowana przez cebulę - w jej środku znajduje się przywódca, a po
skierowanego na dotychczasowy adres za doręczone.§8. Niniejsza umowa może zostać wypowiedziana przez
65649 P1140670 Hiperwentylacja może zostać wywołana przez: •    działanie wzmożonych
S Dysponentom stopnia I blokowanie może zostać wprowadzone przez ministra finansów S Przyczyny (prze
Selekcja negatywna Oprócz screeningu, selekcja negatywna może zostać przezwyciężona przez signaling,
W aktach stanu cywilnego zapisane są akty urodzenia i akty zgonu. Akt zgonu może zostać zgłoszony pr
tm3 (2) 6.    (4p) Wyjątek w 180286 nie może być wygenerowany przez (K):: O Drv /7bou
Dni robocze i święta 9 Funkcja isbusday(dzień, święta, weekend) pozwala sprawdzić, czy dany dzień je
2015 03 19 52 37 204 Reologia. Podstawy i zastosowania Równanie to może zostać skrócone przez zdefi

więcej podobnych podstron