20 elemente de compilare }i dezvoltarea programelor mari
20 elemente de compilare }i dezvoltarea programelor mari
20 elemente de compilare }i dezvoltarea programelor mari
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
188 Practica program[rii logice<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
⎯<br />
domains<br />
oras=symbol<br />
anul=integer<br />
universitate=universitate(oras,anul)<br />
predicates<br />
universitate(universitate)<br />
clauses<br />
universitate(universitate(craiova,1966)).<br />
goal<br />
universitate(Universitate),write(Universitate).<br />
Exemplul <strong>20</strong>.2. Omonimia i<strong>de</strong>ntificatorilor.<br />
Cu toate acestea, compilatorul Turbo Prolog nu accept[<br />
@ntot<strong>de</strong>auna omonimia i<strong>de</strong>ntificatorilor <strong>de</strong> domenii cu cei <strong>de</strong> functori,<br />
avertiz`nd utilizatorul cu eroarea :<br />
111 WARNING: Domain used as a functor<br />
domains<br />
sir=string<br />
cuvant=cuvant(sir);sir<br />
Exemplul <strong>20</strong>.3. Omonimie neacceptat[ (eroare 111).<br />
Eroarea poate fi evitat[ <strong>de</strong> exemplu prin rescrierea argumentului<br />
functorului cuvant astfel:<br />
sau<br />
s=string<br />
sir=string<br />
cuvant=cuvant(s);sir<br />
sir=string<br />
cuvant=cuvant(sir);string()<br />
Mai mult, o alt[ eroare <strong>de</strong> avertisment apare atunci c`nd se<br />
<strong>de</strong>fine]te un domeniu ce con\ine un singur functor:<br />
112 WARNING: Domain <strong>de</strong>claration with a single functor.<br />
domains<br />
cuvant=sir_<strong>de</strong>_litere<br />
Exemplul <strong>20</strong>.4. Domeniu cu un singur functor (eroare 112).