Thursday, February 5, 2009

ಸಿ ಹಮ್ಮುಗೆ (Programming) - ೧

ಸಿ ಹೆಸರಿನಂತೆ ಸಿಹಿಯಾದ ನುಡಿ. ಸಿಹಿಯನ್ನು ವಿವರಿಸುವುದು ಕಷ್ಟ. ತಿಂದು ಅನುಬವಿಸಿಯೇ ತಿಳಿಯ ಬೇಕು. ಹಾಗೇ ಸಿ ನುಡಿಯ ಸವಿಯನ್ನು ಹಮ್ಮಿಯೇ (program(v)) ತಿಳಿಯ ಬೇಕು. ಪೀಠಿಕೆ ಇಷ್ಟು ಸಾಕು ಅನ್ನಿಸ್ತಿದೆ. ಒಂದು ಹಮ್ಮು (program(n)) ಬರೆದು ನೋಡಿಯೇ ಬಿಡೋಣ. 

#include
main () {
   printf("Hello world\n");
}

ಹಮ್ಮು ಬರೆದ ಮೇಲೆ 
1. ಅದನ್ನು ಒಂದು ಕಡತದಲ್ಲಿ ಉಳಿಸಬೇಕು.
2. ಅದನ್ನು ಒಟ್ಟಿಸ (compile)ಬೇಕು. ಒಟ್ಟು (compilation) ತೇರ್ಗಡೆಯಾದರೆ ಒಂದು ಎಸಗಬಲ್ಲ (executable) ಕಡತ ಬರುತ್ತದೆ. 
3. ಆ ಎಸಗಬಲ್ಲ ಕಡತವನ್ನು ಓಡಿಸಬೇಕು. 

ಆಗ ತೆರೆಯ ಮೇಲೆ ಈ ಪಳಿಯು  (output) ಬರುತ್ತದೆ 

     Hello World

ಮೊದಲು ಈ ಹಮ್ಮನ್ನು "hello.c" ಎಂಬ ಕಡತದಲ್ಲಿ ಉಳಿಸೋಣ.
ಮೇಲಿನ ಎರಡನೇ ಹಂತವನ್ನು ಎಸಗುವುದಕ್ಕೆ ಸಿ ಒಟ್ಟುಕ (compiler) systemಲ್ಲಿ ನೆಟ್ಟಿರಬೇಕು. ಯೂನಿಕ್ಸ್ systemಗಳಲ್ಲಿ ಸಾಮಾನ್ಯವಾಗಿ "cc" ಇಲ್ಲವೇ "gcc" ಒಟ್ಟುಕವು ಇರುತ್ತದೆ. ಅದನ್ನು ಬಳಸಿ ಒಟ್ಟಿಸುವುದಕ್ಕೆ ಅಪ್ಪಣೆ ಸಾಲಿನಲ್ಲಿ (command line) ಇದನ್ನು ಅಚ್ಚಿಸಿ:

$ cc hello.c

ಒಟ್ಟು ತೇರ್ಗಡೆಯಾದರೆ "a.out" ಇಲ್ಲವೇ "hello.exe" (ವಿಣ್ಡೋಸ್) ಎಂಬ ಎಸಗಬಲ್ಲ ಕಡತವು ಅದೇ ಮಡಿತೆ(folder)ಯಲ್ಲಿ ಕಾಣಿಸಕೊಳ್ಳುತ್ತದೆ. ಈಗ ಈ ಕಡತವನ್ನು ಎಸಗಬೇಕು. ಅದಕ್ಕಾಗಿ ಅಪ್ಪಣೆ ಸಾಲಿನಲ್ಲಿ ಇದನ್ನು ಅಚ್ಚಿಸಿ:

$ ./a.out

ಮುಂದಿನ ಪೋಸ್ಟಿನಲ್ಲಿ ಈ ಹಮ್ಮಿನ ಎಲ್ಲ ಸಾಲುಗಳನ್ನೂ ವಿವರಿಸುತ್ತೇನೆ.


Sunday, February 1, 2009

ಕನ್ನಡಟೆಕ್ ಮತ್ತೆ ಶುರು

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

