Pok-12-wyk-Slajd10
Systemy typów
Wyrażenia określające typ służą do opisania typu poszczególnych konstrukcji języka źródłowego.
System typów danego języka programowania określa w jaki sposób wyrażenia określające typy są wiązane z poszczególnymi konstrukcjami języka źródłowego.
Sposób definiowania systemów typów bywa różny, bardziej lub mniej formalny.
W przypadku pierwszej edycji języka C podstawą definicji samego języka i jego systemu typów była książka „The C programming language” napisana w sposób nieformalny, przyjazny dla czytelnika, ale pozostawiający mnóstwo swobody (i wątpliwości) osobom implementującym kompilatory.
Wynikiem takiej sytuacji była oczywiście pewna dowolność interpretacji definicji języka, a jej wynikiem - niekompatybilność kompilatorów, którą ograniczył dopiero formalny standard zdefiniowany przez ANSI.
Zdecydowanie lepiej wyglądała sytuacja w przypadku języka Pascal. Już pierwszy raport (Wirth, 1971) był ściślejszy niż książka o języku C, ale pewnych błędów jednak nie uniknięto – np. wątpliwości narosły wobec niewyjaśnionego w raporcie znaczenia terminu „identyczne typy”.