ಹನ್ನೆರಡು ವರ್ಷಗಳ ಉದ್ದದ ಒಂದು ಸಣ್ಣ ಯೋಜನೆಯ ಕಥೆ (ಮೊದಲ ಬಾರಿಗೆ BIRMA.NET ಬಗ್ಗೆ ಮತ್ತು ನಾನೂ ಪ್ರಥಮವಾಗಿ)

ಈ ಯೋಜನೆಯ ಜನನವನ್ನು 2007 ರ ಕೊನೆಯಲ್ಲಿ ಎಲ್ಲೋ ನನಗೆ ಬಂದ ಒಂದು ಸಣ್ಣ ಕಲ್ಪನೆ ಎಂದು ಪರಿಗಣಿಸಬಹುದು, ಇದು ಕೇವಲ 12 ವರ್ಷಗಳ ನಂತರ ಅದರ ಅಂತಿಮ ರೂಪವನ್ನು ಕಂಡುಕೊಳ್ಳಲು ಉದ್ದೇಶಿಸಲಾಗಿತ್ತು (ಈ ಸಮಯದಲ್ಲಿ - ಸಹಜವಾಗಿ, ಪ್ರಸ್ತುತ ಅನುಷ್ಠಾನದ ಪ್ರಕಾರ. ಲೇಖಕರಿಗೆ, ತುಂಬಾ ತೃಪ್ತಿಕರವಾಗಿದೆ) .

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

ಸ್ವಲ್ಪ ಸಮಯದ ನಂತರ, ಮೊದಲ ಮೂಲಮಾದರಿಯು ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಪ್ರಾರಂಭಿಸಿತು, ಅದನ್ನು ನಾನು ತಕ್ಷಣ ನನ್ನ ದೈನಂದಿನ ಚಟುವಟಿಕೆಗಳಲ್ಲಿ ಬಳಸಲು ಪ್ರಾರಂಭಿಸಿದೆ, ಏಕಕಾಲದಲ್ಲಿ ನನ್ನ ಕೈಗೆ ಬಂದ ಎಲ್ಲಾ ಉದಾಹರಣೆಗಳಲ್ಲಿ ಅದನ್ನು ಡೀಬಗ್ ಮಾಡಿದ್ದೇನೆ. ಅದೃಷ್ಟವಶಾತ್, ನನ್ನ ಸಾಮಾನ್ಯ ಕೆಲಸದ ಸ್ಥಳದಲ್ಲಿ, ನಾನು ಪ್ರೋಗ್ರಾಮರ್ ಆಗಿರಲಿಲ್ಲ, ಆಗ ನಾನು ನನ್ನ ಕೆಲಸದಲ್ಲಿ ಗೋಚರಿಸುವ "ಅಲಭ್ಯತೆ" ಯಿಂದ ದೂರವಿದ್ದೇನೆ, ಈ ಸಮಯದಲ್ಲಿ ನಾನು ನನ್ನ ಮೆದುಳಿನ ಮಗುವನ್ನು ತೀವ್ರವಾಗಿ ಡೀಬಗ್ ಮಾಡುತ್ತಿದ್ದೆ - ಇದು ಪ್ರಸ್ತುತ ವಾಸ್ತವಗಳಲ್ಲಿ ಬಹುತೇಕ ಯೋಚಿಸಲಾಗದ ವಿಷಯವಾಗಿದೆ. ದಿನದಲ್ಲಿ ಮಾಡಿದ ಕೆಲಸದ ಬಗ್ಗೆ ದೈನಂದಿನ ವರದಿಗಳು. ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಹೊಳಪು ಮಾಡುವ ಪ್ರಕ್ರಿಯೆಯು ಒಟ್ಟಾರೆಯಾಗಿ ಸುಮಾರು ಒಂದು ವರ್ಷಕ್ಕಿಂತ ಕಡಿಮೆ ಸಮಯವನ್ನು ತೆಗೆದುಕೊಂಡಿತು, ಆದರೆ ಅದರ ನಂತರವೂ ಫಲಿತಾಂಶವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಯಶಸ್ವಿ ಎಂದು ಕರೆಯಲಾಗುವುದಿಲ್ಲ - ಅನುಷ್ಠಾನಕ್ಕೆ ಸಂಪೂರ್ಣವಾಗಿ ಸ್ಪಷ್ಟವಾಗಿಲ್ಲದ ಹಲವಾರು ವಿಭಿನ್ನ ಪರಿಕಲ್ಪನೆಗಳನ್ನು ಆರಂಭದಲ್ಲಿ ಹಾಕಲಾಯಿತು: ಮಾಡಬಹುದಾದ ಐಚ್ಛಿಕ ಅಂಶಗಳು ಬಿಟ್ಟುಬಿಡಬಹುದು; ಅಂಶಗಳ ಮುಂದೆ ವೀಕ್ಷಣೆ (ಹಿಂದಿನ ಅಂಶಗಳನ್ನು ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳಾಗಿ ಬದಲಿಸುವ ಉದ್ದೇಶಕ್ಕಾಗಿ); ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳಂತಹ (ಇದು ವಿಶಿಷ್ಟವಾದ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಹೊಂದಿದೆ) ಕಾರ್ಯಗತಗೊಳಿಸಲು ನಮ್ಮದೇ ಆದ ಪ್ರಯತ್ನವೂ ಸಹ. ಇದಕ್ಕೂ ಮೊದಲು ನಾನು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಅನ್ನು ಸ್ವಲ್ಪಮಟ್ಟಿಗೆ ತ್ಯಜಿಸಿದ್ದೇನೆ ಎಂದು ನಾನು ಹೇಳಲೇಬೇಕು (ಸುಮಾರು 8 ವರ್ಷಗಳವರೆಗೆ, ಇಲ್ಲದಿದ್ದರೆ), ಆದ್ದರಿಂದ ಆಸಕ್ತಿದಾಯಕ ಮತ್ತು ಅಗತ್ಯವಾದ ಕಾರ್ಯಕ್ಕೆ ನನ್ನ ಕೌಶಲ್ಯಗಳನ್ನು ಅನ್ವಯಿಸುವ ಹೊಸ ಅವಕಾಶವು ನನ್ನ ಗಮನವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಸೆಳೆಯಿತು. ಪರಿಣಾಮವಾಗಿ ಮೂಲ ಕೋಡ್ - ನನ್ನ ಕಡೆಯಿಂದ ಅದರ ವಿನ್ಯಾಸಕ್ಕೆ ಯಾವುದೇ ಸ್ಪಷ್ಟವಾದ ವಿಧಾನಗಳ ಅನುಪಸ್ಥಿತಿಯಲ್ಲಿ - ಸಿ ++ ನ ಕೆಲವು ಅಂಶಗಳು ಮತ್ತು ದೃಶ್ಯ ಪ್ರೋಗ್ರಾಮಿಂಗ್‌ನ ಅಂಶಗಳೊಂದಿಗೆ (ಆರಂಭದಲ್ಲಿ ಅದು ಸಿ ಭಾಷೆಯಲ್ಲಿ ವಿಭಿನ್ನ ತುಣುಕುಗಳ ಕಲ್ಪನಾತೀತ ಮಿಶ್ಮ್ಯಾಶ್ ಆಗಿ ಮಾರ್ಪಟ್ಟಿದೆ ಎಂಬುದು ಆಶ್ಚರ್ಯವೇನಿಲ್ಲ. ಅಂತಹ ವಿನ್ಯಾಸ ವ್ಯವಸ್ಥೆಯನ್ನು ಬೋರ್ಲ್ಯಾಂಡ್ ಸಿ ++ ಬಿಲ್ಡರ್ ಅನ್ನು ಬಳಸಲು ನಿರ್ಧರಿಸಲಾಯಿತು - "ಬಹುತೇಕ ಡೆಲ್ಫಿ, ಆದರೆ ಸಿ"). ಆದಾಗ್ಯೂ, ಇವೆಲ್ಲವೂ ಅಂತಿಮವಾಗಿ ನಮ್ಮ ಗ್ರಂಥಾಲಯದ ದೈನಂದಿನ ಚಟುವಟಿಕೆಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸುವಲ್ಲಿ ಫಲ ನೀಡಿತು.

