ಮಂಗಳವಾರ, ಜನವರಿ 3, 2012

ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಪ್ರಪಂಚ

ಟಿ. ಜಿ. ಶ್ರೀನಿಧಿ

ಕಂಪ್ಯೂಟರ್ ಏನೇನೆಲ್ಲ ಮಾಡುತ್ತದಲ್ಲ! ಮದುವೆ ಇನ್ವಿಟೇಷನ್ ವಿನ್ಯಾಸದಿಂದ ಪ್ರಾರಂಭಿಸಿ ರಾಕೆಟ್ ಉಡಾವಣೆಯ ನಿಯಂತ್ರಣದವರೆಗೆ ಈಗ ಎಲ್ಲವುದಕ್ಕೂ ಕಂಪ್ಯೂಟರ್ ಬೇಕೇ ಬೇಕು.

ಆದರೆ ಕಂಪ್ಯೂಟರ್‌ಗೆ ಸ್ವಂತ ಬುದ್ಧಿ ಇರುವುದಿಲ್ಲ. ಇಂತಿಂತಹ ಕೆಲಸಗಳನ್ನು ಇಂಥದ್ದೇ ರೀತಿಯಲ್ಲಿ ಮಾಡು ಎಂದು ಹೇಳದ ಹೊರತು ಅದು ಯಾವ ಕೆಲಸವನ್ನೂ ಮಾಡುವುದಿಲ್ಲ, ಮತ್ತು ನಾವು ಹೇಳಿದ ಕೆಲಸವನ್ನು ನಾವು ಹೇಳಿದಂತೆ ಮಾತ್ರ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ ಒಂದು + ಒಂದು ಎಷ್ಟು ಎಂದು ಯಾರಾದರೂ ಕೇಳಿದಾಗ ಹನ್ನೊಂದು ಎಂದು ಉತ್ತರಿಸಲು ಅದಕ್ಕೆ ಹೇಳಿಕೊಟ್ಟಿದ್ದೇವೆ ಎಂದುಕೊಳ್ಳೋಣ; ಆಮೇಲೆ ಅದೆಷ್ಟು ಬಾರಿ ಕೇಳಿದರೂ ಸಿಗುವುದು ಒಂದು + ಒಂದು = ಹನ್ನೊಂದು ಎಂಬ ಉತ್ತರವೇ!

ಹೀಗೆ ಪ್ರತಿಯೊಂದು ಕೆಲಸವನ್ನೂ ಮಾಡಲು ಕಂಪ್ಯೂಟರ್‌ಗೆ ಕೊಡಬೇಕಾದ ನಿರ್ದೇಶನಗಳನ್ನು ಪ್ರೋಗ್ರಾಮ್(ಕ್ರಮವಿಧಿ)ಗಳ ರೂಪದಲ್ಲಿ ಬರೆಯಲಾಗಿರುತ್ತದೆ. ಕಂಪ್ಯೂಟರ್ ಯಾವುದೇ ಕೆಲಸ ಮಾಡುವಾಗಲೂ ಅದಕ್ಕೆ ಸಂಬಂಧಪಟ್ಟ ಪ್ರೋಗ್ರಾಮಿನಲ್ಲಿರುವ ನಿರ್ದೇಶನಗಳನ್ನು ಕಡ್ಡಾಯವಾಗಿ ಪಾಲಿಸುತ್ತದೆ.

