ಶುಕ್ರವಾರ, ಜೂನ್ 6, 2014

ಪ್ರೋಗ್ರಾಮ್ ಬರೆಯುವುದು ಹೇಗೆ?

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

ಕಂಪ್ಯೂಟರಿಗೆ ಯಾವ ಕೆಲಸ ಮಾಡುವಂತೆ ಹೇಳಬೇಕಾದರೂ ಅದಕ್ಕೊಂದು ಪ್ರೋಗ್ರಾಮ್ ಬರೆಯಬೇಕು ತಾನೆ? ಪ್ರೋಗ್ರಾಮ್ ಬರೆಯಲು ಹೊರಟಾಗ ಅದರಲ್ಲಿ ಏನೆಲ್ಲ ಇರಬೇಕು (ಉದಾ: ಎರಡು ಸಂಖ್ಯೆಗಳನ್ನು ಕೂಡಿಸು ಎನ್ನುವ ಆದೇಶ) ಹಾಗೂ ಅದೆಲ್ಲ ಯಾವ ಅನುಕ್ರಮದಲ್ಲಿರಬೇಕು (ಉದಾ: ಮೊದಲು ಎರಡು ಅಂಕಿಗಳನ್ನು ಓದು, ಅವನ್ನು ಕೂಡಿಸು, ಉತ್ತರವನ್ನು ಪ್ರದರ್ಶಿಸು) ಎನ್ನುವುದನ್ನು ತೀರ್ಮಾನಿಸುವುದು ಮೊದಲ ಕೆಲಸ.

ಈ ಕೆಲಸದಷ್ಟೇ ಮುಖ್ಯವಾದ ಇನ್ನೊಂದು ಕೆಲಸವೆಂದರೆ ಇದನ್ನೆಲ್ಲ ಕಂಪ್ಯೂಟರಿಗೆ ಅರ್ಥವಾಗುವಂತೆ ಹೇಳುವುದು. ಸಹಜವಾಗಿಯೇ, ಈ ಕೆಲಸಕ್ಕೆ ಬೇಕಿರುವುದು ಒಂದು ಭಾಷೆ. ನಮ್ಮ ಪ್ರಪಂಚದಲ್ಲಿ ಕನ್ನಡ ಇಂಗ್ಲಿಷ್‌ಗಳೆಲ್ಲ ಇರುವಂತೆ ಕಂಪ್ಯೂಟರಿನ ಲೋಕದಲ್ಲೂ ಒಂದಷ್ಟು ಭಾಷೆಗಳಿವೆ. ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳೆಂದು ಕರೆಯುವುದು ಇದನ್ನೇ.

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

ಪ್ರೋಗ್ರಾಮ್ ಸೃಷ್ಟಿಗೆ ಎಲ್ಲವೂ ಸಜ್ಜಾದ ಮೇಲೆ ಇಂತಹ ಯಾವುದೋ ಒಂದು ಭಾಷೆಯನ್ನು ಆಯ್ದುಕೊಂಡು ನಾವು ಪ್ರೋಗ್ರಾಮನ್ನು ಬರೆಯಬಹುದು. ಆದರೆ ಈಗಿನ್ನೂ ಕಲಿಕೆಯ ಹಂತದಲ್ಲಿರುವ ನಮಗೆ ಯಾವ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯೂ ಗೊತ್ತಿರದಿದ್ದರೆ ಏನು ಮಾಡುವುದು?

ಅದಕ್ಕೂ ಒಂದು ಪರಿಹಾರವಿದೆ. ಪ್ರೋಗ್ರಾಮ್ ರಚನೆಗೆ ಮುನ್ನ ಕಂಪ್ಯೂಟರ್ ತಜ್ಞರು ಅದರ ರೂಪುರೇಷೆಯನ್ನು ಅಂತಿಮಗೊಳಿಸಲು ಸೂಡೋಕೋಡ್ (pseudocode) ಎಂಬ ಭಾಷೆಯನ್ನು ಬಳಸುತ್ತಾರೆ, ನಿರ್ದಿಷ್ಟ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ - ಅದರ ವ್ಯಾಕರಣ ನಿಯಮಗಳ ಗೊಡವೆಯಿಲ್ಲದೆ ಪ್ರೋಗ್ರಾಮುಗಳನ್ನು ಬರೆಯುತ್ತಾರೆ. ಪ್ರೋಗ್ರಾಮ್ ರಚನೆ ಹೇಗಿರಬೇಕು ಎನ್ನುವುದನ್ನು ಅಂತಿಮಗೊಳಿಸಲು ಇದೊಂದು ಒಳ್ಳೆಯ ವಿಧಾನ, ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಗೊತ್ತಿಲ್ಲದವರಿಗೆ ಅದನ್ನು ಪರಿಚಯಿಸುವ ಸರಳ ಮಾರ್ಗವೂ ಹೌದು.

ಈ ವಿಧಾನದಲ್ಲಿ ಪ್ರೋಗ್ರಾಮ್ ಬರೆಯಲು ನಮ್ಮ ಪರಿಚಿತ ಭಾಷೆಯೇ ಬಳಕೆಯಾಗುತ್ತದೆ. ಇದು ಇಂಗ್ಲಿಷ್ ಆಗಿರಲೇಬೇಕು ಎಂದೇನೂ ಇಲ್ಲ. ಅಂತಿಮ ಪ್ರೋಗ್ರಾಮಿನ ಎಲ್ಲ ಹೆಜ್ಜೆಗಳನ್ನೂ ಅಳವಡಿಸಿಕೊಂಡರೆ ಸಾಕು, ಸೂಡೋಕೋಡ್ ಕನ್ನಡದಲ್ಲೇ ಇದ್ದರೂ ನಡೆಯುತ್ತದೆ.