ಅದೇ ಸಮಯದಲ್ಲಿ, ವೃತ್ತಿಪರ ಸಾಫ್ಟ್‌ವೇರ್ ಡೆವಲಪರ್‌ಗಳಿಗೆ ತರಬೇತಿ ನೀಡಲು ಕೋರ್ಸ್‌ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ನಾನು ನಿರ್ಧರಿಸಿದೆ. ಮೊದಲಿನಿಂದಲೂ "ಪ್ರೋಗ್ರಾಮರ್ ಆಗಲು" ಕಲಿಯಲು ನಿಜವಾಗಿಯೂ ಸಾಧ್ಯವೇ ಎಂದು ನನಗೆ ಗೊತ್ತಿಲ್ಲ, ಆದರೆ ಆ ಸಮಯದಲ್ಲಿ ನಾನು ಈಗಾಗಲೇ ಹೊಂದಿದ್ದ ಕೌಶಲ್ಯಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಂಡು, ಆ ಹೊತ್ತಿಗೆ ಹೆಚ್ಚು ಪ್ರಸ್ತುತವಾದ ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ನಾನು ಸ್ವಲ್ಪಮಟ್ಟಿಗೆ ಕರಗತ ಮಾಡಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಯಿತು. C# ಆಗಿ, NET ಅಡಿಯಲ್ಲಿ ಅಭಿವೃದ್ಧಿಗಾಗಿ ವಿಷುಯಲ್ ಸ್ಟುಡಿಯೋ, ಹಾಗೆಯೇ Java, HTML ಮತ್ತು SQL ಗೆ ಸಂಬಂಧಿಸಿದ ಕೆಲವು ತಂತ್ರಜ್ಞಾನಗಳು. ಸಂಪೂರ್ಣ ತರಬೇತಿಯು ಒಟ್ಟು ಎರಡು ವರ್ಷಗಳನ್ನು ತೆಗೆದುಕೊಂಡಿತು ಮತ್ತು ನನ್ನ ಇನ್ನೊಂದು ಯೋಜನೆಗೆ ಆರಂಭಿಕ ಹಂತವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಿತು, ಇದು ಅಂತಿಮವಾಗಿ ಹಲವಾರು ವರ್ಷಗಳವರೆಗೆ ವಿಸ್ತರಿಸಿತು - ಆದರೆ ಇದು ಪ್ರತ್ಯೇಕ ಪ್ರಕಟಣೆಗೆ ಒಂದು ವಿಷಯವಾಗಿದೆ. ಸಿ# ಮತ್ತು ವಿನ್‌ಫಾರ್ಮ್‌ಗಳಲ್ಲಿ ಪೂರ್ಣ ಪ್ರಮಾಣದ ವಿಂಡೋ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ರಚಿಸಲು ವಿವರಿಸಿದ ಯೋಜನೆಯಲ್ಲಿ ನಾನು ಈಗಾಗಲೇ ಹೊಂದಿದ್ದ ಬೆಳವಣಿಗೆಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಲು ನಾನು ಪ್ರಯತ್ನಿಸಿದ್ದೇನೆ ಮತ್ತು ಅಗತ್ಯ ಕಾರ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮತ್ತು ಅದನ್ನು ಆಧಾರವಾಗಿ ಬಳಸುವುದನ್ನು ಇಲ್ಲಿ ಗಮನಿಸುವುದು ಸೂಕ್ತವಾಗಿದೆ. ಮುಂಬರುವ ಡಿಪ್ಲೊಮಾ ಯೋಜನೆ.
ಕಾಲಾನಂತರದಲ್ಲಿ, ಈ ಕಲ್ಪನೆಯು "LIBKOM" ಮತ್ತು "CRIMEA" ನಂತಹ ವಿವಿಧ ಗ್ರಂಥಾಲಯಗಳ ಪ್ರತಿನಿಧಿಗಳ ಭಾಗವಹಿಸುವಿಕೆಯೊಂದಿಗೆ ಅಂತಹ ವಾರ್ಷಿಕ ಸಮ್ಮೇಳನಗಳಲ್ಲಿ ಧ್ವನಿ ನೀಡಲು ಯೋಗ್ಯವಾಗಿದೆ ಎಂದು ನನಗೆ ತೋರುತ್ತದೆ. ಕಲ್ಪನೆ, ಹೌದು, ಆದರೆ ಆ ಸಮಯದಲ್ಲಿ ನನ್ನ ಅನುಷ್ಠಾನವಲ್ಲ. ನಂತರ ಯಾರಾದರೂ ಹೆಚ್ಚು ಸಮರ್ಥ ವಿಧಾನಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಅದನ್ನು ಪುನಃ ಬರೆಯುತ್ತಾರೆ ಎಂದು ನಾನು ಭಾವಿಸಿದೆ. ಒಂದು ರೀತಿಯಲ್ಲಿ ಅಥವಾ ಇನ್ನೊಂದು ರೀತಿಯಲ್ಲಿ, 2013 ರ ಹೊತ್ತಿಗೆ ನನ್ನ ಪ್ರಾಥಮಿಕ ಕೆಲಸದ ಬಗ್ಗೆ ವರದಿಯನ್ನು ಬರೆಯಲು ಮತ್ತು ಸಮ್ಮೇಳನದಲ್ಲಿ ಭಾಗವಹಿಸಲು ಅನುದಾನಕ್ಕಾಗಿ ಅರ್ಜಿಯೊಂದಿಗೆ ಸಮ್ಮೇಳನ ಸಂಘಟನಾ ಸಮಿತಿಗೆ ಕಳುಹಿಸಲು ನಾನು ನಿರ್ಧರಿಸಿದೆ. ನನಗೆ ಸ್ವಲ್ಪ ಆಶ್ಚರ್ಯವಾಗುವಂತೆ, ನನ್ನ ಅರ್ಜಿಯನ್ನು ಅನುಮೋದಿಸಲಾಗಿದೆ ಮತ್ತು ಸಮ್ಮೇಳನದಲ್ಲಿ ಪ್ರಸ್ತುತಿಗಾಗಿ ಅದನ್ನು ತಯಾರಿಸಲು ನಾನು ಯೋಜನೆಗೆ ಕೆಲವು ಸುಧಾರಣೆಗಳನ್ನು ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿದೆ.