ಪ್ರೋಗ್ರಾಮಿಂಗ್
ಈಗ ನಾವು ಕಂಪ್ಯೂಟರ್‌ಗೆ ಎರಡು ಸಂಖ್ಯೆಗಳನ್ನು ಕೂಡಲು ಹೇಳಿಕೊಡಬೇಕು ಎಂದರೆ "ಮೊದಲನೇ ಸಂಖ್ಯೆಯನ್ನು ಓದು, ಎರಡನೇ ಸಂಖ್ಯೆಯನ್ನು ಓದು, ಅವೆರಡನ್ನೂ ಕೂಡಿ ಮೂರನೆಯದೊಂದು ಸಂಖ್ಯೆಯಾಗಿ ಉಳಿಸಿಟ್ಟುಕೋ, ಆ ಮೂರನೆಯ ಸಂಖ್ಯೆ ಎಷ್ಟು ಎನ್ನುವುದನ್ನು ಪರದೆಯ ಮೇಲೆ ತೋರಿಸು" ಎಂದು ಪ್ರತಿ ಹೆಜ್ಜೆಯನ್ನೂ ಪ್ರತ್ಯೇಕವಾಗಿ ವಿವರಿಸಬೇಕು. ಒಟ್ಟಿನಲ್ಲಿ ಪ್ರೋಗ್ರಾಮ್‌ನ ಉದ್ದೇಶ ಏನೇ ಇರಲಿ, ಯಾವ ದತ್ತಾಂಶ ಬಳಸಬೇಕು, ಆ ದತ್ತಾಂಶ ಬಳಸಿ ಏನು ಮಾಡಬೇಕು, ಫಲಿತಾಂಶವನ್ನು ಎಲ್ಲಿ ಹೇಗೆ ಕೊಡಬೇಕು ಎಂಬಂತಹ ಎಲ್ಲ ಅಂಶಗಳೂ ಈ ವಿವರಣೆಯಲ್ಲಿ ಇರಬೇಕು.

ಹೀಗೆ ಯಾವಾಗ ಏನನ್ನು ಯಾವ ಕ್ರಮದಲ್ಲಿ ಮಾಡಬೇಕೆಂದು ಕಂಪ್ಯೂಟರ್‌ಗೆ ಹೇಳಿಕೊಡುವ ಕೆಲಸವಿದೆಯಲ್ಲ, ಅದಕ್ಕೆ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಎಂದು ಹೆಸರು. ಈ ಕೆಲಸ ಮಾಡುವವರು ಪ್ರೋಗ್ರಾಮರ್‌ಗಳು.

ಸಾಫ್ಟ್‌ವೇರ್
ಯಾವುದೇ ಕೆಲಸವನ್ನು ನಿರ್ದಿಷ್ಟ ಸಮಸ್ಯೆಗಳನ್ನಾಗಿ ವಿಂಗಡಿಸಿಕೊಂಡು ಪ್ರತಿಯೊಂದು ಸಮಸ್ಯೆಯನ್ನೂ ಹಂತಹಂತವಾಗಿ ಪರಿಹರಿಸಲು ಪ್ರೋಗ್ರಾಮ್‌ಗಳು ಪ್ರಯತ್ನಿಸುತ್ತವೆ. ಹೀಗಾಗಿಯೇ ಕ್ಲಿಷ್ಟ ಕೆಲಸಗಳನ್ನು ಕೈಗೊಳ್ಳಲು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಪ್ರೋಗ್ರಾಮ್‌ಗಳು ಬೇಕಾಗುತ್ತವೆ. ದೊಡ್ಡದೊಂದು ಸಂಸ್ಥೆಯ ವ್ಯವಹಾರಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಒಂದು + ಒಂದು = ಎರಡು ಎಂದು ಹೇಳುವಂತಹ ಸರಳ ಪ್ರೋಗ್ರಾಮ್‌ಗಳು ಸಾಕಾಗುವುದಿಲ್ಲವಲ್ಲ! ಅಷ್ಟು ಕಷ್ಟದ ಕೆಲಸಗಳಿಗೆ ಹಲವಾರು ಪ್ರೋಗ್ರಾಮ್‌ಗಳನ್ನು ಒಟ್ಟಿಗೆ ಬಳಸಲಾಗುತ್ತದೆ. ಪ್ರೋಗ್ರಾಮ್‌ಗಳ ಇಂತಹ ಸಂಗ್ರಹವನ್ನೇ ನಾವು ಸಾಫ್ಟ್‌ವೇರ್ (ತಂತ್ರಾಂಶ) ಎಂದು ಕರೆಯುತ್ತೇವೆ.

ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ
ಕಂಪ್ಯೂಟರ್‌ಗಳು ಬೇರೆಬೇರೆ ರೀತಿಯ ದತ್ತಾಂಶಗಳನ್ನು ಸಂಸ್ಕರಿಸಬಲ್ಲವು, ಹಲವು ಬಗೆಯ ಮಾಹಿತಿಯನ್ನು ಉಳಿಸಿಟ್ಟುಕೊಳ್ಳಲೂ ಬಲ್ಲವು. ಆದರೆ ಇವೆಲ್ಲವನ್ನೂ ಕಂಪ್ಯೂಟರ್ ಶೇಖರಿಸಿಟ್ಟುಕೊಳ್ಳುವುದು ದ್ವಿಮಾನ ಪದ್ಧತಿಯ ಅಂಕಿಗಳ (ಬೈನರಿ ಡಿಜಿಟ್ ಅಥವಾ ಬಿಟ್) ರೂಪದಲ್ಲಿ. ಕಂಪ್ಯೂಟರ್‌ನ ಸ್ಮೃತಿಯಲ್ಲಿ ಏನು ಉಳಿಯಬೇಕಾದರೂ ಅದು ಒಂದು ಅಥವಾ ಸೊನ್ನೆಯ ರೂಪದಲ್ಲಷ್ಟೆ ಇರಲು ಸಾಧ್ಯ - ನೀವು ದಾಖಲಿಸುವ ದತ್ತಾಂಶ, ಬರೆದಿಟ್ಟಿರುವ ಪ್ರೋಗ್ರಾಮ್, ಉಳಿಸಿಡುವ ಕಡತಗಳು ಎಲ್ಲವುದಕ್ಕೂ ಇದೇ ನಿಯಮ ಅನ್ವಯವಾಗುತ್ತದೆ.

