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 |
|||
Linia 1: | Linia 1: | ||
Statyczna analiza semantyczna | = Statyczna analiza semantyczna = | ||
= Streszczenie = | = Streszczenie = | ||
= | = Plan = | ||
== Kontrola typów == | |||
* System typów | |||
** atomowe (int, float, double) | |||
** wskaźniki i referencje | |||
** struktury, rekordy, obiekty | |||
** tablice | |||
** krotki | |||
** funkcje (zwykłe i funkcyjne) | |||
** cykle przy deklarowaniu typów (wskaźniki lub np. drzewa funkcyjne) | |||
* sprawdzanie poprawności wyrażeń -- wyliczanie typów | |||
** wyr. arytmetyczne | |||
** wywołania funkcji i wartość zwracana | |||
** odwołanie do pól obiektu, rekordu, krotki | |||
* 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 == | == podrozdz1 == | ||
Linia 23: | Linia 71: | ||
Lista punktowana | Lista punktowana | ||
* ala ma kota | * ala ma kota | ||
** aaa | ** aaa | ||
Linia 35: | Linia 82: | ||
[external link] | [external link] | ||
[[Grafika:an image]] | [[Grafika:an image]] | ||
Linia 49: | Linia 92: | ||
--[[Użytkownik:Mbiskup|Mbiskup]] 10:41, 22 lip 2006 (CEST)Mój podpis | --[[Użytkownik:Mbiskup|Mbiskup]] 10:41, 22 lip 2006 (CEST)Mój podpis | ||
i = 0 | i = 0 | ||
Linia 70: | Linia 101: | ||
= Bibliografia = | = Bibliografia = | ||
# elem2 | # elem2 | ||
## podelem1 | ## podelem1 | ||
### podpodelem | ### podpodelem | ||
#### podpodpodelem | #### podpodpodelem |
Wersja z 09:29, 22 lip 2006
Statyczna analiza semantyczna
Streszczenie
Plan
Kontrola typów
- System typów
- atomowe (int, float, double)
- wskaźniki i referencje
- struktury, rekordy, obiekty
- tablice
- krotki
- funkcje (zwykłe i funkcyjne)
- cykle przy deklarowaniu typów (wskaźniki lub np. drzewa funkcyjne)
- sprawdzanie poprawności wyrażeń -- wyliczanie typów
- wyr. arytmetyczne
- wywołania funkcji i wartość zwracana
- odwołanie do pól obiektu, rekordu, krotki
- 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