ಆ ಹೊತ್ತಿಗೆ, ಯೋಜನೆಯು ಈಗಾಗಲೇ BIRMA ಎಂಬ ಹೊಸ ಹೆಸರನ್ನು ಪಡೆದುಕೊಂಡಿತ್ತು, ವಿವಿಧ ಹೆಚ್ಚುವರಿ (ಹೆಚ್ಚು ಸಂಪೂರ್ಣವಾಗಿ ಕಾರ್ಯಗತವಾಗಿಲ್ಲ, ಆದರೆ ಊಹಿಸಲಾಗಿದೆ) ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಪಡೆದುಕೊಂಡಿದೆ - ಎಲ್ಲಾ ವಿವರಗಳನ್ನು ನನ್ನ ವರದಿಯಲ್ಲಿ ಕಾಣಬಹುದು.

ಪ್ರಾಮಾಣಿಕವಾಗಿ ಹೇಳಬೇಕೆಂದರೆ, BIRMA 2013 ಅನ್ನು ಪೂರ್ಣವಾಗಿ ಕರೆಯುವುದು ಕಷ್ಟಕರವಾಗಿತ್ತು; ನಾನೂ ಹೇಳುವುದಾದರೆ, ಇದು ತರಾತುರಿಯಲ್ಲಿ ಮಾಡಿದ ಅತ್ಯಂತ ಹ್ಯಾಕಿ ಕ್ರಾಫ್ಟ್ ಆಗಿತ್ತು. ಕೋಡ್‌ನ ವಿಷಯದಲ್ಲಿ, ಪಾರ್ಸರ್‌ಗಾಗಿ ಕೆಲವು ರೀತಿಯ ಏಕೀಕೃತ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ರಚಿಸುವ ಅಸಹಾಯಕ ಪ್ರಯತ್ನವನ್ನು ಹೊರತುಪಡಿಸಿ ಪ್ರಾಯೋಗಿಕವಾಗಿ ಯಾವುದೇ ವಿಶೇಷ ಆವಿಷ್ಕಾರಗಳಿಲ್ಲ, ನೋಟದಲ್ಲಿ IRBIS 64 ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಭಾಷೆಯನ್ನು ನೆನಪಿಸುತ್ತದೆ (ಮತ್ತು ವಾಸ್ತವವಾಗಿ, ISIS ಸಿಸ್ಟಮ್ ಕೂಡ - ಆವರ್ತಕ ರಚನೆಗಳಂತೆ ಆವರಣಗಳೊಂದಿಗೆ; ಏಕೆ ಆ ಸಮಯದಲ್ಲಿ ಅದು ತುಂಬಾ ತಂಪಾಗಿದೆ ಎಂದು ನಾನು ಭಾವಿಸಿದೆವು). ಪಾರ್ಸರ್ ಸರಿಯಾದ ಪ್ರಕಾರದ ಆವರಣದ ಈ ವಲಯಗಳಲ್ಲಿ ಹತಾಶವಾಗಿ ಎಡವಿತು (ಆವರಣಗಳು ಮತ್ತೊಂದು ಪಾತ್ರವನ್ನು ನಿರ್ವಹಿಸುತ್ತವೆ, ಅವುಗಳೆಂದರೆ, ಪಾರ್ಸಿಂಗ್ ಸಮಯದಲ್ಲಿ ಅವರು ಐಚ್ಛಿಕ ರಚನೆಗಳನ್ನು ಗುರುತಿಸಿದ್ದಾರೆ, ಅದನ್ನು ಬಿಟ್ಟುಬಿಡಬಹುದು). ಊಹಿಸಲು ಕಷ್ಟಕರವಾದ, ಅಸಮರ್ಥನೀಯವಾದ ಬಿರ್ಮಾ ಸಿಂಟ್ಯಾಕ್ಸ್‌ನೊಂದಿಗೆ ಪರಿಚಯವಾಗಲು ಬಯಸುವ ಪ್ರತಿಯೊಬ್ಬರನ್ನು ನಾನು ಆ ಸಮಯದ ನನ್ನ ವರದಿಗೆ ಹೆಚ್ಚು ವಿವರವಾಗಿ ಉಲ್ಲೇಖಿಸುತ್ತೇನೆ.

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