ಹಿಂದೆ ಕ.ಸಾ.ಒ (ftp) ಬಗ್ಗೆ ಬರೆದಿದ್ದಾಗ ಓದಿದ ಕೆಲ ಗೆಳೆಯರು ನನ್ನ ಮೊಗಸಿನ ಬಗ್ಗೆ ತಮ್ಮ ಮೆಚ್ಚುಗೆ ಹೇಳಿ, ಆದರೆ ಇಷ್ಟು ಮುಂದುವರಿದ ವಿಶಯದ ಬಗೆಗಿನ ಬರಹ ಅಶ್ಟಾಗಿ ಅರ್ತವಾಗಲಿಲ್ಲ ಎಂದು ಹೇಳಿದ್ದರು. ಕ.ಸಾ.ಒ ಬಗ್ಗೆ ತಿಳಿಸಲು ಅದರ ಹಿನ್ನಲೆಯ ಅಡಿಗಟ್ಟು(basics)ಗಳ ಬಗ್ಗೆಯೂ ಬರೆಯಬೇಕು ಎಂದು ತಮ್ಮ ಅನಿಸಿಕೆ/ ಬಗೆತವನ್ನು ತಿಳಿಸಿದ್ದರು. ಆದರೆ ಎಣಿಯರಿಮೆ(computer science)ಯ ಅಡಿಗಟ್ಟಿನ ವಿಶಯಗಳಾದ ಎಣ್ಮೆ (mathematics), ಬಿಡು ಎಣ್ಮೆ (discrete maths), ತಿಟ್ಟ ಕೇಣ (graph theory), ಮತ್ತು ಅಲ್ಲಿಂದ ಮುಂದುವರಿದು ಹಮ್ಮುಗೆ (programming), ತಿಳಿಹ ಇಟ್ಟಳಗಳು  (data structures) ಹೀಗೆ ಇವೆಲ್ಲದರ ಬಗ್ಗೆ ಬರೆಯಬೇಕಾಗುತ್ತದೆ. ಈ ಎಲ್ಲ ಅಡಿಗಟ್ಟುಗಳ ಬಗ್ಗೆ ಬರೆಯುವುದಕ್ಕೆ ಬಹಳ ಹೊತ್ತು ಬೇಕಾದೀತು. ಆದರೆ ಎಲ್ಲೋ ಒಂದು ಕಡೆ ತೊಡಗಬೇಕು: ಕ.ಸಾ.ಒ ತೆರನಾದ ಮುಂದುವರಿದ ವಿಶಯಗಳೂ ಅಲ್ಲದೆ, ತೀರಾ ಕೆಳಗಿನ ಅಡಿಕಟ್ಟು ವಿಶಯಗಳೂ ಅಲ್ಲದೇ, ಹಮ್ಮುಗೆಯಂತಹ ವಿಶಯದಿಂದ ತೊಡಗಬಹುದೆನ್ನಿಸುತ್ತದೆ. ಅಲ್ಲಿಂದ ಮುಂದುವರಿದು ಅಡಿಗಟ್ಟುಗಳು ಹಾಗೂ ಮುಂದುವರಿದ ವಿಶಯಗಳ ಬಗ್ಗೆ ಬರೆಯಬಹುದು. ಸದ್ಯಕ್ಕೆ ಸಿ ನುಡಿಯ ಹಮ್ಮುಗೆಯಿಂದ ತೊಡಗುತ್ತೇನೆ. ಅದಾದಮೇಲೆ ತಿಳಿಹ ಇಟ್ಟಳಗಳ ಬಗ್ಗೆ ಬರೆಯುತ್ತೇನೆ.

ಕನ್ನಡದ ಬಗೆಯರಿಮೆಯ (technological, technical) ಪದಗಳನ್ನು ನೀಡಲು ಈ ಮೂಲಗಳು ನನಗೆ ನೆರವಾಗಿವೆ:
> ನಡುಬಲೆ(internet)ಯಲ್ಲಿ ದೊರೆಯುವ ಕನ್ನಡದ ಬ್ಲಾಗುಗಳು
> ಶಂಕರ ಬಟ್ಟರ ಹೊತ್ತಗೆಗಳು, ಅದರಲ್ಲೂ "ಇಂಗ್ಲೀಶ್ ಪದಗಳಿಗೆ ಕನ್ನಡದ್ದೇ ಪದಗಳು"
> ಕನ್ನಡ ಸಾಹಿತ್ಯ ಪರಿಶತ್ತಿನ ನಿಗಣ್ಟು
> ಕೊಳಂಬೆ ಪುಟ್ಟಣ್ಣ ಗವ್ಡರ "ಅಚ್ಚಗನ್ನಡ ನುಡಿಕೋಶ"

ಅಂದ ಹಾಗೆ, ಈ ಕೆಲಸದಲ್ಲಿ ನನಗೆ ನೆರವಾಗಲು ಆಸಕ್ತಿಯಿದ್ದಲ್ಲಿ ನಿಮಗೆ ಸ್ವಾಗತ, ನನಗೆ ಮಿಂಚೆ ಹಾಕಿ ಇಲ್ಲವೇ ಇಲ್ಲಿ ಕಾಮೆಣ್ತ್ ಹಾಕಿ ತಿಳಿಸಿ.