Monday, March 2, 2009

ಸಿ ಹಮ್ಮುಗೆ - ೨

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

ಮೊದಲನೇ ಸಾಲು #include. ಇದು stdio.h ಎಮ್ಬ ಕಣಜ(library)ವನ್ನು ಹಮ್ಮಿಗೆ (ಹಮ್ಮು: program) ಸೇರಿಸುತ್ತದೆ. ಅಂದರೆ ಈ ಕಣಜದಲ್ಲಿ ಗೊತ್ತುವಳಿ (definition) ಪಡಿಸಿರುವ ಕೆಲಸಗಳು (funtions) ಹಾಗೂ ಮಾರ್ಪಡಬಲ್ಲಗಳು (variables) ನಮ್ಮ ಹಮ್ಮಿನಲ್ಲಿ ಬಳಕೆಗೆ ದೊರಕುತ್ತವೆ. printf ಎಮ್ಬ ಅಚ್ಚುಮಾಡುವ ಕೆಲಸವೂ (funtion) ಇದೇ stdio.h ಕಣಜದಲ್ಲಿ ಗೊತ್ತುವಳಿಸಲಾಗಿದೆ. 

ಎರಡನೇ ಸಾಲು "ಮೇನ್" ಎಮ್ಬ ಕೆಲಸವನ್ನು ಗೊತ್ತುವಳಿ ಪಡಿಸುವ ಸಾಲು. main ಎಮ್ಬುದು ಈ  ಕೆಲಸದ ಹೆಸರು. ಎಲ್ಲ ಸಿ ಹಮ್ಮುಗಳಲ್ಲಿಯೂ ಒಂದು main ಕೆಲಸವಿರಬೇಕು. ಹಮ್ಮಿನ ಎಸಕವು (execution) mainಇಂದಲೇ ತೊಡಗುತ್ತದೆ.
ಅದರ ಪಕ್ಕ ಇರುವ ಸುತ್ತುಗಟ್ಟಿನಲ್ಲಿ  (bracket) ಕೆಲಸದ ಬಿತ್ತಿಗೆ(parameter - ಯಾಕೆ ಈ ಹೆಸರು ಅಂತ ಕೆಳಗೆ ಹೇಳಿದ್ದೀನಿ)ಗಳನ್ನು ನೀಡಬಹುದು. ಇಲ್ಲಿ mainಗೆ ಯಾವುದೇ ಬಿತ್ತಿಗೆಗಳಿಲ್ಲ. ಇದರ ಮುಂದಿರುವ ಹೂ ಸುತ್ತುಗಟ್ಟು (flower bracket) ಕೆಲಸದ ಮಯ್ಯನ್ನು ಪ್ರಾರಮ್ಬಿಸುತ್ತದೆ. 

ಮೂರನೇ ಸಾಲಿನಲ್ಲಿ "printf" ಎಮ್ಬ ಕೆಲಸವನ್ನು ಕರೆಯಲಾಗಿದೆ. ಈ ಕೆಲಸದ ಕರೆ(function call)ಗೆ "Hello World\n" ಎಮ್ಬ ಹೆದೆ(string)ಯನ್ನು ಬಿತ್ತಿಗೆ(parameter)ಯನ್ನಾಗಿ ನೀಡಲಾಗಿದೆ. ಅಂದರೆ ಈ ಹೆದೆ(string)ಯನ್ನು ಅದು ತೆರೆಯ ಮೇಲೆ ಅಚ್ಚು ಹಾಕುತ್ತದೆ. \n ಎಮ್ಬುದು ಹೊಸ ಸಾಲನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಕೊನೆಯ ಸಾಲಿನಲ್ಲಿರುವ ಮುಚ್ಚುವ ಹೂ ಸುತ್ತುಗಟ್ಟು (closing flower bracket) main ಕೆಲಸದ ಕೊನೆಯನ್ನು ಸೂಚಿಸುತ್ತದೆ.

Glossary:
--------

ಕಣಜ : library
ಹಮ್ಮು: program
ಗೊತ್ತುವಳಿ: definition
ಗೊತ್ತುವಳಿಸು: define
ಕೆಲಸ: function
ಮಾರ್ಪಡಬಲ್ಲ: variable
ಸುತ್ತುಗಟ್ಟು: bracket
ಹೆದೆ: string
ಬಿತ್ತಿಗೆ: parameter. (parameter ಅಂದರೆ ಅದರ ಮೇಲೆ ಇನ್ನೊಂದರ ಪ್ರಮಾಣ ಇಲ್ಲವೇ ಬೆಲೆಯು ಮಾರ್ಪಡುತ್ತದೆ. ಅದಕ್ಕೆ ಬಿತ್ತು ಮೂಲದಿಂದ ಬಿತ್ತಿಗೆ ಎಮ್ಬ ಪದವನ್ನು ಬಳಸಿದ್ದೇನೆ).

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)ಯಲ್ಲಿ ದೊರೆಯುವ ಕನ್ನಡದ ಬ್ಲಾಗುಗಳು
> ಶಂಕರ ಬಟ್ಟರ ಹೊತ್ತಗೆಗಳು, ಅದರಲ್ಲೂ "ಇಂಗ್ಲೀಶ್ ಪದಗಳಿಗೆ ಕನ್ನಡದ್ದೇ ಪದಗಳು"
> ಕನ್ನಡ ಸಾಹಿತ್ಯ ಪರಿಶತ್ತಿನ ನಿಗಣ್ಟು
> ಕೊಳಂಬೆ ಪುಟ್ಟಣ್ಣ ಗವ್ಡರ "ಅಚ್ಚಗನ್ನಡ ನುಡಿಕೋಶ"

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