ಸೊನ್ನೆ ಮತ್ತು ಒಂದರ ಬೇರೆಬೇರೆ ಸಂಯೋಜನೆಗಳನ್ನು ಉದ್ದಕ್ಕೆ ಬರೆದಿಟ್ಟರೆ ಅದು ನಮಗೆ ಅರ್ಥವಾಗದಿರಬಹುದು; ಆದರೆ ಕಂಪ್ಯೂಟರ್ ಅದನ್ನು ಓದಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬಲ್ಲದು. ನಮಗೆ ಕನ್ನಡ ಇಂಗ್ಲಿಷ್ ಇತ್ಯಾದಿಗಳೆಲ್ಲ ಇದ್ದಂತೆ ಅದು ಕಂಪ್ಯೂಟರ್‌ನ ಭಾಷೆ; ಅದರ ಹೆಸರೂ ಮಷೀನ್ ಲ್ಯಾಂಗ್ವೆಜ್ (ಯಂತ್ರ ಭಾಷೆ) ಎಂದೇ.

ಆದರೆ ಯಂತ್ರಗಳ ಈ ವಿಚಿತ್ರ ಭಾಷೆಯಲ್ಲಿ ವ್ಯವಹರಿಸುವುದು ಪ್ರೋಗ್ರಾಮರ್‌ಗಳಿಗೆ ಕಷ್ಟವಾಗುತ್ತದೆ. ೧ ಬರೆಯುವ ಕಡೆ ೦, ೦ ಬರೆಯುವ ಕಡೆ ೧ ಬರೆದಿಟ್ಟರೆ ಪ್ರೋಗ್ರಾಮಿನ ಫಲಿತಾಂಶ ದೇವರೇ ಗತಿ! ಒಂದು ವೇಳೆ ಸರಿಯಾಗಿ ಬರೆದೆವೆಂದೇ ಇಟ್ಟುಕೊಂಡರೂ ಬರೆದದ್ದನ್ನು ಇನ್ನೊಮ್ಮೆ ನೋಡಿದರೆ ತಕ್ಷಣಕ್ಕೆ ತಲೆ-ಬುಡ ಒಂದೂ ಅರ್ಥವಾಗುವುದಿಲ್ಲ.

ಹೀಗಾಗಿಯೇ ಪ್ರೋಗ್ರಾಮ್ ಬರೆಯಲು ಬೇರೆಯದೇ ಭಾಷೆಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಅವುಗಳನ್ನು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳೆಂದು ಕರೆಯುತ್ತಾರೆ. ಬೇಸಿಕ್, ಸಿ, ಸಿ++, ಜಾವಾ, ಕೋಬಾಲ್, ವಿಬಿ, ಪರ್ಲ್ ಇತ್ಯಾದಿಗಳೆಲ್ಲ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳೇ. ಬೇರೆಬೇರೆ ಸನ್ನಿವೇಶಗಳಿಗೆ, ಅಗತ್ಯಗಳಿಗೆ ತಕ್ಕಂತೆ ಇವುಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.

