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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Elemente <strong>de</strong> <strong>compilare</strong> 189<br />

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />

⎯<br />

#n<strong>de</strong>p[rtarea erorii 112 se realizeaz[ tot printr-o rescriere a<br />

<strong>de</strong>clara\iilor <strong>de</strong> domenii. #n cap. 2 am v[zut <strong>de</strong>ja c[ Turbo Prolog dispune<br />

<strong>de</strong> o sec\iune <strong>de</strong> constante - utilizate @n program cu semnifica\ia obi]nuit[<br />

(valori care nu se schimb[ @n timpul execu\iei programului).<br />

constants<br />

ion="Sfantul Ion"<br />

x =Variabila<br />

predicates<br />

sfant(symbol)<br />

clauses<br />

sfant(ion).<br />

goal<br />

sfant("Sfantul Ion"),sfant(x),write(x).<br />

Exemplul <strong>20</strong>.4. O constant[ fals[ ...<br />

Constanta x are valoarea <strong>de</strong>finit[ Variabila ceea ce face ca x s[<br />

fie tratat[ @n <strong>de</strong>monstra\ie ca o variabil[ ! (<strong>de</strong> fapt problema provine <strong>de</strong> la<br />

<strong>de</strong>fini\ia lui x care este un i<strong>de</strong>ntificator ce @ncepe cu liter[ mare)<br />

B. Re<strong>de</strong>finirea predicatelor<br />

O regul[ nu poate utiliza argumente ale unui predicat diferite <strong>de</strong><br />

tipul celor din <strong>de</strong>clara\ia sa.<br />

domains<br />

stanga,dreapta=symbol<br />

predicates<br />

la_stanga(stanga,dreapta)<br />

la_dreapta(dreapta,stanga)<br />

langa(stanga,dreapta)<br />

clauses<br />

la_dreapta(casa,arbore).<br />

la_stanga(casa,garaj).<br />

langa(X,Y):-la_stanga(X,Y).<br />

langa(X,Y):-la_dreapta(X,Y).<br />

Exemplul <strong>20</strong>.5. Concordan\a variabil[ - domeniu.<br />

Programul <strong>de</strong> mai sus furnizeaz[ eroarea fatal[;<br />

505 Type error: Illegal variable type for this<br />

position

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

Saved successfully!

Ooh no, something went wrong!