ಎಲೆಕ್ಟ್ರಾನಿಕ್ ಕ್ಯಾಟಲಾಗ್‌ಗೆ ಡೇಟಾವನ್ನು ನಮೂದಿಸಲು ಮನೆಯಲ್ಲಿ ತಯಾರಿಸಿದ ವರ್ಕ್‌ಸ್ಟೇಷನ್‌ನ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಇಂಟರ್ಫೇಸ್‌ನೊಂದಿಗೆ ಪರಿಣಾಮವಾಗಿ ಡಿಎಲ್‌ಎಲ್ ಲೈಬ್ರರಿಯನ್ನು ಜೋಡಿಸುವಲ್ಲಿನ ತೊಂದರೆಗಳಿಗೆ ಬಹುಶಃ ಈ ಮೂರ್ಖ ನಿರ್ಧಾರವು ಕಾರಣವಾಗಿರಬಹುದು (ಹೌದು, ನಾನು ಇನ್ನೊಂದು ಪ್ರಮುಖ ಸಂಗತಿಯನ್ನು ಉಲ್ಲೇಖಿಸಿಲ್ಲ: ಇಂದಿನಿಂದ, ಎಲ್ಲಾ BIRMA "ಎಂಜಿನ್" ನ ಕೋಡ್ ನಿರೀಕ್ಷೆಯಂತೆ ಇತ್ತು, ಅದನ್ನು ಇಂಟರ್ಫೇಸ್ ಭಾಗದಿಂದ ಬೇರ್ಪಡಿಸಲಾಗಿದೆ ಮತ್ತು ಸೂಕ್ತವಾದ DLL ನಲ್ಲಿ ಪ್ಯಾಕ್ ಮಾಡಲಾಗಿದೆ). ಈ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಪ್ರತ್ಯೇಕ ಕಾರ್ಯಸ್ಥಳವನ್ನು ಬರೆಯುವುದು ಏಕೆ ಅಗತ್ಯವಾಗಿತ್ತು, ಅದು ಹೇಗಾದರೂ, ಅದರ ನೋಟ ಮತ್ತು ಬಳಕೆದಾರರೊಂದಿಗೆ ಸಂವಹನ ಮಾಡುವ ವಿಧಾನದಲ್ಲಿ, IRBIS 64 ಸಿಸ್ಟಮ್‌ನ ಅದೇ ಕಾರ್ಯಸ್ಥಳ “ಕ್ಯಾಟಲಾಜಿಜರ್” ಅನ್ನು ನಾಚಿಕೆಯಿಲ್ಲದೆ ನಕಲಿಸಿದೆ - ಇದು ಪ್ರತ್ಯೇಕ ಪ್ರಶ್ನೆಯಾಗಿದೆ. ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಹೇಳುವುದಾದರೆ: ಇದು ನನ್ನ ಪದವಿ ಯೋಜನೆಗೆ ನನ್ನ ಅಂದಿನ ಬೆಳವಣಿಗೆಗಳಿಗೆ ಅಗತ್ಯವಾದ ಘನತೆಯನ್ನು ನೀಡಿತು (ಇಲ್ಲದಿದ್ದರೆ ಜೀರ್ಣವಾಗದ ಪಾರ್ಸರ್ ಎಂಜಿನ್ ಮಾತ್ರ ಹೇಗಾದರೂ ಸಾಕಾಗುವುದಿಲ್ಲ). ಹೆಚ್ಚುವರಿಯಾಗಿ, C++ ಮತ್ತು C# ಎರಡರಲ್ಲೂ ಅಳವಡಿಸಲಾಗಿರುವ ನನ್ನ ಸ್ವಂತ ಮಾಡ್ಯೂಲ್‌ಗಳೊಂದಿಗೆ ಕ್ಯಾಟಲಾಜರ್ ವರ್ಕ್‌ಸ್ಟೇಷನ್‌ನ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಮತ್ತು ನನ್ನ ಎಂಜಿನ್ ಅನ್ನು ನೇರವಾಗಿ ಪ್ರವೇಶಿಸಲು ನಾನು ಕೆಲವು ತೊಂದರೆಗಳನ್ನು ಎದುರಿಸಿದೆ.

