28.04.2013 Views

20 elemente de compilare }i dezvoltarea programelor mari

20 elemente de compilare }i dezvoltarea programelor mari

20 elemente de compilare }i dezvoltarea programelor mari

SHOW MORE
SHOW LESS

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).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!