Gestionarea conversiilor de tip este importantă pentru că ele ascund în spate conversii de tip. Sunt compilatoare care gestionează ele acest lucru.
În secvența:
INTEGER A,B,C,D,X
REAL I, K
A=2.
B=3
C=18.
D=32
I=100
K=D/15+C/22.
X=K
au loc destul de multe conversii. Dacă nu se dispune de compilator care să festioneze el însuși conversiile se produc următoarele conversii:
- constanta 2. este de tip real și se face conversie spre întreg pentru a se face inițializarea variabilei A; programatorul care știe despre ce este vorba cu siguranță ar fi scris din prima A=2, 2 fiind de tip întreg ca variabila A;
- la fel se întâmplă și la inițializarea C=18. fiind necesară o conversie;
- variabila I este de tip real are o reprezentare internă care diferă de cea a constantei 100 care este de tip întreg, fiind necesară și în acest caz conversie de la întref spre real;
- în expresia K=D/15+C/22. tipul dominant este cel real și de aceea înainte de a se face evaluările se fac conversii a tot ceea ce este de tip întreg spre tipul real;
- conversie se face și de la real spre întreg să se evalueze expresia X=K.
Chestiuni neînsemnate uneori duc la volume foarte mari de cicluri mașină și numai programatorii care știu limbaje de asamblare își dau seama ce și cum la nivelul acestor chestiuni de finețe.
În secvența:
INTEGER A,B,C,D,X
REAL I, K
A=2.
B=3
C=18.
D=32
I=100
K=D/15+C/22.
X=K
au loc destul de multe conversii. Dacă nu se dispune de compilator care să festioneze el însuși conversiile se produc următoarele conversii:
- constanta 2. este de tip real și se face conversie spre întreg pentru a se face inițializarea variabilei A; programatorul care știe despre ce este vorba cu siguranță ar fi scris din prima A=2, 2 fiind de tip întreg ca variabila A;
- la fel se întâmplă și la inițializarea C=18. fiind necesară o conversie;
- variabila I este de tip real are o reprezentare internă care diferă de cea a constantei 100 care este de tip întreg, fiind necesară și în acest caz conversie de la întref spre real;
- în expresia K=D/15+C/22. tipul dominant este cel real și de aceea înainte de a se face evaluările se fac conversii a tot ceea ce este de tip întreg spre tipul real;
- conversie se face și de la real spre întreg să se evalueze expresia X=K.
Chestiuni neînsemnate uneori duc la volume foarte mari de cicluri mașină și numai programatorii care știu limbaje de asamblare își dau seama ce și cum la nivelul acestor chestiuni de finețe.
(023 decembrie 2017)
No comments:
Post a Comment