Data-driven programming
ಕಂಪ್ಯೂಟರ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ನಲ್ಲಿ, ದತ್ತಾಂಶ-ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಒಂದು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮಾದರಿಯಾಗಿದೆ, ಇದರಲ್ಲಿ ಪ್ರೋಗ್ರಾಂ ಹೇಳಿಕೆಗಳು ತೆಗೆದುಕೊಳ್ಳಬೇಕಾದ ಹಂತಗಳ ಅನುಕ್ರಮವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಬದಲು ಹೊಂದಿಕೆಯಾಗಬೇಕಾದ ದತ್ತಾಂಶ ಮತ್ತು ಅಗತ್ಯವಿರುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ವಿವರಿಸುತ್ತವೆ. ಡೇಟಾ-ಚಾಲಿತ ಭಾಷೆಗಳ ಪ್ರಮಾಣಿತ ಉದಾಹರಣೆಗಳೆಂದರೆ ಪಠ್ಯ-ಸಂಸ್ಕರಣಾ ಭಾಷೆಗಳಾದ ಸೆಡ್ ಮತ್ತು ಎಡಬ್ಲ್ಯೂಕೆ, ಮತ್ತು ಡಾಕ್ಯುಮೆಂಟ್ ಟ್ರಾನ್ಸ್ಫರ್ಮೇಷನ್ ಲಾಂಗ್ವೇಜ್ ಎಕ್ಸ್ಎಸ್ಎಲ್ಟಿ, ಅಲ್ಲಿ ಡೇಟಾವು ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ನಲ್ಲಿನ ಸಾಲುಗಳ ಅನುಕ್ರಮವಾಗಿದೆ-ಆದ್ದರಿಂದ ಇವುಗಳನ್ನು ಲೈನ್-ಓರಿಯೆಂಟೆಡ್ ಭಾಷೆಗಳು ಎಂದೂ ಕರೆಯಲಾಗುತ್ತದೆ-ಮತ್ತು ಮಾದರಿ ಹೊಂದಾಣಿಕೆಯನ್ನು ಪ್ರಾಥಮಿಕವಾಗಿ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳು ಅಥವಾ ಲೈನ್ ಸಂಖ್ಯೆಗಳ ಮೂಲಕ ಮಾಡಲಾಗುತ್ತದೆ. ಸಂಬಂಧಿತ ಮಾದರಿಗಳು ದತ್ತಾಂಶ-ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಈವೆಂಟ್-ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ಗೆ ಹೋಲುತ್ತದೆ, ಇದರಲ್ಲಿ ಎರಡೂ ಮಾದರಿ ಹೊಂದಾಣಿಕೆ ಮತ್ತು ಪರಿಣಾಮವಾಗಿ ಸಂಸ್ಕರಣೆಯಾಗಿ ರಚಿಸಲ್ಪಟ್ಟಿವೆ, ಮತ್ತು ಅವುಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಮುಖ್ಯ ಲೂಪ್ನಿಂದ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ, ಆದರೂ ಅವುಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ವಿಭಿನ್ನ ಡೊಮೇನ್ಗಳಿಗೆ ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ. ಷರತ್ತು/ಆಕ್ಷನ್ ಮಾದರಿಯು ಆಕಾರ-ಆಧಾರಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ಗೆ ಹೋಲುತ್ತದೆ, ಅಲ್ಲಿ ಜಾಯಿನ್ ಪಾಯಿಂಟ್ (ಷರತ್ತು) ತಲುಪಿದಾಗ, ಪಾಯಿಂಟ್ ಕಟ್ (ಆಕ್ಷನ್) ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಡಿ ಟ್ರೇಸ್ನಂತಹ ಕೆಲವು ಜಾಡು ಹಿಡಿಯುವ ಚೌಕಟ್ಟುಗಳಲ್ಲಿ ಇದೇ ರೀತಿಯ ಮಾದರಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಅಲ್ಲಿ ಒಬ್ಬರು ಶೋಧಕಗಳನ್ನು (ಸಲಕರಣೆ ಬಿಂದುಗಳು) ಮತ್ತು ಸಂಬಂಧಿತ ಕ್ರಿಯೆಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡುತ್ತಾರೆ, ಇದು ಷರತ್ತು ತೃಪ್ತಿಯಾದಾಗ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತದೆ. ಅಮೂರ್ತ ದತ್ತಾಂಶ ಪ್ರಕಾರದ ವಿನ್ಯಾಸ ವಿಧಾನಗಳನ್ನು ವಸ್ತು-ಆಧಾರಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ಗೆ ಅಳವಡಿಸಿಕೊಳ್ಳುವುದರಿಂದ ದತ್ತಾಂಶ-ಚಾಲಿತ ವಿನ್ಯಾಸಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ. ಈ ರೀತಿಯ ವಿನ್ಯಾಸವನ್ನು ಕೆಲವೊಮ್ಮೆ ಸಾಫ್ಟ್ವೇರ್ ಪರಿಕಲ್ಪನೆಯ ಸಮಯದಲ್ಲಿ ವರ್ಗಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಆಬ್ಜೆಕ್ಟ್-ಓರಿಯೆಂಟೆಡ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ನಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ. ದತ್ತಾಂಶ-ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಅನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ರಚನಾತ್ಮಕ ದತ್ತಾಂಶದ ಸ್ಟ್ರೀಮ್ಗಳಿಗೆ, ಫಿಲ್ಟರಿಂಗ್ ಮಾಡಲು, ಪರಿವರ್ತಿಸಲು, ಒಟ್ಟುಗೂಡಿಸಲು (ಕಂಪ್ಯೂಟಿಂಗ್ ಅಂಕಿಅಂಶಗಳಂತಹ) ಅಥವಾ ಇತರ ಪ್ರೋಗ್ರಾಂಗಳಿಗೆ ಕರೆ ಮಾಡಲು ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ. ವಿಶಿಷ್ಟವಾದ ಸ್ಟ್ರೀಮ್ಗಳು ಲಾಗ್ ಫೈಲ್ಗಳು, ಡಿಲಿಮಿಟರ್-ಬೇರ್ಪಡಿಸಿದ ಮೌಲ್ಯಗಳು ಅಥವಾ ಇಮೇಲ್ ಸಂದೇಶಗಳನ್ನು ಒಳಗೊಂಡಿವೆ, ವಿಶೇಷವಾಗಿ ಇಮೇಲ್ ಫಿಲ್ಟರಿಂಗ್ಗಾಗಿ. ಉದಾಹರಣೆಗೆ, AWK ಪ್ರೋಗ್ರಾಂ ಲಾಗ್ ಸ್ಟೇಟ್ಮೆಂಟ್ಗಳ ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು, ಮತ್ತು ಉದಾಹರಣೆಗೆ ಎಲ್ಲವನ್ನೂ ಕನ್ಸೋಲ್ಗೆ ಕಳುಹಿಸಬಹುದು, "ವಾರ್ನಿಂಗ್" ಫೈಲ್ಗೆ ಎಚ್ಚರಿಕೆಯಿಂದ ಪ್ರಾರಂಭವಾಗುವಂತಹವುಗಳನ್ನು ಬರೆಯಬಹುದು ಮತ್ತು ಯಾವುದೇ ಸಾಲು "ದೋಷ" ದಿಂದ ಪ್ರಾರಂಭವಾದರೆ sysadmin ಗೆ ಇಮೇಲ್ ಕಳುಹಿಸಬಹುದು. ಇದು ದಿನಕ್ಕೆ ಎಷ್ಟು ಎಚ್ಚರಿಕೆಗಳನ್ನು ದಾಖಲಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಸಹ ದಾಖಲಿಸಬಹುದು. ಪರ್ಯಾಯವಾಗಿ, ಡಿಲಿಮಿಟರ್-ಬೇರ್ಪಡಿಸಿದ ಮೌಲ್ಯಗಳ ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬಹುದು, ಪ್ರತಿ ಸಾಲು ಅಥವಾ ಒಟ್ಟುಗೂಡಿಸಿದ ಸಾಲುಗಳನ್ನು ಸಂಸ್ಕರಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ ಮೊತ್ತ ಅಥವಾ ಗರಿಷ್ಠ. ಇಮೇಲ್ನಲ್ಲಿ, ಪ್ರೊಕ್ಮೇಲ್ನಂತಹ ಭಾಷೆಯು ಕೆಲವು ಇಮೇಲ್ಗಳಲ್ಲಿ ಹೊಂದಿಕೆಯಾಗಬೇಕಾದ ಷರತ್ತುಗಳನ್ನು ಮತ್ತು ಯಾವ ಕ್ರಮಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬೇಕು (ತಲುಪಿಸುವುದು, ಪುಟಿಯುವುದು, ತಿರಸ್ಕರಿಸುವುದು, ಫಾರ್ವರ್ಡ್ ಮಾಡುವುದು, ಇತ್ಯಾದಿ) ಎಂಬುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. ಕೆಲವು ದತ್ತಾಂಶ-ಚಾಲಿತ ಭಾಷೆಗಳು ಟ್ಯೂರಿಂಗ್-ಸಂಪೂರ್ಣವಾಗಿವೆ, ಉದಾಹರಣೆಗೆ ಎ. ಡಬ್ಲ್ಯೂ. ಕೆ ಮತ್ತು ಸೆಡ್, ಆದರೆ ಇತರವು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಬಹಳ ಸೀಮಿತವಾಗಿವೆ, ವಿಶೇಷವಾಗಿ ಶೋಧನೆಗಾಗಿ. ಎರಡನೆಯದರ ಒಂದು ವಿಪರೀತ ಉದಾಹರಣೆಯೆಂದರೆ pcap, ಇದು ಕೇವಲ ಫಿಲ್ಟರಿಂಗ್ ಅನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಕೇವಲ "ಕ್ಯಾಪ್ಚರ್" ಮಾತ್ರ ಕ್ರಿಯೆಯಾಗಿದೆ. ಕಡಿಮೆ ತೀವ್ರವಾಗಿ, ಜರಡಿ ಶೋಧಕಗಳು ಮತ್ತು ಕ್ರಿಯೆಗಳನ್ನು ಹೊಂದಿದೆ, ಆದರೆ ಮೂಲ ಮಾನದಂಡದಲ್ಲಿ ಯಾವುದೇ ಅಸ್ಥಿರಗಳು ಅಥವಾ ಲೂಪ್ಗಳನ್ನು ಹೊಂದಿಲ್ಲ, ಇದು ಸ್ಥಿತಿಯಿಲ್ಲದ ಶೋಧನೆ ಹೇಳಿಕೆಗಳನ್ನು ಮಾತ್ರ ಅನುಮತಿಸುತ್ತದೆಃ ಪ್ರತಿ ಇನ್ಪುಟ್ ಅಂಶವನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ಸಂಸ್ಕರಿಸಲಾಗುತ್ತದೆ. ವೇರಿಯೇಬಲ್ಗಳು ಸ್ಥಿತಿಯನ್ನು ಅನುಮತಿಸುತ್ತವೆ, ಇದು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಇನ್ಪುಟ್ ಅಂಶಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುವ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ ಒಟ್ಟುಗೂಡಿಸುವಿಕೆ (ಇನ್ಪುಟ್ಗಳನ್ನು ಒಟ್ಟುಗೂಡಿಸುವುದು) ಅಥವಾ ಥ್ರೊಟ್ಲಿಂಗ್ (ಪ್ರತಿ ಕಳುಹಿಸುವವರಿಂದ ಗಂಟೆಗೆ ಗರಿಷ್ಠ 5 ಮೇಲ್ಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ, ಅಥವಾ ಪುನರಾವರ್ತಿತ ಲಾಗ್ ಸಂದೇಶಗಳನ್ನು ಸೀಮಿತಗೊಳಿಸುತ್ತದೆ). ದತ್ತಾಂಶ-ಚಾಲಿತ ಭಾಷೆಗಳು ಆಗಾಗ್ಗೆ ಪೂರ್ವನಿಯೋಜಿತ ಕ್ರಿಯೆಯನ್ನು ಹೊಂದಿರುತ್ತವೆಃ ಯಾವುದೇ ಷರತ್ತು ಹೊಂದಿಕೆಯಾಗದಿದ್ದರೆ, ಸಾಲು-ಆಧಾರಿತ ಭಾಷೆಗಳು ಸಾಲನ್ನು ಮುದ್ರಿಸಬಹುದು (ಸೆಡ್ನಲ್ಲಿರುವಂತೆ), ಅಥವಾ ಸಂದೇಶವನ್ನು ತಲುಪಿಸಬಹುದು (ಜರಡಿಯಲ್ಲಿರುವಂತೆ). ಫಿಲ್ಟರಿಂಗ್ನಂತಹ ಕೆಲವು ಅನ್ವಯಗಳಲ್ಲಿ, ಹೊಂದಾಣಿಕೆಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಮಾಡಬಹುದು (ಆದ್ದರಿಂದ ಮೊದಲ ಹೊಂದಾಣಿಕೆಯ ಹೇಳಿಕೆಯನ್ನು ಮಾತ್ರ), ಆದರೆ ಇತರ ಸಂದರ್ಭಗಳಲ್ಲಿ ಎಲ್ಲಾ ಹೊಂದಾಣಿಕೆಯ ಹೇಳಿಕೆಗಳನ್ನು ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ. ಎರಡೂ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಯಾವುದೇ ಮಾದರಿಯನ್ನು ಹೊಂದಿಸಲು ವಿಫಲವಾದರೆ ಅದು "ಪೂರ್ವನಿಯೋಜಿತ ನಡವಳಿಕೆ" ಆಗಿರಬಹುದು ಅಥವಾ ಕೊನೆಯಲ್ಲಿ ಕ್ಯಾಚ್-ಆಲ್ ಹೇಳಿಕೆಯಿಂದ ಸಿಕ್ಕಿಹಾಕಿಕೊಳ್ಳುವ ದೋಷವೆಂದು ಪರಿಗಣಿಸಬಹುದು. ಪ್ರಯೋಜನಗಳು ಮತ್ತು ಸಮಸ್ಯೆಗಳು ಅನುಷ್ಠಾನದ ನಡುವೆ ಪ್ರಯೋಜನಗಳು ಮತ್ತು ಸಮಸ್ಯೆಗಳು ಬದಲಾಗಬಹುದಾದರೂ, ಈ ಮಾದರಿಯೊಂದಿಗೆ ಕೆಲವು ದೊಡ್ಡ ಸಂಭಾವ್ಯ ಪ್ರಯೋಜನಗಳು ಮತ್ತು ಸಮಸ್ಯೆಗಳಿವೆ. ಕ್ರಿಯಾತ್ಮಕತೆಗೆ ಸರಳವಾಗಿ ಅದು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿರುವ ಅಸ್ಥಿರಗಳ ಅಮೂರ್ತ ದತ್ತಾಂಶ ಪ್ರಕಾರವನ್ನು ತಿಳಿದಿರಬೇಕು. ಒಂದೇ ದತ್ತಾಂಶ ಕ್ಷೇತ್ರಗಳನ್ನು ಹೊಂದಿರುವ ಎಲ್ಲಾ ವಸ್ತುಗಳ ಮೇಲೆ ಕಾರ್ಯಗಳು ಮತ್ತು ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ಬಳಸಬಹುದು, ಉದಾಹರಣೆಗೆ ವಸ್ತುವಿನ "ಸ್ಥಾನ". ಡೇಟಾವನ್ನು ಆದ್ಯತೆಗೆ ಅನುಗುಣವಾಗಿ ವಸ್ತುಗಳು ಅಥವಾ "ಘಟಕಗಳು" ಎಂದು ವರ್ಗೀಕರಿಸಬಹುದು ಮತ್ತು ಯಾವುದೇ ಪರಿಣಾಮವಿಲ್ಲ. ದತ್ತಾಂಶ-ಚಾಲಿತ ವಿನ್ಯಾಸವು ದತ್ತಾಂಶ ಮತ್ತು ಕ್ರಿಯಾತ್ಮಕತೆಯ ಜೋಡಣೆಯನ್ನು ತಡೆಯುತ್ತದೆಯಾದರೂ, ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ, ದತ್ತಾಂಶ-ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಕಳಪೆ ವಸ್ತು-ಆಧಾರಿತ ವಿನ್ಯಾಸಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ ಎಂದು ವಾದಿಸಲಾಗಿದೆ, ವಿಶೇಷವಾಗಿ ಹೆಚ್ಚು ಅಮೂರ್ತ ದತ್ತಾಂಶದೊಂದಿಗೆ ವ್ಯವಹರಿಸುವಾಗ. ಏಕೆಂದರೆ ಕೇವಲ ದತ್ತಾಂಶ-ಚಾಲಿತ ವಸ್ತು ಅಥವಾ ಅಸ್ತಿತ್ವವನ್ನು ಅದನ್ನು ಪ್ರತಿನಿಧಿಸುವ ವಿಧಾನದಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ. ವಸ್ತುವಿನ ರಚನೆಯನ್ನು ಬದಲಾಯಿಸುವ ಯಾವುದೇ ಪ್ರಯತ್ನವು ಅದರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುವ ಕಾರ್ಯಗಳನ್ನು ತಕ್ಷಣವೇ ಮುರಿಯುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಚಾಲಕನು ಬಲ ಅಥವಾ ಎಡಕ್ಕೆ ತಿರುಗಬೇಕಾದ ಛೇದಕಗಳ ಸರಣಿಯಾಗಿ (ಎರಡು ಛೇದಿಸುವ ಬೀದಿಗಳು) ಚಾಲನೆಯ ದಿಕ್ಕುಗಳನ್ನು ಪ್ರತಿನಿಧಿಸಬಹುದು. ಒಂದು ಛೇದಕವನ್ನು (ಯುನೈಟೆಡ್ ಸ್ಟೇಟ್ಸ್ನಲ್ಲಿ) ದತ್ತಾಂಶದಲ್ಲಿ ಜಿಪ್ ಕೋಡ್ (5-ಅಂಕಿಯ ಸಂಖ್ಯೆ) ಮತ್ತು ಎರಡು ಬೀದಿ ಹೆಸರುಗಳು (ಪಠ್ಯದ ತಂತಿಗಳು) ಪ್ರತಿನಿಧಿಸಿದರೆ, ಬೀದಿಗಳು ಅನೇಕ ಬಾರಿ ಛೇದಿಸುವ ನಗರವು ಎದುರಾದಾಗ ದೋಷಗಳು ಕಾಣಿಸಿಕೊಳ್ಳಬಹುದು. ಈ ಉದಾಹರಣೆಯನ್ನು ಅತಿಯಾಗಿ ಸರಳೀಕರಿಸಬಹುದಾದರೂ, ದೋಷಗಳನ್ನು ತೊಡೆದುಹಾಕಲು, ದಕ್ಷತೆಯನ್ನು ಹೆಚ್ಚಿಸಲು ಅಥವಾ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಬೆಂಬಲಿಸಲು ದತ್ತಾಂಶದ ಪುನರ್ರಚನೆಯು ಸಾಫ್ಟ್ವೇರ್ ಎಂಜಿನಿಯರಿಂಗ್ನಲ್ಲಿ ಸಾಕಷ್ಟು ಸಾಮಾನ್ಯ ಸಮಸ್ಯೆಯಾಗಿದೆ. ಭಾಷೆಗಳು ಎಡಬ್ಲ್ಯೂಕೆ ಓಜ್ ಪರ್ಲ್-ಎಡಬ್ಲ್ಯೂಕೆ ಮತ್ತು ಸೆಡ್ನಲ್ಲಿರುವಂತೆ ದತ್ತಾಂಶ-ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಅನ್ನು ಪರ್ಲ್ ಸೆಡ್ ಲುವಾ ಕ್ಲೋಜೂರ್ ಟ್ಯಾಬ್ (ಭಾಷೆ) ಎಫ್ಡಿಎಂ ಮೇಲ್ಡ್ರಾಪ್ ಪ್ರೊಕ್ಮೇಲ್ನಿಂದ ಬೆಂಬಲಿತವಾದ ಒಂದು ಮಾದರಿಯಾಗಿದೆ ಸೀವ್ ಬೇಸಿಕ್ ಎಕ್ಸ್ಎಸ್ಎಲ್ಟಿ ಸಹ ನೋಡಿ ಅರೇ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಬ್ಯಾಕಸ್-ನೌರ್ ಫಾರ್ಮ್ ಬಾಹ್ಯ ಉಲ್ಲೇಖಗಳು ಕೊಂಡಿಗಳು "ಪ್ರೋಗ್ರಾಂ ತರ್ಕವನ್ನು ಹಾರ್ಡ್ವೈರ್ಡ್ ನಿಯಂತ್ರಣ ರಚನೆಗಳಿಂದ ಮತ್ತು ದತ್ತಾಂಶಕ್ಕೆ ಚಲಿಸುವುದು ಪ್ರಮುಖ ಭಾಗವಾಗಿದೆ". ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮಾದರಿಗಳು