Metody realizacji języków programowania/MRJP Wykład 3: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
plan wykładu |
Nie podano opisu zmian |
||
Linia 8: | Linia 8: | ||
= Plan = | = 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. | |||
** wyr. | * 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 | ** wywołania funkcji i wartość zwracana | ||
** odwołanie do pól obiektu, rekordu, krotki | ** odwołanie do pól obiektu, rekordu, krotki | ||
* cykle przy deklarowaniu typów (wskaźniki lub np. drzewa funkcyjne) | |||
* Równość typów | * Równość typów | ||
** strukturalna | ** strukturalna | ||
Linia 36: | Linia 53: | ||
** szablony (c++) i generiki (java) | ** szablony (c++) i generiki (java) | ||
* Języki funkcyjne i wnioskowanie typów | * Języki funkcyjne i wnioskowanie typów | ||
** Zmienne typów | ** Zmienne typów; | ||
** unifikacja, etc. | ** unifikacja, etc. | ||
Wersja z 10:11, 22 lip 2006
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
bold
Italic
[external link]
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
- elem2
- podelem1
- podpodelem
- podpodpodelem
- podpodelem
- podelem1