ಒಂದು ಉದಾಹರಣೆ ನೋಡೋಣ. ಎರಡು ಸಂಖ್ಯೆಗಳನ್ನು ಹೋಲಿಸಲು 'ಸಿ' ಭಾಷೆಯಲ್ಲಿ ಒಂದು ಪ್ರೋಗ್ರಾಮ್ ಬರೆದರೆ ಅದು ಹೀಗಿರುತ್ತದೆ:
#include
main()
{      
        float num1, num2;
        printf("Enter 1st num: ");
        scanf("%f", &num1);
        printf("Enter 2nd num: ");
        scanf("%f", &num2);
        if(num1 > num2)
            printf("\nThe 1st number is greater than 2nd number.");
        else if(num1 < num2)
            printf("\nThe 1st number is less than 2nd number.");
        else
            printf("\nThe 1st number is equal to the 2nd number.");

        getch();
}
'ಸಿ' ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಪರಿಚಯವಿಲ್ಲದವರಿಗೆ ಈ ಪ್ರೋಗ್ರಾಮ್ ಸುಲಭಕ್ಕೆ ಅರ್ಥವಾಗುವುದಿಲ್ಲ. ನಾಲ್ಕಾರು ಕಮೆಂಟ್ ಸೇರಿಸಿದರೆ ಪ್ರೋಗ್ರಾಮ್ ಏನು ಮಾಡುತ್ತಿದೆ ಎನ್ನುವುದು ಗೊತ್ತಾಗಬಹುದಾದರೂ ಇಲ್ಲಿ ಬಳಕೆಯಾಗಿರುವ ವಿಶೇಷ ಸಂಕೇತಗಳನ್ನು (%f, \n ಇತ್ಯಾದಿ) ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಇನ್ನಷ್ಟು ಪ್ರಯತ್ನ ಅಗತ್ಯವಾಗುತ್ತದೆ.

ಈಗ ಇದೇ ಪ್ರೋಗ್ರಾಮನ್ನು ಸೂಡೋಕೋಡ್‌ನಲ್ಲಿ, ಕನ್ನಡ ಭಾಷೆಯನ್ನೇ ಬಳಸಿ, ಬರೆಯಲು ಪ್ರಯತ್ನಿಸೋಣ:
ಮೊದಲ ಸಂಖ್ಯೆಯನ್ನು num1 ಎಂದು ಉಳಿಸಿಕೊಳ್ಳಿ
ಎರಡನೆಯ ಸಂಖ್ಯೆಯನ್ನು num2 ಎಂದು ಉಳಿಸಿಕೊಳ್ಳಿ
num2ಗಿಂತ num1 ದೊಡ್ಡದಾದರೆ "ಮೊದಲ ಸಂಖ್ಯೆ ಎರಡನೆಯ ಸಂಖ್ಯೆಗಿಂತ ದೊಡ್ಡದು" ಎಂಬ ಉತ್ತರ ಪ್ರಕಟಿಸಿ
ಹಾಗಲ್ಲದೆ num2ಗಿಂತ num1 ಸಣ್ಣದಾದರೆ "ಮೊದಲ ಸಂಖ್ಯೆ ಎರಡನೆಯ ಸಂಖ್ಯೆಗಿಂತ ಸಣ್ಣದು" ಎಂಬ ಉತ್ತರ ಪ್ರಕಟಿಸಿ
ಹಾಗೂ ಅಲ್ಲದಿದ್ದರೆ "ಮೊದಲ ಹಾಗೂ ಎರಡನೆಯ ಸಂಖ್ಯೆಗಳೆರಡೂ ಸಮಾನವಾಗಿವೆ" ಎಂಬ ಉತ್ತರ ಪ್ರಕಟಿಸಿ
ಈ ಉದಾಹರಣೆಯ ಮೂಲಕ ಸ್ಪಷ್ಟವಾಗುವಂತೆ ಸೂಡೋಕೋಡ್ ಮೂಲಕ ಪ್ರೋಗ್ರಾಮುಗಳ ರೂಪುರೇಷೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಬಹಳ ಸುಲಭವಾಗುತ್ತದೆ. ಅಷ್ಟೇ ಅಲ್ಲ, ಸೂಡೋಕೋಡ್ ಬಳಕೆ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಬೋಧನೆ ಹಾಗೂ ಕಲಿಕೆಯಲ್ಲೂ ಮಹತ್ವದ ಪಾತ್ರ ವಹಿಸುತ್ತದೆ. ಒಮ್ಮೆ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಪರಿಕಲ್ಪನೆ ಅರ್ಥವಾದಮೇಲೆ ಭಾಷೆಯೊಂದನ್ನು ಕಲಿಯುವುದು, ಅದರ ವ್ಯಾಕರಣಕ್ಕೆ ಅನುಗುಣವಾಗಿ ನಮ್ಮ ಪ್ರೋಗ್ರಾಮ್ ಬರೆಯುವುದು ಇನ್ನೆಷ್ಟರ ಕೆಲಸ, ಅಲ್ಲವೆ?

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

ಕಾಮೆಂಟ್‌ಗಳಿಲ್ಲ:

badge