ಸಾಮಾನ್ಯವಾಗಿ, ವಿಚಿತ್ರವಾಗಿ ಸಾಕಷ್ಟು, ಇದು ಭವಿಷ್ಯದ BIRMA.NET ನ ಈ ಬೃಹದಾಕಾರದ ಮೂಲಮಾದರಿಯಾಗಿದ್ದು ಅದು ಮುಂದಿನ ನಾಲ್ಕು ವರ್ಷಗಳವರೆಗೆ ನನ್ನ "ಕೆಲಸಗಾರ" ಆಗಲು ಉದ್ದೇಶಿಸಲಾಗಿತ್ತು. ಈ ಸಮಯದಲ್ಲಿ ನಾನು ದೀರ್ಘಕಾಲೀನ ಕಲ್ಪನೆಯ ಹೊಸ, ಹೆಚ್ಚು ಸಂಪೂರ್ಣ ಅನುಷ್ಠಾನಕ್ಕೆ ಮಾರ್ಗಗಳನ್ನು ಹುಡುಕಲು ಪ್ರಯತ್ನಿಸಲಿಲ್ಲ ಎಂದು ಹೇಳಲಾಗುವುದಿಲ್ಲ. ಇತರ ಆವಿಷ್ಕಾರಗಳ ನಡುವೆ, ಐಚ್ಛಿಕ ಅಂಶಗಳನ್ನು ಒಳಗೊಂಡಿರಬಹುದಾದ ನೆಸ್ಟೆಡ್ ಸೈಕ್ಲಿಕ್ ಅನುಕ್ರಮಗಳು ಈಗಾಗಲೇ ಇದ್ದಿರಬೇಕು - ಪ್ರಕಟಣೆಗಳ ಗ್ರಂಥಸೂಚಿ ವಿವರಣೆಗಳು ಮತ್ತು ಇತರ ಹಲವಾರು ಆಸಕ್ತಿದಾಯಕ ವಿಷಯಗಳಿಗಾಗಿ ಸಾರ್ವತ್ರಿಕ ಟೆಂಪ್ಲೇಟ್‌ಗಳ ಕಲ್ಪನೆಯನ್ನು ನಾನು ಈ ರೀತಿ ಜೀವಂತಗೊಳಿಸಲಿದ್ದೇನೆ. ಆದಾಗ್ಯೂ, ಆ ಸಮಯದಲ್ಲಿ ನನ್ನ ಪ್ರಾಯೋಗಿಕ ಚಟುವಟಿಕೆಗಳಲ್ಲಿ, ಇದೆಲ್ಲವೂ ಕಡಿಮೆ ಬೇಡಿಕೆಯಲ್ಲಿತ್ತು, ಮತ್ತು ಆ ಸಮಯದಲ್ಲಿ ನಾನು ಹೊಂದಿದ್ದ ಅನುಷ್ಠಾನವು ವಿಷಯಗಳ ಕೋಷ್ಟಕಗಳನ್ನು ನಮೂದಿಸಲು ಸಾಕಷ್ಟು ಸಾಕಾಗಿತ್ತು. ಹೆಚ್ಚುವರಿಯಾಗಿ, ನಮ್ಮ ಗ್ರಂಥಾಲಯದ ಅಭಿವೃದ್ಧಿಯ ವೆಕ್ಟರ್ ಮ್ಯೂಸಿಯಂ ಆರ್ಕೈವ್‌ಗಳು, ವರದಿ ಮಾಡುವಿಕೆ ಮತ್ತು ನನಗೆ ಹೆಚ್ಚು ಆಸಕ್ತಿಯಿಲ್ಲದ ಇತರ ಚಟುವಟಿಕೆಗಳ ಡಿಜಿಟಲೀಕರಣದ ಕಡೆಗೆ ಹೆಚ್ಚು ಹೆಚ್ಚು ವಿಚಲನಗೊಳ್ಳಲು ಪ್ರಾರಂಭಿಸಿತು, ಇದು ಅಂತಿಮವಾಗಿ ಅದನ್ನು ಬಿಡಲು ನನ್ನನ್ನು ಒತ್ತಾಯಿಸಿತು, ಅದು ಯಾರಿಗೆ ದಾರಿ ಮಾಡಿಕೊಡುತ್ತದೆ ಈ ಎಲ್ಲದರ ಬಗ್ಗೆ ಹೆಚ್ಚು ಸಂತೋಷಪಡಿರಿ.