ಕನ್ನಡದಲ್ಲೇ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮಾಡಿ! ಕಂಪ್ಯೂಟರ್ ಎಂದಾಕ್ಷಣ ಅದರ ವ್ಯವಹಾರವೆಲ್ಲ ಇಂಗ್ಲಿಷಿನಲ್ಲಿರಬೇಕು ಎನ್ನುವ ಅಭಿಪ್ರಾಯ ಈಗಿಲ್ಲ ನಿಜ. ಆದರೆ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮಾಡಲು ಇಂಗ್ಲಿಷ್ ಜ್ಞಾನ ಬೇಕು ಎನ್ನುವ ಅಭಿಪ್ರಾಯ ಅಲ್ಲಲ್ಲಿ ಈಗಲೂ ಇದೆ. ಈ ಅಭಿಪ್ರಾಯವನ್ನು ಹೋಗಲಾಡಿಸಲು ೨೦೦೩ರಷ್ಟು ಹಿಂದೆಯೇ ಪ್ರಯತ್ನಿಸಿದವರು ಡಾ| ಯು. ಬಿ. ಪವನಜ. ಚಿಕ್ಕ ಮಕ್ಕಳಿಗೆ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಕಲಿಸಲು ರೂಪಿಸಲಾದ 'ಲೋಗೋ' ಭಾಷೆಯನ್ನು ಅವರು ಕನ್ನಡಕ್ಕೆ ತಂದಿದ್ದಾರೆ. ಕನ್ನಡ ಭಾಷೆಯನ್ನಷ್ಟೆ ಬಲ್ಲ ಮಕ್ಕಳು ಕೂಡ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮಾಡಲು ಇದು ಸಹಾಯಮಾಡುತ್ತದೆ. ಡಿಜಿಟಲ್ ಎಂಪವರ್‌ಮೆಂಟ್ ಫೌಂಡೇಶನ್‌ನಿಂದ 'ಮಂಥನ್' ಪ್ರಶಸ್ತಿ ಪಡೆದಿರುವ 'ಕನ್ನಡ ಲೋಗೋ' ಅನ್ನು ವಿಶ್ವಕನ್ನಡ ತಾಣದಿಂದ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿಕೊಳ್ಳಬಹುದು.

ನಾವು ಮಾತನಾಡುವ ಭಾಷೆಗಳಂತೆ ಪ್ರತಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲೂ ತನ್ನದೇ ಆದ ಪದಗಳು, ವ್ಯಾಕರಣ ಎಲ್ಲ ಇರುತ್ತದೆ. ಅದನ್ನು ಬಲ್ಲ ಪ್ರೋಗ್ರಾಮರ್‌ಗಳು ತಮ್ಮ ನಿರ್ದೇಶನಗಳನ್ನು ಅದೇ ಭಾಷೆಯಲ್ಲಿ ಬರೆಯುತ್ತಾರೆ.

ಪ್ರೋಗ್ರಾಮ್‌ಗಳನ್ನು ಯಾವ ಭಾಷೆಯಲ್ಲೇ ಬರೆದಿದ್ದರೂ ಅದು ಕಂಪ್ಯೂಟರ್‌ಗೆ ಅರ್ಥವಾಗಬೇಕಾದರೆ ಮೊದಲಿಗೆ ಯಂತ್ರಭಾಷೆಗೆ ಅನುವಾದವಾಗಲೇಬೇಕು. ಈ ಕೆಲಸಕ್ಕೂ ಪ್ರೋಗ್ರಾಮ್‌ಗಳೇ ಬೇಕು - ನಾವು ಕೊಟ್ಟ ನಿರ್ದೇಶನಗಳನ್ನು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಿಂದ ಯಂತ್ರಭಾಷೆಗೆ ಅನುವಾದಿಸಲು ಕಂಪೈಲರ್‌ನಂತಹ ವಿಶೇಷ ಪ್ರೋಗ್ರಾಮ್‌ಗಳು ಬಳಕೆಯಾಗುತ್ತವೆ.

ಜನವರಿ ೩, ೨೦೧೨ರ ಉದಯವಾಣಿಯಲ್ಲಿ ಪ್ರಕಟವಾದ ಲೇಖನ
badge