Metody realizacji języków programowania/MRJP Wykład 3

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Statyczna analiza semantyczna

Streszczenie

Plan

Kontrola typów

System typów

Wyróżniamy typy:

  • arytmetyczne (całkowity - int, short; zmiennopozycyjny - float, double; znakowy - char) - obiekt bezpośreniej manipulacji procesora
  • wskaźniki i referencje - wskaźniki i referencje to adresy w pamięci wskazujące na lokację innego elementu (np. tablicy, obiektu, liczby typu arytmetycznego).
  • struktury, rekordy, krotki, obiekty - typy złożone; struktury i rekordy zawierają pola, z których każde może mieć własny typ. Obiekty mogą dodatkowo zawierać metody
  • tablice - ciągły obszar pamięci zawierający kolejne instancje typu.
  • funkcje


sprawdzanie poprawności typów

Wyrażenia:

Dla każdego wyrażenia należy wyliczyć jego typ:

  • zmienne: typ zmiennej
  • wyr arytmetyczne: int + int -> int; double + int -> double. Więcej o tym w punkcie konwersja typów. Trzeba sprawdzić, czy operacje są przeprowadzane na poprawnym typie.
  • wywołania funkcji: sprawdzić typy parametrów,


    • wywołania funkcji i wartość zwracana
    • odwołanie do pól obiektu, rekordu, krotki
  • cykle przy deklarowaniu typów (wskaźniki lub np. drzewa funkcyjne)
  • Równość typów
    • strukturalna
    • przez nazwę
  • konwersja typów
    • typy arytmetyczne i proste (int->double, etc)
    • typy polimorficzne - rzutowanie
    • jawne rzutowanie
  • Przeciążanie
    • liczenie zbioru możliwych typów dla podwyrażenia
    • zstępujące zawężanie zbioru możliwych typów
  • Funkcje polimorficzne
    • Dynamiczna kontrola (smalltalk)
    • statyczna kontrola (języki funkcyjne z silnym typowaniem)
    • szablony (c++) i generiki (java)
  • Języki funkcyjne i wnioskowanie typów
    • Zmienne typów;
    • unifikacja, etc.


reszta

  • Kontrola przepływu sterowania
    • break, goto,
  • kontrola nazw (unikalności nazw identyfikatorów, bloków, etc.)
    • te same nazwy dla różnych obieków
    • słowa kluczowe
    • etykiety dla goto, case
  • kontrola dostępu
    • zmienne/funkcje prywatne/chronione/publiczne


test wiki

podrozdz1

podrozdz

Przykład:

x = y
a = x + y
b = a + x

link martwym kodem.

Lista punktowana

  • ala ma kota
    • aaa

adsfα+(4b)

bold

Italic

internal link

[external link]

Plik:An image

Media:media file

No wiki formating

--Mbiskup 10:41, 22 lip 2006 (CEST)Mój podpis

i = 0 
do { 
  j = 4 * i
  i = i + 1 
} while (i < 20)


Bibliografia

  1. elem2
    1. podelem1
      1. podpodelem
        1. podpodpodelem