ವಿರೋಧಾಭಾಸವೆಂದರೆ, ಈ ನಾಟಕೀಯ ಘಟನೆಗಳ ನಂತರವೇ ಆ ಸಮಯದಲ್ಲಿ ಈಗಾಗಲೇ ವಿಶಿಷ್ಟವಾದ ದೀರ್ಘಕಾಲೀನ ನಿರ್ಮಾಣ ಯೋಜನೆಯ ಎಲ್ಲಾ ವಿಶಿಷ್ಟ ಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿದ್ದ BIRMA ಯೋಜನೆಯು ತನ್ನ ಬಹುನಿರೀಕ್ಷಿತ ಹೊಸ ಜೀವನವನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ಪ್ರಾರಂಭಿಸಿತು! ನಾನು ನಿಷ್ಫಲ ಆಲೋಚನೆಗಳಿಗಾಗಿ ಹೆಚ್ಚು ಉಚಿತ ಸಮಯವನ್ನು ಹೊಂದಿದ್ದೇನೆ, ನಾನು ಮತ್ತೆ ಇದೇ ರೀತಿಯ ಹುಡುಕಾಟದಲ್ಲಿ ವರ್ಲ್ಡ್ ವೈಡ್ ವೆಬ್ ಅನ್ನು ಬಾಚಲು ಪ್ರಾರಂಭಿಸಿದೆ (ಅದೃಷ್ಟವಶಾತ್, ಈಗ ನಾನು ಎಲ್ಲಿಂದಲಾದರೂ ಇದೆಲ್ಲವನ್ನು ಹುಡುಕಲು ಈಗಾಗಲೇ ಊಹಿಸಿದ್ದೇನೆ, ಆದರೆ GitHub ನಲ್ಲಿ), ಮತ್ತು ಎಲ್ಲೋ ಈ ವರ್ಷದ ಆರಂಭದಲ್ಲಿ, ನಾನು ಅಂತಿಮವಾಗಿ ಪ್ರಸಿದ್ಧ ಸೇಲ್ಸ್‌ಫೋರ್ಸ್ ಕಂಪನಿಯಿಂದ ಅನುಗುಣವಾದ ಉತ್ಪನ್ನವನ್ನು ಅತ್ಯಲ್ಪ ಹೆಸರಿನಲ್ಲಿ ನೋಡಿದೆ ಗೋರ್ಪ್. ಅಂತಹ ಪಾರ್ಸರ್ ಎಂಜಿನ್‌ನಿಂದ ನನಗೆ ಬೇಕಾದ ಎಲ್ಲವನ್ನೂ ಅದು ಸ್ವತಃ ಮಾಡಬಹುದು - ಅವುಗಳೆಂದರೆ, ಅನಿಯಂತ್ರಿತ, ಆದರೆ ಸ್ಪಷ್ಟವಾಗಿ ರಚನಾತ್ಮಕ ಪಠ್ಯದಿಂದ ಪ್ರತ್ಯೇಕ ತುಣುಕುಗಳನ್ನು ಬುದ್ಧಿವಂತಿಕೆಯಿಂದ ಪ್ರತ್ಯೇಕಿಸಿ, ಅಂತಿಮ ಬಳಕೆದಾರರಿಗೆ ಸಾಕಷ್ಟು ಬಳಕೆದಾರ ಸ್ನೇಹಿ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಹೊಂದಿರುವಾಗ, ಅಂತಹ ಅರ್ಥವಾಗುವ ಸಾರಗಳನ್ನು ಒಳಗೊಂಡಂತೆ. ಒಂದು ಮಾದರಿ, ಟೆಂಪ್ಲೇಟ್ ಮತ್ತು ಸಂಭವಿಸುವಿಕೆ, ಮತ್ತು ಅದೇ ಸಮಯದಲ್ಲಿ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳ ಪರಿಚಿತ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಬಳಸುತ್ತದೆ, ಇದು ಪಾರ್ಸಿಂಗ್ಗಾಗಿ ಗೊತ್ತುಪಡಿಸಿದ ಲಾಕ್ಷಣಿಕ ಗುಂಪುಗಳಾಗಿ ವಿಭಜಿಸುವುದರಿಂದ ಹೋಲಿಸಲಾಗದಷ್ಟು ಹೆಚ್ಚು ಓದಬಲ್ಲದು.

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

