Proceduralni jezici - FESB
Proceduralni jezici - FESB
Proceduralni jezici - FESB
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Strukturalna ekvivalencija<br />
Dva tipa su strukturalno ekvivalentna ako imaju istu definiciju članova strukture . Strukturalna ekvivalencija se označava s<br />
S, a definira se na sljedeći način:<br />
(a) T S T<br />
(b) Za deklaraciju oblika<br />
Type T = Q;<br />
T S Q<br />
ako T i Q su definirani pomoću istih konstruktora tipa i na isti način.<br />
To znači da u prijašnjem primjeru<br />
type PackerSalaries = int[100];<br />
type AssemblySizes = int[100];<br />
PackerSalaries salary;<br />
AssemblySizes size;<br />
salary S size<br />
pošto su oba niza s 100=100 i int S int.<br />
C i C++ u kontroli tipova koriste strukturalnu ekvivalenciju osim za strukture i klase, kod kojih se koristi ekvivalencija po<br />
imenu. Kod nizova ignorira se veličina niza. Java koristi strukturalnu ekvivalenciju za skalarne tipove. Kod nizova<br />
zahtijeva ekvivalenciju po imenu, bez obzira na veličinu niza. Za klase koristi ekvivalenciju po imenu osim što se moţe<br />
koristiti podklasa na mjestu gdje je definirana klasa.<br />
43