Programowanie

Analiza semantyczna

Analiza semantyczna

Analiza semantyczna w teorii kompilatorów to faza procesu kompilacji, wykonywana po analizie syntaktycznej, a przed generowaniem kodu, w której sprawdzana jest poprawność programu na poziomie znaczenia poszczególnych instrukcji oraz programu jako całości. Analiza semantyczna najczęściej operuje na drzewie składni, do którego dodaje dodatkowe informacja, np. typy wartości.

Spis treści

[edytuj] Cel analizy semantycznej

Głównym zadaniem w czasie analizy semantycznej jest sprawdzenie, czy program może być jednoznacznie skompilowany. Pewne konstrukcje, mimo że dopuszczalne przez gramatykę języka, mogą być niepoprawne.

W analizie semantycznej można wyróżnić trzy obszary działania:

[edytuj] Kontrola typów

Kontrola typów ma na celu sprawdzenie poprawności typów w takich konstrukcjach językowych jak:

W czasie kontroli typów sprawdzane też jest czy identyfikatory były zadeklarowane. Do tego celu służy tablica symboli.

[edytuj] Kontrola poprawności instrukcji

Przez "poprawność instrukcji" rozumie się wszelką inną poprawność instrukcji poza sprawdzaniem typów i identyfikatorów. Sprawdzanie obejmuje:

[edytuj] Kontrola nazw

Kontrola nazw polega na sprawdzeniu, czy nazwy identyfikatorów i etykiet w programie źródłowym są poprawne. Za niepoprawne zwykle uważa się:

Część z tych rzeczy, np. podwójne deklaracje, jest sprawdzana w czasie tworzenia tablicy symboli.

[edytuj] Zobacz też

[edytuj] Źródła

  1. Aho, Sethi, Ullman, Kompilatory. Reguły, metody i narzędzia, WNT 2002
  2. Appel, Palsberg, Modern Compiler Implementation in Java, Second Edition, Cambridge University Press, 2002