ಮತ್ತೊಂದು ಸಮಸ್ಯೆಯೆಂದರೆ, ಯೋಜನೆಯನ್ನು ಸ್ವತಃ ಜಾವಾದಲ್ಲಿ ಅಳವಡಿಸಲಾಗಿದೆ ಮತ್ತು ಭವಿಷ್ಯದಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಡೇಟಾಬೇಸ್‌ಗಳಿಗೆ (ಇರ್ಬಿಸ್‌ನ "ಕ್ಯಾಟಲಾಗ್ಯರ್" ನಂತಹ) ಡೇಟಾವನ್ನು ನಮೂದಿಸಲು ಪರಿಚಿತ ಅಪ್ಲಿಕೇಶನ್‌ಗಳೊಂದಿಗೆ ಈ ತಂತ್ರಜ್ಞಾನವನ್ನು ಇಂಟರ್ಫೇಸ್ ಮಾಡುವ ಕೆಲವು ವಿಧಾನಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ನಾನು ಯೋಜಿಸಿದ್ದರೆ, ಕನಿಷ್ಠ ಪಕ್ಷ ಇದನ್ನು C# ಮತ್ತು .NET ನಲ್ಲಿ ಮಾಡಿ. ಇದು ಜಾವಾ ಕೆಟ್ಟ ಭಾಷೆ ಎಂದು ಅಲ್ಲ - ದೇಶೀಯ ಪ್ರೊಗ್ರಾಮೆಬಲ್ ಕ್ಯಾಲ್ಕುಲೇಟರ್ (ಕೋರ್ಸ್ ಯೋಜನೆಯ ಭಾಗವಾಗಿ) ಕಾರ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ಆಸಕ್ತಿದಾಯಕ ವಿಂಡೋ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ನಾನು ಅದನ್ನು ಒಮ್ಮೆ ಬಳಸಿದ್ದೇನೆ. ಮತ್ತು ಸಿಂಟ್ಯಾಕ್ಸ್ ವಿಷಯದಲ್ಲಿ ಇದು ಅದೇ ಸಿ-ಶಾರ್ಪ್ಗೆ ಹೋಲುತ್ತದೆ. ಒಳ್ಳೆಯದು, ಇದು ಕೇವಲ ಒಂದು ಪ್ಲಸ್ ಆಗಿದೆ: ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಯೋಜನೆಯನ್ನು ಅಂತಿಮಗೊಳಿಸಲು ನನಗೆ ಸುಲಭವಾಗುತ್ತದೆ. ಹೇಗಾದರೂ, ವಿಂಡೋ (ಅಥವಾ ಬದಲಿಗೆ, ಡೆಸ್ಕ್ಟಾಪ್) ಜಾವಾ ತಂತ್ರಜ್ಞಾನಗಳ ಈ ಅಸಾಮಾನ್ಯ ಜಗತ್ತಿನಲ್ಲಿ ಮತ್ತೆ ಧುಮುಕುವುದು ನನಗೆ ಇಷ್ಟವಿರಲಿಲ್ಲ - ಎಲ್ಲಾ ನಂತರ, ಭಾಷೆ ಸ್ವತಃ ಅಂತಹ ಬಳಕೆಗೆ "ಅನುಗುಣವಾದ" ಅಲ್ಲ, ಮತ್ತು ನಾನು ಪುನರಾವರ್ತನೆಗೆ ಹಂಬಲಿಸಲಿಲ್ಲ. ಹಿಂದಿನ ಅನುಭವ. ಬಹುಶಃ ಇದು ನಿಖರವಾಗಿ ಏಕೆಂದರೆ WinForms ಜೊತೆಯಲ್ಲಿ C# ಡೆಲ್ಫಿಗೆ ಹೆಚ್ಚು ಹತ್ತಿರದಲ್ಲಿದೆ, ಅದರೊಂದಿಗೆ ನಮ್ಮಲ್ಲಿ ಹಲವರು ಒಮ್ಮೆ ಪ್ರಾರಂಭಿಸಿದರು. ಅದೃಷ್ಟವಶಾತ್, ಅಗತ್ಯ ಪರಿಹಾರವನ್ನು ತ್ವರಿತವಾಗಿ ಕಂಡುಹಿಡಿಯಲಾಯಿತು - ಯೋಜನೆಯ ರೂಪದಲ್ಲಿ IKVM.NET, ಇದು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಜಾವಾ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ನಿರ್ವಹಿಸಿದ .NET ಕೋಡ್‌ಗೆ ಭಾಷಾಂತರಿಸಲು ಸುಲಭಗೊಳಿಸುತ್ತದೆ. ನಿಜ, ಆ ಹೊತ್ತಿಗೆ ಯೋಜನೆಯನ್ನು ಈಗಾಗಲೇ ಲೇಖಕರು ಕೈಬಿಟ್ಟಿದ್ದರು, ಆದರೆ ಅದರ ಇತ್ತೀಚಿನ ಅನುಷ್ಠಾನವು ಮೂಲ ಪಠ್ಯಗಳಿಗೆ ಅಗತ್ಯವಾದ ಕ್ರಮಗಳನ್ನು ಸಾಕಷ್ಟು ಯಶಸ್ವಿಯಾಗಿ ನಿರ್ವಹಿಸಲು ನನಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಟ್ಟಿತು. ಗೋರ್ಪ್.

ಹಾಗಾಗಿ ನಾನು ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಿದ್ದೇನೆ ಮತ್ತು ಸೂಕ್ತವಾದ ಪ್ರಕಾರದ DLL ಗೆ ಎಲ್ಲವನ್ನೂ ಜೋಡಿಸಿದ್ದೇನೆ, ವಿಷುಯಲ್ ಸ್ಟುಡಿಯೋದಲ್ಲಿ ರಚಿಸಲಾದ .NET ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಾಗಿ ಯಾವುದೇ ಯೋಜನೆಗಳಿಂದ ಸುಲಭವಾಗಿ "ಪಿಕ್ ಅಪ್" ಮಾಡಬಹುದಾಗಿದೆ. ಈ ಮಧ್ಯೆ, ಹಿಂತಿರುಗಿದ ಫಲಿತಾಂಶಗಳ ಅನುಕೂಲಕರ ಪ್ರಸ್ತುತಿಗಾಗಿ ನಾನು ಇನ್ನೊಂದು ಪದರವನ್ನು ರಚಿಸಿದೆ ಗೋರ್ಪ್, ಕೋಷ್ಟಕ ವೀಕ್ಷಣೆಯಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಅನುಕೂಲಕರವಾದ ಅನುಗುಣವಾದ ಡೇಟಾ ರಚನೆಗಳ ರೂಪದಲ್ಲಿ (ಸಾಲುಗಳು ಮತ್ತು ಕಾಲಮ್‌ಗಳೆರಡನ್ನೂ ಆಧಾರವಾಗಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ; ನಿಘಂಟು ಕೀಗಳು ಮತ್ತು ಸಂಖ್ಯಾತ್ಮಕ ಸೂಚಿಕೆಗಳು). ಸರಿ, ಫಲಿತಾಂಶಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಮತ್ತು ಪ್ರದರ್ಶಿಸಲು ಅಗತ್ಯವಾದ ಉಪಯುಕ್ತತೆಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಬರೆಯಲಾಗಿದೆ.

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

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

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

