Type conversion
ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನದಲ್ಲಿ, ಪ್ರಕಾರ ಪರಿವರ್ತನೆ, ಪ್ರಕಾರ ಎರಕಹೊಯ್ದ, ಪ್ರಕಾರ ದಬ್ಬಾಳಿಕೆ ಮತ್ತು ಪ್ರಕಾರ ಕುಶಲತೆಯು ಒಂದು ಅಭಿವ್ಯಕ್ತಿಯನ್ನು ಒಂದು ದತ್ತಾಂಶ ಪ್ರಕಾರದಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಬದಲಾಯಿಸುವ ವಿಭಿನ್ನ ವಿಧಾನಗಳಾಗಿವೆ. ಒಂದು ಉದಾಹರಣೆಯೆಂದರೆ ಒಂದು ಪೂರ್ಣಾಂಕದ ಮೌಲ್ಯವನ್ನು ಫ್ಲೋಟಿಂಗ್ ಪಾಯಿಂಟ್ ಮೌಲ್ಯವಾಗಿ ಪರಿವರ್ತಿಸುವುದು ಅಥವಾ ಅದರ ಪಠ್ಯ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಸ್ಟ್ರಿಂಗ್ ಆಗಿ ಪರಿವರ್ತಿಸುವುದು, ಮತ್ತು ಪ್ರತಿಯಾಗಿ. ಪ್ರಕಾರದ ಪರಿವರ್ತನೆಗಳು ಪ್ರಕಾರದ ಶ್ರೇಣಿ ವ್ಯವಸ್ಥೆಗಳು ಅಥವಾ ದತ್ತಾಂಶ ಪ್ರಾತಿನಿಧ್ಯಗಳ ಕೆಲವು ವೈಶಿಷ್ಟ್ಯಗಳ ಲಾಭವನ್ನು ಪಡೆಯಬಹುದು. ಒಂದು ಪ್ರಕಾರದ ಪರಿವರ್ತನೆಯ ಎರಡು ಪ್ರಮುಖ ಅಂಶಗಳೆಂದರೆ ಅದು ಸೂಚ್ಯವಾಗಿ (ಸ್ವಯಂಚಾಲಿತವಾಗಿ) ಅಥವಾ ಸ್ಪಷ್ಟವಾಗಿ ನಡೆಯುತ್ತದೆಯೇ ಮತ್ತು ಆಧಾರವಾಗಿರುವ ದತ್ತಾಂಶ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಒಂದು ಪ್ರಾತಿನಿಧ್ಯದಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಪರಿವರ್ತಿಸಲಾಗುತ್ತದೆಯೇ ಅಥವಾ ನೀಡಲಾದ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಕೇವಲ ಮತ್ತೊಂದು ದತ್ತಾಂಶ ಪ್ರಕಾರದ ಪ್ರಾತಿನಿಧ್ಯವಾಗಿ ಮರು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗುತ್ತದೆಯೇ. ಸಾಮಾನ್ಯವಾಗಿ, ಪ್ರಾಚೀನ ಮತ್ತು ಸಂಯುಕ್ತ ದತ್ತಾಂಶ ಪ್ರಕಾರಗಳೆರಡನ್ನೂ ಪರಿವರ್ತಿಸಬಹುದು. ಪ್ರತಿಯೊಂದು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯು ಪ್ರಕಾರಗಳನ್ನು ಹೇಗೆ ಪರಿವರ್ತಿಸಬಹುದು ಎಂಬುದರ ಬಗ್ಗೆ ತನ್ನದೇ ಆದ ನಿಯಮಗಳನ್ನು ಹೊಂದಿದೆ. ಬಲವಾದ ಬೆರಳಚ್ಚು ಹೊಂದಿರುವ ಭಾಷೆಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಕಡಿಮೆ ಸೂಚ್ಯ ಪರಿವರ್ತನೆಯನ್ನು ಮಾಡುತ್ತವೆ ಮತ್ತು ನಿರೂಪಣೆಗಳ ಮರು ವ್ಯಾಖ್ಯಾನವನ್ನು ನಿರುತ್ಸಾಹಗೊಳಿಸುತ್ತವೆ, ಆದರೆ ದುರ್ಬಲ ಬೆರಳಚ್ಚು ಹೊಂದಿರುವ ಭಾಷೆಗಳು ದತ್ತಾಂಶ ಪ್ರಕಾರಗಳ ನಡುವೆ ಅನೇಕ ಸೂಚ್ಯ ಪರಿವರ್ತನೆಗಳನ್ನು ಮಾಡುತ್ತವೆ. ದುರ್ಬಲ ಟೈಪಿಂಗ್ ಭಾಷೆಯು ಆಗಾಗ್ಗೆ ಕಂಪೈಲರ್ ಅನ್ನು ಡೇಟಾ ಐಟಂ ಅನ್ನು ವಿಭಿನ್ನ ಪ್ರಾತಿನಿಧ್ಯಗಳನ್ನು ಹೊಂದಿರುವಂತೆ ಅನಿಯಂತ್ರಿತವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲು ಒತ್ತಾಯಿಸುತ್ತದೆ-ಇದು ಸ್ಪಷ್ಟವಲ್ಲದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ದೋಷವಾಗಿರಬಹುದು ಅಥವಾ ಆಧಾರವಾಗಿರುವ ಹಾರ್ಡ್ವೇರ್ನೊಂದಿಗೆ ನೇರವಾಗಿ ವ್ಯವಹರಿಸುವ ತಾಂತ್ರಿಕ ವಿಧಾನವಾಗಿರಬಹುದು. ಹೆಚ್ಚಿನ ಭಾಷೆಗಳಲ್ಲಿ, ದಬ್ಬಾಳಿಕೆ ಎಂಬ ಪದವನ್ನು ಸಂಕಲನದ ಸಮಯದಲ್ಲಿ ಅಥವಾ ಚಾಲನೆಯಲ್ಲಿರುವ ಸಮಯದಲ್ಲಿ ಸೂಚ್ಯ ಪರಿವರ್ತನೆಯನ್ನು ಸೂಚಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಪೂರ್ಣಾಂಕ ಮತ್ತು ತೇಲುವ ಬಿಂದು ಸಂಖ್ಯೆಗಳ ಮಿಶ್ರಣದ ಅಭಿವ್ಯಕ್ತಿಯಲ್ಲಿ (5 + 0.1 ನಂತಹ), ಕಂಪೈಲರ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪೂರ್ಣಾಂಕ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ತೇಲುವ ಬಿಂದು ಪ್ರಾತಿನಿಧ್ಯವಾಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ ಆದ್ದರಿಂದ ಭಿನ್ನರಾಶಿಗಳು ಕಳೆದುಹೋಗುವುದಿಲ್ಲ. ಸ್ಪಷ್ಟ ರೀತಿಯ ಪರಿವರ್ತನೆಗಳನ್ನು ಹೆಚ್ಚುವರಿ ಕೋಡ್ ಅನ್ನು ಬರೆಯುವ ಮೂಲಕ ಸೂಚಿಸಲಾಗುತ್ತದೆ (ಉದಾಹರಣೆಗೆ. ಟೈಪ್ ಐಡೆಂಟಿಫೈಯರ್ಗಳನ್ನು ಸೇರಿಸುವುದು ಅಥವಾ ಅಂತರ್ನಿರ್ಮಿತ ದಿನಚರಿಗಳಿಗೆ ಕರೆ ಮಾಡುವುದು) ಅಥವಾ ಕಂಪೈಲರ್ಗೆ ಕೋಡ್ ಮಾಡುವ ಮೂಲಕ ಪರಿವರ್ತನೆ ದಿನಚರಿಗಳನ್ನು ಬಳಸುವುದು ಇಲ್ಲದಿದ್ದರೆ ಅದು ಟೈಪ್ ಹೊಂದಾಣಿಕೆಯಿಂದ ನಿಲ್ಲುತ್ತದೆ. ಪ್ಯಾಸ್ಕಲ್, ಮಾಡುಲಾ-2, ಅದಾ ಮತ್ತು ಡೆಲ್ಫಿಯಂತಹ ಹೆಚ್ಚಿನ ಆಲ್ಗೋಲ್-ರೀತಿಯ ಭಾಷೆಗಳಲ್ಲಿ, ಪರಿವರ್ತನೆ ಮತ್ತು ಎರಕಹೊಯ್ದವು ವಿಭಿನ್ನ ಪರಿಕಲ್ಪನೆಗಳಾಗಿವೆ. ಈ ಭಾಷೆಗಳಲ್ಲಿ, ಪರಿವರ್ತನೆಯು ಒಂದು ದತ್ತಾಂಶ ಪ್ರಕಾರದ ಶೇಖರಣಾ ಸ್ವರೂಪದಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಮೌಲ್ಯವನ್ನು ಸೂಚ್ಯವಾಗಿ ಅಥವಾ ಸ್ಪಷ್ಟವಾಗಿ ಬದಲಾಯಿಸುವುದನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ. 32-ಬಿಟ್ ಪೂರ್ಣಾಂಕಕ್ಕೆ 16-ಬಿಟ್ ಪೂರ್ಣಾಂಕ. ನಿಖರತೆ ಅಥವಾ ಮೊಟಕುಗೊಳಿಸುವಿಕೆಯ ಸಂಭವನೀಯ ನಷ್ಟವನ್ನು ಒಳಗೊಂಡಂತೆ, ಪರಿವರ್ತನೆಯ ಪರಿಣಾಮವಾಗಿ ಶೇಖರಣಾ ಅಗತ್ಯಗಳು ಬದಲಾಗಬಹುದು. ಮತ್ತೊಂದೆಡೆ, ಎರಕಹೊಯ್ದ ಪದವು ಒಂದು ಪ್ರಕಾರದಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಮೌಲ್ಯವನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಬಿಟ್ ಮಾದರಿಯ ವ್ಯಾಖ್ಯಾನವನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಬದಲಾಯಿಸುವುದನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, 32 ಸಮೀಪದ ಬಿಟ್ಗಳನ್ನು 32 ಬೂಲಿಯನ್ಗಳ ಶ್ರೇಣಿ, 4-ಬೈಟ್ ಸ್ಟ್ರಿಂಗ್, ಸಹಿ ಮಾಡದ 32-ಬಿಟ್ ಪೂರ್ಣಾಂಕ ಅಥವಾ ಐ. ಇ. ಇ. ಇ ಏಕ ನಿಖರ ಫ್ಲೋಟಿಂಗ್ ಪಾಯಿಂಟ್ ಮೌಲ್ಯ ಎಂದು ಪರಿಗಣಿಸಬಹುದು. ಸಂಗ್ರಹಿಸಿದ ಬಿಟ್ಗಳನ್ನು ಎಂದಿಗೂ ಬದಲಾಯಿಸದ ಕಾರಣ, ಪ್ರೋಗ್ರಾಮರ್ ಅರ್ಥಪೂರ್ಣವಾಗಿ ಎರಕಹೊಯ್ದ ಮಾಡಲು ಪ್ರಾತಿನಿಧ್ಯ ಸ್ವರೂಪ, ಬೈಟ್ ಕ್ರಮ ಮತ್ತು ಜೋಡಣೆಯ ಅಗತ್ಯಗಳಂತಹ ಕಡಿಮೆ ಮಟ್ಟದ ವಿವರಗಳನ್ನು ತಿಳಿದಿರಬೇಕು. C ಕುಟುಂಬದ ಭಾಷೆಗಳು ಮತ್ತು ALGOL 68ರಲ್ಲಿ, ಎರಕಹೊಯ್ದ ಪದವು ಸಾಮಾನ್ಯವಾಗಿ ಒಂದು ಸ್ಪಷ್ಟ ಪ್ರಕಾರದ ಪರಿವರ್ತನೆಯನ್ನು ಸೂಚಿಸುತ್ತದೆ (ಸೂಚ್ಯ ಪರಿವರ್ತನೆಗೆ ವಿರುದ್ಧವಾಗಿ), ಇದು ಬಿಟ್-ಮಾದರಿಯ ಮರು ವ್ಯಾಖ್ಯಾನವೇ ಅಥವಾ ನೈಜ ದತ್ತಾಂಶ ಪ್ರಾತಿನಿಧ್ಯದ ಪರಿವರ್ತನೆಯೇ ಎಂಬುದರ ಬಗ್ಗೆ ಸ್ವಲ್ಪ ಅಸ್ಪಷ್ಟತೆಯನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ. ಪಾಯಿಂಟರ್ನಿಂದ ಯಾವ ಡೇಟಾ ಪ್ರಕಾರ (ಅಥವಾ ವರ್ಗ) ಇದೆ ಮತ್ತು ಆಬ್ಜೆಕ್ಟ್ (ವರ್ಗ) ಆನುವಂಶಿಕತೆಯಂತಹ ಸಂದರ್ಭಗಳಲ್ಲಿ ಕಂಪೈಲರ್ನಿಂದ ಪಾಯಿಂಟರ್ ಅನ್ನು ಹೇಗೆ ಸರಿಹೊಂದಿಸಬಹುದು ಎಂಬುದಕ್ಕೆ ಅನ್ವಯವಾಗುವ ಬಹುಸಂಖ್ಯೆಯ ಮಾರ್ಗಗಳು ಮತ್ತು ನಿಯಮಗಳು ಹೆಚ್ಚು ಮುಖ್ಯವಾಗಿವೆ. ವಿವಿಧ ಭಾಷೆಗಳಲ್ಲಿ ಸ್ಪಷ್ಟ ಎರಕಹೊಯ್ದ ಅಡಾ ಅನ್ಕೆಲ್ಡ್ _ ಕನ್ವರ್ಷನ್ ಎಂಬ ಸಾಮಾನ್ಯ ಗ್ರಂಥಾಲಯ ಕಾರ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಸಿ-ಲೈಕ್ ಲಾಂಗ್ವೇಜಸ್ ಇಂಪ್ಲಿಸಿಟ್ ಟೈಪ್ ಕನ್ವರ್ಷನ್ ಇಂಪ್ಲಿಸಿಟ್ ಟೈಪ್ ಕನ್ವರ್ಷನ್, ಇದನ್ನು ಬಲವಂತ ಅಥವಾ ಟೈಪ್ ಜಗ್ಲಿಂಗ್ ಎಂದೂ ಕರೆಯಲಾಗುತ್ತದೆ, ಇದು ಕಂಪೈಲರ್ನಿಂದ ಸ್ವಯಂಚಾಲಿತ ರೀತಿಯ ಪರಿವರ್ತನೆಯಾಗಿದೆ. ಕೆಲವು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಕಂಪೈಲರ್ಗಳಿಗೆ ದಬ್ಬಾಳಿಕೆಯನ್ನು ಒದಗಿಸಲು ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತವೆ; ಇತರರಿಗೆ ಇದು ಅಗತ್ಯವಾಗಿರುತ್ತದೆ. ಮಿಶ್ರ-ಪ್ರಕಾರದ ಅಭಿವ್ಯಕ್ತಿಯಲ್ಲಿ, ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಉಪವಿಧಗಳ ದತ್ತಾಂಶವನ್ನು ರನ್ಟೈಮ್ನಲ್ಲಿ ಅಗತ್ಯವಿರುವಂತೆ ಸೂಪರ್ಟೈಪ್ ಆಗಿ ಪರಿವರ್ತಿಸಬಹುದು, ಇದರಿಂದಾಗಿ ಪ್ರೋಗ್ರಾಂ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಈ ಕೆಳಗಿನವು ಕಾನೂನುಬದ್ಧ ಸಿ ಭಾಷೆಯ ಸಂಕೇತವಾಗಿದೆಃ ಡಬಲ್ ಡಿ; ಲಾಂಗ್ ಎಲ್; ಇಂಟ್ ಐ; (ಡಿ> ಐ) ಡಿ = ಐ ಆಗಿದ್ದರೆ; (ಐ> ಎಲ್) ಎಲ್ = ಐ ಆಗಿದ್ದರೆ; (ಡಿ = = ಎಲ್) ಡಿ * = 2 ಆಗಿದ್ದರೆ; ಆದಾಗ್ಯೂ, ಮತ್ತು ವಿಭಿನ್ನ ದತ್ತಾಂಶ ಪ್ರಕಾರಗಳಿಗೆ ಸೇರಿದವರಾಗಿದ್ದರೆ, ಪ್ರತಿ ಬಾರಿಯೂ ಹೋಲಿಕೆ ಅಥವಾ ನಿಯೋಜನೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದಾಗ ಅವುಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸಮಾನ ದತ್ತಾಂಶ ಪ್ರಕಾರಗಳಾಗಿ ಪರಿವರ್ತಿಸಲಾಗುತ್ತದೆ. ಈ ನಡವಳಿಕೆಯನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಬಳಸಬೇಕು, ಏಕೆಂದರೆ ಅನಪೇಕ್ಷಿತ ಪರಿಣಾಮಗಳು ಉಂಟಾಗಬಹುದು. ಫ್ಲೋಟಿಂಗ್-ಪಾಯಿಂಟ್ನಿಂದ ಪೂರ್ಣಾಂಕಕ್ಕೆ ಪ್ರಾತಿನಿಧ್ಯಗಳನ್ನು ಪರಿವರ್ತಿಸುವಾಗ ಡೇಟಾವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು, ಏಕೆಂದರೆ ಫ್ಲೋಟಿಂಗ್-ಪಾಯಿಂಟ್ ಮೌಲ್ಯಗಳ ಭಾಗಶಃ ಘಟಕಗಳನ್ನು ಮೊಟಕುಗೊಳಿಸಲಾಗುತ್ತದೆ (ಶೂನ್ಯದ ಕಡೆಗೆ ದುಂಡಾಗಿಸಲಾಗುತ್ತದೆ). ಇದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿ, ಪೂರ್ಣಾಂಕದಿಂದ ಫ್ಲೋಟಿಂಗ್-ಪಾಯಿಂಟ್ಗೆ ಪ್ರಾತಿನಿಧ್ಯಗಳನ್ನು ಪರಿವರ್ತಿಸುವಾಗ ನಿಖರತೆಯನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು, ಏಕೆಂದರೆ ಫ್ಲೋಟಿಂಗ್-ಪಾಯಿಂಟ್ ಪ್ರಕಾರವು ಕೆಲವು ಪೂರ್ಣಾಂಕ ಪ್ರಕಾರದ ಎಲ್ಲಾ ಸಂಭವನೀಯ ಮೌಲ್ಯಗಳನ್ನು ನಿಖರವಾಗಿ ಪ್ರತಿನಿಧಿಸಲು ಸಾಧ್ಯವಾಗದಿರಬಹುದು. ಉದಾಹರಣೆಗೆ, ಐ. ಇ. ಇ. ಇ. 754 ಏಕ ನಿಖರ ಪ್ರಕಾರವಾಗಿರಬಹುದು, ಇದು 16777217 ಪೂರ್ಣಾಂಕವನ್ನು ನಿಖರವಾಗಿ ಪ್ರತಿನಿಧಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಆದರೆ 32-ಬಿಟ್ ಪೂರ್ಣಾಂಕ ಪ್ರಕಾರವು ಮಾಡಬಹುದು. ಇದು ಈ ಕೆಳಗಿನ ಕೋಡ್ನಿಂದ ಪ್ರದರ್ಶಿಸಿದಂತೆ ಅಂತರ್ಬೋಧೆಯಿಲ್ಲದ ನಡವಳಿಕೆಗೆ ಕಾರಣವಾಗಬಹುದುಃ #include <stdio.h> int ಮುಖ್ಯ (ಶೂನ್ಯ) {int i _ ಮೌಲ್ಯ = 16777217; ಫ್ಲೋಟ್ f _ ಮೌಲ್ಯ = 16777216.0; ಪ್ರಿಂಟಫ್ ("ಪೂರ್ಣಾಂಕವುಃ% d\n", i _ ಮೌಲ್ಯ); ಪ್ರಿಂಟಫ್ ("ಫ್ಲೋಟ್ ಎಂದರೆಃ% f\n", f _ ಮೌಲ್ಯ); ಪ್ರಿಂಟಫ್ ("ಅವುಗಳ ಸಮಾನತೆಃ% d\n", i _ ಮೌಲ್ಯ = = f _ ಮೌಲ್ಯ);} ಫ್ಲೋಟ್ಗಳನ್ನು ಐ. ಇ. ಇ. ಇ. ಏಕ ನಿಖರತೆಯಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಕಂಪೈಲರ್ಗಳ ಮೇಲೆ, ಮತ್ತು ಕನಿಷ್ಠ 32 ಬಿಟ್ಗಳ ಇಂಟುಗಳ ಮೇಲೆ, ಈ ಕೋಡ್ ಈ ವಿಶಿಷ್ಟ ಮುದ್ರಣವನ್ನು ನೀಡುತ್ತದೆಃ ಈ ಬೆಸ ನಡವಳಿಕೆಯನ್ನು ಹೋಲಿಸಿದಾಗ ಫ್ಲೋಟ್ನ ಸೂಚ್ಯ ಪರಿವರ್ತನೆಯಿಂದ ಉಂಟಾಗುತ್ತದೆ. ಪರಿವರ್ತನೆಯು ನಿಖರತೆಯ ನಷ್ಟವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ, ಇದು ಹೋಲಿಕೆ ಮಾಡುವ ಮೊದಲು ಮೌಲ್ಯಗಳನ್ನು ಸಮಾನವಾಗಿಸುತ್ತದೆ. ಪ್ರಮುಖ ಮಾರ್ಗಗಳುಃ ಮೊಟಕುಗೊಳಿಸುವಿಕೆಯನ್ನು ಉಂಟುಮಾಡುವುದು, ಅಂದರೆ, ಭಾಗಶಃ ಭಾಗವನ್ನು ತೆಗೆದುಹಾಕುವುದು. ಅಂಕಿಯ ಪೂರ್ಣಾಂಕಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ. ಇದು ಹೆಚ್ಚಿನ ಆರ್ಡರ್ ಬಿಟ್ಗಳ ಕುಸಿತಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ. ಸೂಚ್ಯ ಪ್ರಕಾರದ ಪರಿವರ್ತನೆಯ ಒಂದು ವಿಶೇಷ ಪ್ರಕರಣವೆಂದರೆ ಪ್ರಕಾರದ ಪ್ರಚಾರ, ಅಲ್ಲಿ ಒಂದು ವಸ್ತುವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮೂಲ ಪ್ರಕಾರದ ಸೂಪರ್ಸೆಟ್ ಅನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಮತ್ತೊಂದು ದತ್ತಾಂಶ ಪ್ರಕಾರವಾಗಿ ಪರಿವರ್ತಿಸಲಾಗುತ್ತದೆ. ಅಂಕಗಣಿತ ಮತ್ತು ತಾರ್ಕಿಕ ಕಾರ್ಯಾಚರಣೆಗಳ ಮೊದಲು, ಅಂತಹ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಸಾಧ್ಯವಾಗಿಸಲು, ಅಥವಾ ಎಎಲ್ಯು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ವಿಧಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಬಹುದಾದರೆ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ, ಗುರಿ ವೇದಿಕೆಯ ಅಂಕಗಣಿತದ ತರ್ಕ ಘಟಕ (ಎಎಲ್ಯು) ದ ಸ್ಥಳೀಯ ಪ್ರಕಾರಕ್ಕಿಂತ ಚಿಕ್ಕದಾದ ಪ್ರಕಾರಗಳೊಂದಿಗೆ ಪ್ರಚಾರಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಸಿ ಮತ್ತು ಸಿ + + ಬೂಲಿಯನ್, ಅಕ್ಷರ, ವಿಶಾಲ ಅಕ್ಷರ, ಎಣಿಕೆ ಮತ್ತು ಸಣ್ಣ ಪೂರ್ಣಾಂಕ ಪ್ರಕಾರಗಳ ವಸ್ತುಗಳಿಗೆ ಅಂತಹ ಪ್ರಚಾರವನ್ನು ನಿರ್ವಹಿಸುತ್ತವೆ, ಇವುಗಳನ್ನು ಇಂಟ್ವರೆಗೆ ಬಡ್ತಿ ನೀಡಲಾಗುತ್ತದೆ ಮತ್ತು ಫ್ಲೋಟ್ ಪ್ರಕಾರದ ವಸ್ತುಗಳಿಗೆ ದ್ವಿಗುಣಗೊಳಿಸಲಾಗುತ್ತದೆ. ಇತರ ಕೆಲವು ರೀತಿಯ ಪರಿವರ್ತನೆಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿ, ಪ್ರಚಾರಗಳು ಎಂದಿಗೂ ನಿಖರತೆಯನ್ನು ಕಳೆದುಕೊಳ್ಳುವುದಿಲ್ಲ ಅಥವಾ ವಸ್ತುವಿನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಮೌಲ್ಯವನ್ನು ಮಾರ್ಪಡಿಸುವುದಿಲ್ಲ. ಜಾವಾದಲ್ಲಿಃ ಇಂಟ್ x = 3; ಡಬಲ್ y = 3.5; System.out.println (x + y);// ಔಟ್ಪುಟ್ 6.5 ಸ್ಪಷ್ಟ ಪ್ರಕಾರದ ಪರಿವರ್ತನೆಯಾಗಿರುತ್ತದೆ, ಸ್ಪಷ್ಟ ಪ್ರಕಾರದ ಪರಿವರ್ತನೆಯನ್ನು ಟೈಪ್ ಕಾಸ್ಟಿಂಗ್ ಎಂದೂ ಕರೆಯಲಾಗುತ್ತದೆ, ಇದು ಒಂದು ಪ್ರಕಾರದ ಪರಿವರ್ತನೆಯಾಗಿದ್ದು, ಇದನ್ನು ಪ್ರೋಗ್ರಾಂನೊಳಗೆ ಸ್ಪಷ್ಟವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ (ಸೂಚ್ಯ ಪ್ರಕಾರದ ಪರಿವರ್ತನೆಗೆ ಭಾಷೆಯ ನಿಯಮಗಳ ಪ್ರಕಾರ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮಾಡುವ ಬದಲು). ಪ್ರೋಗ್ರಾಂನಲ್ಲಿ ಬಳಕೆದಾರರು ಇದನ್ನು ವಿನಂತಿಸುತ್ತಾರೆ. ಡಬಲ್ ಡಾ = 3.3; ಡಬಲ್ ಡಿಬಿ = 3.3; ಡಬಲ್ ಡಿಸಿ = 3.4; ಇಂಟ್ ಫಲಿತಾಂಶ = (ಇಂಟ್) ಡಾ + (ಇಂಟ್) ಡಿಬಿ + (ಇಂಟ್) ಡಿಸಿ;// ಫಲಿತಾಂಶ = = 9// ಸೂಚ್ಯ ಪರಿವರ್ತನೆಯನ್ನು ಬಳಸಿದರೆ ("ಫಲಿತಾಂಶ = ಡಾ + ಡಿಬಿ + ಡಿಸಿ" ಯಂತೆ), ಫಲಿತಾಂಶವು 10ಕ್ಕೆ ಸಮನಾಗಿರುತ್ತದೆ. ಪರಿವರ್ತನೆ ಮಾಡುವ ಮೊದಲು ಪರಿಶೀಲಿಸಿದ, ಗಮ್ಯಸ್ಥಾನದ ಪ್ರಕಾರವು ಮೂಲ ಮೌಲ್ಯವನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳಬಹುದೇ ಎಂದು ನೋಡಲು ರನ್ಟೈಮ್ ಚೆಕ್ ಅನ್ನು ಮಾಡಲಾಗುತ್ತದೆ. ಇಲ್ಲದಿದ್ದರೆ, ದೋಷ ಸ್ಥಿತಿಯನ್ನು ಹೆಚ್ಚಿಸಲಾಗುತ್ತದೆ. ಪರಿಶೀಲಿಸದ ಯಾವುದೇ ಚೆಕ್ ಅನ್ನು ನಡೆಸಲಾಗುವುದಿಲ್ಲ. ಗಮ್ಯಸ್ಥಾನದ ಪ್ರಕಾರವು ಮೂಲ ಮೌಲ್ಯವನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ಫಲಿತಾಂಶವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗುವುದಿಲ್ಲ. ಬಿಟ್ ಮಾದರಿಯು ಮೂಲದ ಕಚ್ಚಾ ಬಿಟ್ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಶಬ್ದಶಃ ನಕಲಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಗಮ್ಯಸ್ಥಾನದ ಪ್ರಕಾರಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಅದನ್ನು ಮರು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗುತ್ತದೆ. ಇದನ್ನು ಅಲಿಯಾಸಿಂಗ್ ಮೂಲಕವೂ ಸಾಧಿಸಬಹುದು. ಆಬ್ಜೆಕ್ಟ್-ಓರಿಯೆಂಟೆಡ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ, ಆಬ್ಜೆಕ್ಟ್ಗಳನ್ನು ಡೌನ್ಕಾಸ್ಟ್ ಮಾಡಬಹುದುಃ ಬೇಸ್ ಕ್ಲಾಸ್ನ ಉಲ್ಲೇಖವನ್ನು ಅದರ ವ್ಯುತ್ಪನ್ನ ವರ್ಗಗಳಲ್ಲಿ ಒಂದಕ್ಕೆ ಹಾಕಲಾಗುತ್ತದೆ. ಸಿ #ಮತ್ತು ಸಿ + + ಅನ್ನು ಸಿ #ನಲ್ಲಿ ಸುರಕ್ಷಿತ ಅಥವಾ ಅಸುರಕ್ಷಿತ (ಅಂದರೆ, ಸಿ-ರೀತಿಯ) ರೀತಿಯಲ್ಲಿ ಪರಿವರ್ತಿಸಬಹುದು, ಮೊದಲನೆಯದನ್ನು ಚೆಕ್ಡ್ ಟೈಪ್ ಕಾಸ್ಟ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಪ್ರಾಣಿ ಪ್ರಾಣಿ = ಹೊಸ ಬೆಕ್ಕು (); ಬುಲ್ಡಾಗ್ ಬಿ = (ಬುಲ್ಡಾಗ್) ಪ್ರಾಣಿ;// (ಪ್ರಾಣಿ ಬುಲ್ಡಾಗ್ ಆಗಿದ್ದರೆ), stat.type (ಪ್ರಾಣಿ) ಬುಲ್ಡಾಗ್ ಆಗಿದ್ದರೆ, ಇಲ್ಲದಿದ್ದರೆ ಬಿ = ಬುಲ್ಡಾಗ್ ಎಂದು ಪ್ರಾಣಿ;// (ಪ್ರಾಣಿ ಬುಲ್ಡಾಗ್ ಆಗಿದ್ದರೆ), ಬಿ = (ಬುಲ್ಡಾಗ್) ಪ್ರಾಣಿ, ಇಲ್ಲದಿದ್ದರೆ ಬಿ = ಶೂನ್ಯ ಪ್ರಾಣಿ = ಶೂನ್ಯ; ಬಿ = ಬುಲ್ಡಾಗ್ ಎಂದು ಪ್ರಾಣಿ;// ಬಿ = = ಶೂನ್ಯ ಸಿ + + ಶೈಲಿಯ ಎರಕಹೊಯ್ದ ವಾಕ್ಯರಚನೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಇದೇ ರೀತಿಯ ಪರಿಣಾಮವನ್ನು ಸಾಧಿಸಬಹುದು. ಅನಿಮಲ್ * ಅನಿಮಲ್ = ನ್ಯೂ ಕ್ಯಾಟ್; ಬುಲ್ಡಾಗ್ * ಬಿ = ಸ್ಟ್ಯಾಟಿಕ್ _ ಕಾಸ್ಟ್ <ಬುಲ್ಡಾಗ್ *> (ಅನಿಮಲ್);// ಪ್ರಾಣಿ ಅಥವಾ ಬುಲ್ಡಾಗ್ ಒಂದನ್ನು ಇನ್ನೊಂದರಿಂದ ಪಡೆದಾಗ ಮಾತ್ರ ಕಂಪೈಲ್ ಮಾಡುತ್ತದೆ (ಅಥವಾ ಅದೇ) ಬಿ = ಡೈನಾಮಿಕ್ _ ಕಾಸ್ಟ್ <ಬುಲ್ಡಾಗ್ *> (ಅನಿಮಲ್);// (ಪ್ರಾಣಿ ಬುಲ್ಡಾಗ್ ಆಗಿದ್ದರೆ), ಬಿ = (ಬುಲ್ಡಾಗ್) ಪ್ರಾಣಿ, ಇಲ್ಲದಿದ್ದರೆ ಬಿ = ನಲ್ಪ್ಟರ್ ಬುಲ್ಡಾಗ್ & ಬಿಆರ್ = ಸ್ಟ್ಯಾಟಿಕ್ _ ಕಾಸ್ಟ್ <ಬುಲ್ಡಾಗ್ &> (ಅನಿಮಲ್);// ಮೇಲಿನಂತೆಯೇ ಇರುತ್ತದೆ, ಆದರೆ ನಲ್ಪ್ಟರ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸಬೇಕಾದರೆ ಎಕ್ಸೆಪ್ಶನ್ ಅನ್ನು ಎಸೆಯಲಾಗುತ್ತದೆ// ಇದು ಕೋಡ್ನಲ್ಲಿ ಕಾಣಿಸುವುದಿಲ್ಲ ಅಲ್ಲಿ ಎಕ್ಸೆಪ್ಶನ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ಅನ್ನು ಪ್ರಾಣಿಗಳನ್ನು ಅಳಿಸುವುದನ್ನು ತಪ್ಪಿಸಲಾಗುತ್ತದೆ;// ಯಾವಾಗಲೂ ಉಚಿತ ಸಂಪನ್ಮೂಲಗಳಾದ ಪ್ರಾಣಿ = ನಲ್ಪ್ಟರ್; ಬಿ = ಡೈನಾಮಿಕ್ _ ಕಾಸ್ಟ್ <ಬುಲ್ಡಾಗ್ ನಿಯೋಜನೆಯ ನಿಯಮವು ಹೀಗೆ ಹೇಳುತ್ತದೆಃ x: = y ನಂತಹ ನಿಯೋಜನೆಯು ಅದರ ಮೂಲ ಅಭಿವ್ಯಕ್ತಿಯ ಪ್ರಕಾರ, ಈ ಸಂದರ್ಭದಲ್ಲಿ y, ಅದರ ಗುರಿ ಘಟಕದ ಪ್ರಕಾರದೊಂದಿಗೆ ಹೊಂದಿಕೆಯಾದರೆ ಮಾತ್ರ ಮಾನ್ಯವಾಗಿರುತ್ತದೆ, ಈ ಸಂದರ್ಭದಲ್ಲಿ x. ಈ ನಿಯಮದಲ್ಲಿ, ಮೂಲ ಅಭಿವ್ಯಕ್ತಿಯ ಪ್ರಕಾರವು ಗುರಿಯೊಂದಿಗೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ ಅಥವಾ ಪರಿವರ್ತಿಸುತ್ತದೆ ಎಂದರ್ಥ. ಪ್ರಕಾರಗಳ ಅನುಸರಣೆಯನ್ನು ಆಬ್ಜೆಕ್ಟ್-ಓರಿಯೆಂಟೆಡ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ನಲ್ಲಿ ಪಾಲಿಮಾರ್ಫಿಸಮ್ನ ಪರಿಚಿತ ನಿಯಮಗಳಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಮೇಲಿನ ನಿಯೋಜನೆಯಲ್ಲಿ, y ಆಧಾರಿತವಾಗಿರುವ ವರ್ಗವು x ಆಧಾರಿತವಾಗಿರುವ ವರ್ಗದ ವಂಶಸ್ಥರಾಗಿದ್ದರೆ, y ಪ್ರಕಾರವು x ಪ್ರಕಾರಕ್ಕೆ ಅನುಗುಣವಾಗಿರುತ್ತದೆ. ಐಫೆಲ್ನಲ್ಲಿನ ಪ್ರಕಾರ ಪರಿವರ್ತನೆಯ ವ್ಯಾಖ್ಯಾನ ನಿರ್ದಿಷ್ಟವಾಗಿ ಪರಿವರ್ತನೆಗೊಳ್ಳುವ ಮತ್ತು ಅದರಿಂದ ಪರಿವರ್ತನೆಗೊಳ್ಳುವ ಐಫೆಲ್ನಲ್ಲಿನ ಪ್ರಕಾರ ಪರಿವರ್ತನೆಯ ಕ್ರಿಯೆಗಳನ್ನು ಈ ರೀತಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆಃ ಒಂದು ವರ್ಗವನ್ನು ಆಧರಿಸಿದ ಒಂದು ಪ್ರಕಾರವು ಸಿಟಿ ವರ್ಗವನ್ನು ಆಧರಿಸಿದ ಟಿ ವರ್ಗಕ್ಕೆ ಪರಿವರ್ತಿಸುತ್ತದೆ (ಮತ್ತು ಟಿ ಯು ಯಿಂದ ಪರಿವರ್ತನೆಗೊಳ್ಳುತ್ತದೆ) ಎರಡೂ ಸಿಟಿ ಯು ಅನ್ನು ಪರಿವರ್ತನೆ ಪ್ರಕಾರವಾಗಿ ಬಳಸುವ ಪರಿವರ್ತನೆ ವಿಧಾನವನ್ನು ಹೊಂದಿದ್ದರೆ, ಅಥವಾ ಸಿಯು ಟಿ ಅನ್ನು ಪರಿವರ್ತನೆ ಪ್ರಕಾರವಾಗಿ ಪಟ್ಟಿ ಮಾಡುವ ಪರಿವರ್ತನೆ ಪ್ರಶ್ನೆಯನ್ನು ಹೊಂದಿದ್ದರೆ ಉದಾಹರಣೆ ಐಫೆಲ್ ಮೈಕ್ರೋಸಾಫ್ಟ್. ನೆಟ್ ಫ್ರೇಮ್ವರ್ಕ್ಗೆ ಸಂಪೂರ್ಣವಾಗಿ ಅನುಗುಣವಾದ ಭಾಷೆಯಾಗಿದೆ. . ನೆಟ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಮೊದಲು, ಐಫೆಲ್ ಈಗಾಗಲೇ ವ್ಯಾಪಕವಾದ ವರ್ಗ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಹೊಂದಿತ್ತು. . NET ಪ್ರಕಾರದ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಬಳಸುವುದು, ವಿಶೇಷವಾಗಿ ಸ್ಟ್ರಿಂಗ್ಗಳಂತಹ ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸುವ ಪ್ರಕಾರಗಳೊಂದಿಗೆ, ಪರಿವರ್ತನೆಯ ಸಮಸ್ಯೆಯನ್ನು ಒಡ್ಡುತ್ತದೆ. ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಐಫೆಲ್ ತಂತ್ರಾಂಶವು ಐಫೆಲ್ ಗ್ರಂಥಾಲಯಗಳಿಂದ ಸ್ಟ್ರಿಂಗ್ ವರ್ಗಗಳನ್ನು ಬಳಸುತ್ತದೆ (ಉದಾಹರಣೆಗೆ ಸ್ಟ್ರಿಂಗ್ _ 8), ಆದರೆ. NET ಗಾಗಿ ಬರೆಯಲಾದ ಐಫೆಲ್ ತಂತ್ರಾಂಶವು ಅನೇಕ ಸಂದರ್ಭಗಳಲ್ಲಿ. NET ಸ್ಟ್ರಿಂಗ್ ವರ್ಗವನ್ನು (System.String) ಬಳಸಬೇಕು, ಉದಾಹರಣೆಗೆ. NET ವಿಧಾನಗಳಿಗೆ ಕರೆ ಮಾಡುವಾಗ. ಆದ್ದರಿಂದ, ಈ ಪ್ರಕಾರಗಳ ಹಿಂದಕ್ಕೆ ಮತ್ತು ಮುಂದಕ್ಕೆ ಪರಿವರ್ತನೆಯು ಸಾಧ್ಯವಾದಷ್ಟು ತಡೆರಹಿತವಾಗಿರಬೇಕು. ಮೈ _ ಸ್ಟ್ರಿಂಗ್ಃ ಸ್ಟ್ರಿಂಗ್ _ 8-- ಸ್ಥಳೀಯ ಐಫೆಲ್ ಸ್ಟ್ರಿಂಗ್ ಮೈ _ ಸಿಸ್ಟಮ್ _ ಸ್ಟ್ರಿಂಗ್ಃ ಸಿಸ್ಟೆಮ್ _ ಸ್ಟ್ರಿಂಗ್-- ಸ್ಥಳೀಯ. ನೆಟ್ ಸ್ಟ್ರಿಂಗ್. ಮೈ _ ಸ್ಟ್ರಿಂಗ್ಃ = ಮೈ _ ಸಿಸ್ಟಮ್ _ ಸ್ಟ್ರಿಂಗ್ ಮೇಲಿನ ಕೋಡ್ನಲ್ಲಿ, ಎರಡು ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ಘೋಷಿಸಲಾಗಿದೆ, ಪ್ರತಿಯೊಂದೂ ವಿಭಿನ್ನ ಪ್ರಕಾರಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ (ಸಿಸ್ಟೆಮ್ _ ಸ್ಟ್ರಿಂಗ್ ಎಂಬುದು System.String ಗಾಗಿ ಐಫೆಲ್ ಕಂಪ್ಲೈಂಟ್ ಅಲಿಯಾಸ್ ಆಗಿದೆ). ಏಕೆಂದರೆ System.String STRIG _ 8 ಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ, ನಂತರ ಮೇಲಿನ ನಿಯೋಜನೆಯು System.String ಅನ್ನು STRIG _ 8 ಗೆ ಪರಿವರ್ತಿಸಿದರೆ ಮಾತ್ರ ಮಾನ್ಯವಾಗಿರುತ್ತದೆ. ಐಫೆಲ್ ವರ್ಗದ ಸ್ಟ್ರಿಂಗ್ _ 8, System.String ಪ್ರಕಾರದ ವಸ್ತುಗಳಿಗೆ ಮೇಕ್ _ ಫ್ರಮ್ _ ಸಿಲ್ ಅನ್ನು ಪರಿವರ್ತಿಸುವ ವಿಧಾನವನ್ನು ಹೊಂದಿದೆ. ಪರಿವರ್ತನೆ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಯಾವಾಗಲೂ ಸೃಷ್ಟಿ ಕಾರ್ಯವಿಧಾನಗಳೆಂದು ಹೆಸರಿಸಲಾಗುತ್ತದೆ (ಕನ್ಸ್ಟ್ರಕ್ಟರ್ಗಳಂತೆಯೇ). ಈ ಕೆಳಗಿನವು ಸ್ಟ್ರಿಂಗ್ _ 8 ವರ್ಗದ ಆಯ್ದ ಭಾಗವಾಗಿದೆಃ ಸ್ಟ್ರಿಂಗ್ _ 8 ವರ್ಗ. ಮೇಕ್ _ ಫ್ರಮ್ _ ಸಿಲ್ ಅನ್ನು ರಚಿಸಿ. ಮೇಕ್ _ ಫ್ರಮ್ _ ಸಿಲ್ ಅನ್ನು ಪರಿವರ್ತಿಸಿ ({SYSTEM _ STRING}). ಪರಿವರ್ತನೆ ಕಾರ್ಯವಿಧಾನದ ಉಪಸ್ಥಿತಿಯು ಈ ನಿಯೋಜನೆಯನ್ನು ಮಾಡುತ್ತದೆಃ ಮೈ _ ಸ್ಟ್ರಿಂಗ್ಃ = ಮೈ _ ಸಿಸ್ಟಮ್ _ ಸ್ಟ್ರಿಂಗ್ ಶಬ್ದಾರ್ಥವಾಗಿ ಸಮಾನವಾಗಿರುತ್ತದೆಃ ಕ್ರಿಯೇಟ್ my_string.make_from_cil (ಮೈ _ ಸಿಸ್ಟಮ್ _ ಸ್ಟ್ರಿಂಗ್) ಇದರಲ್ಲಿ ಮೈ _ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಮೈ _ ಸಿಸ್ಟಮ್ _ ಸ್ಟ್ರಿಂಗ್ಗೆ ಸಮಾನವಾದ ವಿಷಯದೊಂದಿಗೆ STRING _ 8 ಪ್ರಕಾರದ ಹೊಸ ವಸ್ತುವಾಗಿ ನಿರ್ಮಿಸಲಾಗಿದೆ. ಮೂಲ ಮೂಲ ಮತ್ತು ಗುರಿಯ ಹಿಮ್ಮುಖದೊಂದಿಗೆ ನಿಯೋಜನೆಯನ್ನು ನಿರ್ವಹಿಸಲುಃ ಮೈ _ ಸಿಸ್ಟಮ್ _ ಸ್ಟ್ರಿಂಗ್ಃ = ಮೈ _ ಸ್ಟ್ರಿಂಗ್ ವರ್ಗ STRING _ 8 ಸಹ _ cil ಗೆ ಪರಿವರ್ತನೆ ಪ್ರಶ್ನೆಯನ್ನು ಹೊಂದಿರುತ್ತದೆ, ಇದು STRING _ 8 ನ ನಿದರ್ಶನದಿಂದ System.String ಅನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ. ವರ್ಗ ಸ್ಟ್ರಿಂಗ್ _ 8. ಮೇಕ _ ಫ್ರಮ್ _ ಸಿಲ್ ಅನ್ನು ರಚಿಸಿ. ಮೇಕ _ ಫ್ರಮ್ _ ಸಿಲ್ ಅನ್ನು ({ಸಿಸ್ಟಮ್ _ ಸ್ಟ್ರಿಂಗ್}) _ ಸಿಲ್ಃ {ಸಿಸ್ಟಮ್ _ ಸ್ಟ್ರಿಂಗ್} ಗೆ ಪರಿವರ್ತಿಸಿ. ಅಸೈನ್ಮೆಂಟ್ಃ ಮೈ _ ಸಿಸ್ಟಮ್ _ ಸ್ಟ್ರಿಂಗ್ಃ = ಮೈ _ ಸ್ಟ್ರಿಂಗ್ ನಂತರ, ಇದಕ್ಕೆ ಸಮನಾಗಿರುತ್ತದೆಃ ಮೈ _ ಸಿಸ್ಟಮ್ _ ಸ್ಟ್ರಿಂಗ್ಃ = my_string.to_cil ಐಫೆಲ್ನಲ್ಲಿ, ಟೈಪ್ ಪರಿವರ್ತನೆಯ ಸೆಟಪ್ ಅನ್ನು ಕ್ಲಾಸ್ ಕೋಡ್ನಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ, ಆದರೆ ನಂತರ ಕ್ಲೈಂಟ್ ಕೋಡ್ನಲ್ಲಿ ಸ್ಪಷ್ಟವಾದ ರೀತಿಯ ಪರಿವರ್ತನೆಯಾಗಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸಂಭವಿಸುತ್ತದೆ. ಇದು ಕೇವಲ ನಿಯೋಜನೆಗಳನ್ನು ಮಾತ್ರವಲ್ಲದೆ ಆರ್ಗ್ಯುಮೆಂಟ್ (ನಿಯತಾಂಕ) ಪರ್ಯಾಯಗಳಂತಹ ಇತರ ರೀತಿಯ ಲಗತ್ತುಗಳನ್ನು ಸಹ ಒಳಗೊಂಡಿದೆ. ರಸ್ಟ್ ರಸ್ಟ್ ಪ್ರಾಚೀನ ಪ್ರಕಾರಗಳ ನಡುವೆ ಯಾವುದೇ ಸೂಚ್ಯ ರೀತಿಯ ಪರಿವರ್ತನೆಯನ್ನು (ದಬ್ಬಾಳಿಕೆ) ಒದಗಿಸುವುದಿಲ್ಲ. ಆದರೆ, ಸ್ಪಷ್ಟ ಪ್ರಕಾರದ ಪರಿವರ್ತನೆ (ಕಾಸ್ಟಿಂಗ್) ಅನ್ನು ಕೀವರ್ಡ್ ಆಗಿ ಬಳಸಬಹುದು. x = 1000 ಎಂದು ಭಾವಿಸೋಣ; ಮುದ್ರಿಸು! ("1000 ಯು 16 ಎಂದರೆಃ {}", x ಯು 16 ಆಗಿ); ಟ್ಯಾಗ್ ಮಾಡದ ಒಕ್ಕೂಟಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸೂಚ್ಯ ಎರಕಹೊಯ್ದ ಅನೇಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಅನೇಕ ಪ್ರಕಾರಗಳ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿರುವ ಒಕ್ಕೂಟ ಪ್ರಕಾರಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತವೆ. ಟ್ಯಾಗ್ ಮಾಡದ ಒಕ್ಕೂಟಗಳನ್ನು ಸಿ ಮತ್ತು ಪಿಎಲ್/ಐ ನಂತಹ ಸಡಿಲವಾದ ಟೈಪ್-ಚೆಕಿಂಗ್ನೊಂದಿಗೆ ಕೆಲವು ಭಾಷೆಗಳಲ್ಲಿ ಒದಗಿಸಲಾಗಿದೆ, ಆದರೆ ಮೂಲ ಪ್ಯಾಸ್ಕಲ್ನಲ್ಲಿಯೂ ಸಹ ಒದಗಿಸಲಾಗಿದೆ. ಒಂದು ವಿಧದ ಬಿಟ್ ಮಾದರಿಯನ್ನು ಮತ್ತೊಂದು ಪ್ರಕಾರದ ಮೌಲ್ಯವೆಂದು ವ್ಯಾಖ್ಯಾನಿಸಲು ಇವುಗಳನ್ನು ಬಳಸಬಹುದು. ಭದ್ರತಾ ಸಮಸ್ಯೆಗಳು ಹ್ಯಾಕಿಂಗ್ನಲ್ಲಿ, ಟೈಪ್ಕಾಸ್ಟಿಂಗ್ ಎಂದರೆ ವೇರಿಯೇಬಲ್ನ ಡೇಟಾ ಪ್ರಕಾರವನ್ನು ಅದನ್ನು ಮೂಲತಃ ವ್ಯಾಖ್ಯಾನಿಸಿದ ರೀತಿಯಿಂದ ತಾತ್ಕಾಲಿಕವಾಗಿ ಬದಲಾಯಿಸಲು ಟೈಪ್ ಪರಿವರ್ತನೆಯ ದುರುಪಯೋಗವಾಗಿದೆ. ಇದು ಹ್ಯಾಕರ್ಗಳಿಗೆ ಅವಕಾಶಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ಏಕೆಂದರೆ ವೇರಿಯೇಬಲ್ನ ನಂತರ "ಟೈಪ್ಕಾಸ್ಟ್" ಅನ್ನು ಬೇರೆ ಡೇಟಾ ಪ್ರಕಾರವಾಗಿ ಪರಿವರ್ತಿಸುವುದರಿಂದ, ಕಂಪೈಲರ್ ಆ ಹ್ಯಾಕ್ ಮಾಡಲಾದ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಆ ನಿರ್ದಿಷ್ಟ ಕಾರ್ಯಾಚರಣೆಗೆ ಹೊಸ ಡೇಟಾ ಪ್ರಕಾರವೆಂದು ಪರಿಗಣಿಸುತ್ತದೆ. ಸಿ + + ಸಿ + + ನಲ್ಲಿ ಅದಾ ಕಾಸ್ಟಿಂಗ್ನಲ್ಲಿ ಕಾಸ್ಟಿಂಗ್ ಬಾಹ್ಯ ಕೊಂಡಿಗಳು, ನಾನು ಸಿ + + ಕಾಸ್ಟ್ ಆಪರೇಟರ್ಗಳನ್ನು ಏಕೆ ದ್ವೇಷಿಸುತ್ತೇನೆ ಎಂಬ ಉಲ್ಲೇಖ ಮಾರ್ಗದರ್ಶಿ, ಡ್ಯಾನಿ ಕಲೇವ್ ಅವರಿಂದ ಜಾವಾದಲ್ಲಿ ಕಾಸ್ಟಿಂಗ್, ಸಿ #ಇಂಪ್ಲಿಸಿಟ್ ಟೈಪ್ ಕಾಸ್ಟಿಂಗ್ನಲ್ಲಿ ಇಂಪ್ಲಿಸಿಟ್ ಪರಿವರ್ತನೆಗಳು, ಎಫ್ #ಡೇಟಾ ಪ್ರಕಾರಗಳಲ್ಲಿ ಆಪರೇಟರ್ಗಳು (ಪ್ರೋಗ್ರಾಮಿಂಗ್) ಟೈಪ್ ಥಿಯರಿ ಅನರಿ ಕಾರ್ಯಾಚರಣೆಗಳು