ಸ್ವಲ್ಪ ಯೋಚಿಸಿದ ನಂತರ, ನಾನು ಒಂದೆರಡು ಸೇವಾ ಮಾದರಿಗಳನ್ನು ಪರಿಚಯಿಸಲು ನಿರ್ಧರಿಸಿದೆ (%ಎಲ್ಲಾ_ಮೊದಲು) и (%all_after), ಮೂಲ ಪಠ್ಯದಲ್ಲಿ ಒಳಗೊಂಡಿರುವ ಎಲ್ಲವನ್ನೂ ಅವುಗಳನ್ನು ಅನುಸರಿಸುವ ಯಾವುದೇ ಮಾದರಿ (ಮುಖವಾಡ) ಮೊದಲು ಬಿಟ್ಟುಬಿಡಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವ ಸ್ಪಷ್ಟ ಉದ್ದೇಶವನ್ನು ಪೂರೈಸುತ್ತದೆ. ಇದಲ್ಲದೆ, ವೇಳೆ (%ಎಲ್ಲಾ_ಮೊದಲು) ಈ ಎಲ್ಲಾ ಅನಿಯಂತ್ರಿತ ಸೇರ್ಪಡೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಿದೆ (%all_after), ಇದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿ, ಹಿಂದಿನ ತುಣುಕಿನಿಂದ ಚಲಿಸಿದ ನಂತರ ಅವುಗಳನ್ನು ಬಯಸಿದ ತುಣುಕಿಗೆ ಸೇರಿಸಲು ಅವಕಾಶ ಮಾಡಿಕೊಟ್ಟಿತು. ಇದು ತುಂಬಾ ಸರಳವಾಗಿದೆ ಎಂದು ತೋರುತ್ತದೆ, ಆದರೆ ಈ ಪರಿಕಲ್ಪನೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ನಾನು ಈಗಾಗಲೇ ಅಳವಡಿಸಲಾಗಿರುವ ತರ್ಕವನ್ನು ಮುರಿಯದಂತೆ ಅಗತ್ಯವಾದ ಮಾರ್ಪಾಡುಗಳನ್ನು ಮಾಡಲು ಗೋರ್ಪ್ ಮೂಲಗಳ ಮೂಲಕ ಮತ್ತೊಮ್ಮೆ ಬಾಚಣಿಗೆ ಮಾಡಬೇಕಾಗಿತ್ತು. ಕೊನೆಯಲ್ಲಿ, ನಾವು ಇದನ್ನು ಮಾಡಲು ನಿರ್ವಹಿಸುತ್ತಿದ್ದೆವು (ಆದರೂ, ಮೊದಲನೆಯದು, ತುಂಬಾ ದೋಷಯುಕ್ತವಾಗಿದ್ದರೂ, ನನ್ನ ಪಾರ್ಸರ್ನ ಅನುಷ್ಠಾನವನ್ನು ಬರೆಯಲಾಗಿದೆ, ಮತ್ತು ಇನ್ನೂ ವೇಗವಾಗಿ - ಒಂದೆರಡು ವಾರಗಳಲ್ಲಿ). ಇಂದಿನಿಂದ, ವ್ಯವಸ್ಥೆಯು ನಿಜವಾದ ಸಾರ್ವತ್ರಿಕ ರೂಪವನ್ನು ಪಡೆದುಕೊಂಡಿದೆ - ಅದು ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಮೊದಲ ಪ್ರಯತ್ನಗಳ ನಂತರ 12 ವರ್ಷಗಳಿಗಿಂತಲೂ ಕಡಿಮೆಯಿಲ್ಲ.

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

ಅಂದಹಾಗೆ, ಈ ಬೇಸಿಗೆಯಲ್ಲಿ ನಾನು ಈಗಾಗಲೇ ಸೇಲ್ಸ್‌ಫೋರ್ಸ್ ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಬಳಸುವ ಕಂಪನಿಯಿಂದ ಇಮೇಲ್ ಮೂಲಕ ಆಹ್ವಾನವನ್ನು ಸ್ವೀಕರಿಸಿದ್ದೇನೆ (ಮೂಲದ ಡೆವಲಪರ್ ಗೋರ್ಪ್), ರಿಗಾದಲ್ಲಿ ನಂತರದ ಕೆಲಸಕ್ಕಾಗಿ ಸಂದರ್ಶನದಲ್ಲಿ ಉತ್ತೀರ್ಣರಾಗಿ. ದುರದೃಷ್ಟವಶಾತ್, ಈ ಸಮಯದಲ್ಲಿ ನಾನು ಅಂತಹ ಮರುನಿಯೋಜನೆಗಳಿಗೆ ಸಿದ್ಧವಾಗಿಲ್ಲ.

ಈ ವಸ್ತುವು ಸ್ವಲ್ಪ ಆಸಕ್ತಿಯನ್ನು ಹುಟ್ಟುಹಾಕಿದರೆ, ಎರಡನೇ ಭಾಗದಲ್ಲಿ ನಾನು ಸೇಲ್ಸ್‌ಫೋರ್ಸ್‌ನಲ್ಲಿ ಬಳಸಿದ ಅನುಷ್ಠಾನದ ಉದಾಹರಣೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಟೆಂಪ್ಲೇಟ್‌ಗಳನ್ನು ಕಂಪೈಲ್ ಮಾಡುವ ಮತ್ತು ನಂತರ ಪಾರ್ಸಿಂಗ್ ಮಾಡುವ ತಂತ್ರಜ್ಞಾನವನ್ನು ಹೆಚ್ಚು ವಿವರವಾಗಿ ವಿವರಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತೇನೆ. ಗೋರ್ಪ್ (ನನ್ನ ಸ್ವಂತ ಸೇರ್ಪಡೆಗಳು, ಈಗಾಗಲೇ ವಿವರಿಸಿದ ಒಂದೆರಡು ಕಾರ್ಯ ಪದಗಳನ್ನು ಹೊರತುಪಡಿಸಿ, ಟೆಂಪ್ಲೇಟ್ ಸಿಂಟ್ಯಾಕ್ಸ್‌ಗೆ ವಾಸ್ತವಿಕವಾಗಿ ಯಾವುದೇ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಮೂಲ ಸಿಸ್ಟಮ್‌ಗಾಗಿ ಬಹುತೇಕ ಎಲ್ಲಾ ದಾಖಲಾತಿಗಳು ಗೋರ್ಪ್ ನನ್ನ ಆವೃತ್ತಿಗೆ ಸಹ ಸೂಕ್ತವಾಗಿದೆ).

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