ZuriHac: ಕ್ರಿಯಾತ್ಮಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಅಭ್ಯಾಸ

ಈ ವರ್ಷದ ಜೂನ್‌ನಲ್ಲಿ, ರಾಪರ್ಸ್‌ವಿಲ್‌ನ ಸಣ್ಣ ಸ್ವಿಸ್ ಪಟ್ಟಣದಲ್ಲಿ, ಈವೆಂಟ್ ಅನ್ನು ಕರೆಯಲಾಯಿತು ZuriHac. ಈ ಬಾರಿ ಐನೂರಕ್ಕೂ ಹೆಚ್ಚು ಹಾಸ್ಕೆಲ್ ಪ್ರೇಮಿಗಳು, ಪ್ರಾರಂಭಿಕರಿಂದ ಹಿಡಿದು ಭಾಷೆಯ ಸ್ಥಾಪಕ ಪಿತಾಮಹರವರೆಗೆ ಒಂದುಗೂಡಿದರು. ಸಂಘಟಕರು ಈ ಕಾರ್ಯಕ್ರಮವನ್ನು ಹ್ಯಾಕಥಾನ್ ಎಂದು ಕರೆಯುತ್ತಾರೆಯಾದರೂ, ಇದು ಶಾಸ್ತ್ರೀಯ ಅರ್ಥದಲ್ಲಿ ಸಮ್ಮೇಳನ ಅಥವಾ ಹ್ಯಾಕಥಾನ್ ಅಲ್ಲ. ಇದರ ಸ್ವರೂಪವು ಸಾಂಪ್ರದಾಯಿಕ ಪ್ರೋಗ್ರಾಮರ್‌ಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿದೆ. ನಾವು ಅದೃಷ್ಟದಿಂದ ZuriHac ಬಗ್ಗೆ ಕಲಿತಿದ್ದೇವೆ, ಅದರಲ್ಲಿ ಭಾಗವಹಿಸಿದ್ದೇವೆ ಮತ್ತು ಈಗ ನಾವು ಅಸಾಮಾನ್ಯ ಆವಿಷ್ಕಾರದ ಬಗ್ಗೆ ಹೇಳುವುದು ನಮ್ಮ ಕರ್ತವ್ಯವೆಂದು ಪರಿಗಣಿಸುತ್ತೇವೆ!

ZuriHac: ಕ್ರಿಯಾತ್ಮಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಅಭ್ಯಾಸ

О нас

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

ಈವೆಂಟ್ ಸ್ವರೂಪ

ಗುರಿ ಪ್ರೇಕ್ಷಕರು ಓಪನ್ ಸೋರ್ಸ್ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳ ಮಾಲೀಕರು, ಅವರ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ಭಾಗವಹಿಸಲು ಬಯಸುವ ಪ್ರೋಗ್ರಾಮರ್‌ಗಳು, ಕ್ರಿಯಾತ್ಮಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಸಂಶೋಧಕರು ಮತ್ತು ಹ್ಯಾಸ್‌ಕೆಲ್ ಬಗ್ಗೆ ಸರಳವಾಗಿ ಭಾವೋದ್ರಿಕ್ತ ಜನರು. ಈ ವರ್ಷ, ಸ್ಥಳದಲ್ಲಿ, HSR Hochschule für Technik Rapperswil, ಪ್ರಪಂಚದಾದ್ಯಂತದ ಐವತ್ತಕ್ಕೂ ಹೆಚ್ಚು ಓಪನ್ ಸೋರ್ಸ್ ಹ್ಯಾಸ್ಕೆಲ್ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳ ಡೆವಲಪರ್‌ಗಳು ತಮ್ಮ ಉತ್ಪನ್ನಗಳ ಬಗ್ಗೆ ಮಾತನಾಡಲು ಮತ್ತು ಹೊಸ ಜನರನ್ನು ತಮ್ಮ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ಆಸಕ್ತಿಯನ್ನು ಹೊಂದಲು ಒಟ್ಟುಗೂಡಿದರು.

ZuriHac: ಕ್ರಿಯಾತ್ಮಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಅಭ್ಯಾಸ

Twitter ನಿಂದ ಫೋಟೋ ZuriHac

ಯೋಜನೆಯು ತುಂಬಾ ಸರಳವಾಗಿದೆ: ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ ಕುರಿತು ನೀವು ಕೆಲವು ಪ್ರಸ್ತಾಪಗಳನ್ನು ಮುಂಚಿತವಾಗಿ ಬರೆಯಬೇಕು ಮತ್ತು ಅವುಗಳನ್ನು ಸಂಘಟಕರಿಗೆ ಕಳುಹಿಸಬೇಕು, ಅವರು ಈವೆಂಟ್ ಪುಟದಲ್ಲಿ ನಿಮ್ಮ ಯೋಜನೆಯ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಪೋಸ್ಟ್ ಮಾಡುತ್ತಾರೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಮೊದಲ ದಿನ, ಯೋಜನೆಗಳ ಲೇಖಕರು ಅವರು ಏನು ಮಾಡುತ್ತಿದ್ದಾರೆ ಮತ್ತು ಏನು ಮಾಡಬೇಕೆಂದು ವೇದಿಕೆಯಿಂದ ಬಹಳ ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಹೇಳಲು ಮೂವತ್ತು ಸೆಕೆಂಡುಗಳು. ನಂತರ ಆಸಕ್ತರು ಲೇಖಕರನ್ನು ಹುಡುಕುತ್ತಾರೆ ಮತ್ತು ಕಾರ್ಯಗಳ ಬಗ್ಗೆ ವಿವರವಾಗಿ ಕೇಳುತ್ತಾರೆ.

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

ಮೌಲ್ಯಯುತವಾದ ಅಭ್ಯಾಸದ ಜೊತೆಗೆ, ಹಲವಾರು ಉಪನ್ಯಾಸಗಳು ಮತ್ತು ಮಾಸ್ಟರ್ ತರಗತಿಗಳನ್ನು ಸಹ ZuriHac ನಲ್ಲಿ ನೀಡಲಾಯಿತು. ನಾವು ವಿಶೇಷವಾಗಿ ಎರಡು ಉಪನ್ಯಾಸಗಳನ್ನು ನೆನಪಿಸಿಕೊಳ್ಳುತ್ತೇವೆ. ಅವುಗಳಲ್ಲಿ ಮೊದಲನೆಯದರಲ್ಲಿ, ನ್ಯೂಕ್ಯಾಸಲ್ ವಿಶ್ವವಿದ್ಯಾನಿಲಯದ ಆಂಡ್ರೆ ಮೊಖೋವ್ ಆಯ್ದ ಅನ್ವಯಿಕ ಕಾರ್ಯಗಳ ಬಗ್ಗೆ ಮಾತನಾಡಿದರು - ಅನ್ವಯಿಕ ಫಂಕ್ಟರ್‌ಗಳು ಮತ್ತು ಮೊನಾಡ್‌ಗಳ ನಡುವೆ ಮಧ್ಯಂತರವಾಗಬೇಕಾದ ಪ್ರಕಾರಗಳ ವರ್ಗ. ಮತ್ತೊಂದು ಉಪನ್ಯಾಸದಲ್ಲಿ, ಹ್ಯಾಸ್ಕೆಲ್‌ನ ಸಂಸ್ಥಾಪಕರಲ್ಲಿ ಒಬ್ಬರಾದ ಸೈಮನ್ ಪೇಟನ್ ಜೋನ್ಸ್, GHC ಕಂಪೈಲರ್‌ನಲ್ಲಿ ಟೈಪ್ ಇನ್ಫರೆನ್ಸ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದರ ಕುರಿತು ಮಾತನಾಡಿದರು.

ZuriHac: ಕ್ರಿಯಾತ್ಮಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಅಭ್ಯಾಸ

ಸೈಮನ್ ಪೇಟನ್ ಜೋನ್ಸ್ ಅವರಿಂದ ಉಪನ್ಯಾಸ. Twitter ನಿಂದ ಫೋಟೋ ZuriHac

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

ಈವೆಂಟ್‌ಗಾಗಿ ನೋಂದಣಿ ನಿಯಮಿತವಾಗಿ ಭಾಗವಹಿಸುವವರು ಮತ್ತು ಯೋಜನಾ ಲೇಖಕರಿಗೆ ಉಚಿತವಾಗಿದೆ. ನಾವು ಜೂನ್ ಆರಂಭದಲ್ಲಿ ಭಾಗವಹಿಸಲು ಅರ್ಜಿಗಳನ್ನು ಸಲ್ಲಿಸಿದ್ದೇವೆ, ಅದರ ನಂತರ ನಮ್ಮನ್ನು ಕಾಯುವ ಪಟ್ಟಿಯಿಂದ ದೃಢಪಡಿಸಿದ ಭಾಗವಹಿಸುವವರ ಪಟ್ಟಿಗೆ ತ್ವರಿತವಾಗಿ ವರ್ಗಾಯಿಸಲಾಯಿತು.

ಮತ್ತು ಈಗ ನಾವು ಭಾಗವಹಿಸಿದ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿನ ಯೋಜನೆಗಳ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತೇವೆ.

ಪಾಂಡೋಕ್

ಪಾಂಡೋಕ್ ಪಠ್ಯ ದಾಖಲೆಗಳ ಸಾರ್ವತ್ರಿಕ ಪರಿವರ್ತಕವಾಗಿದೆ, ವಾಸ್ತವವಾಗಿ, ಯಾವುದೇ ಸ್ವರೂಪದಿಂದ ಯಾವುದಕ್ಕೂ. ಉದಾಹರಣೆಗೆ, docx ನಿಂದ pdf ಗೆ, ಅಥವಾ Markdown ನಿಂದ MediaWiki ಗೆ. ಇದರ ಲೇಖಕ, ಜಾನ್ ಮ್ಯಾಕ್‌ಫರ್ಲೇನ್, ಬರ್ಕ್ಲಿಯ ಕ್ಯಾಲಿಫೋರ್ನಿಯಾ ವಿಶ್ವವಿದ್ಯಾಲಯದಲ್ಲಿ ತತ್ವಶಾಸ್ತ್ರದ ಪ್ರಾಧ್ಯಾಪಕರಾಗಿದ್ದಾರೆ. ಸಾಮಾನ್ಯವಾಗಿ, ಪಾಂಡೊಕ್ ಸಾಕಷ್ಟು ಪ್ರಸಿದ್ಧವಾಗಿದೆ, ಮತ್ತು ಪಾಂಡೊಕ್ ಅನ್ನು ಹ್ಯಾಸ್ಕೆಲ್ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಎಂದು ತಿಳಿದಾಗ ನಮ್ಮ ಕೆಲವು ಸ್ನೇಹಿತರು ಆಶ್ಚರ್ಯಚಕಿತರಾದರು.

ZuriHac: ಕ್ರಿಯಾತ್ಮಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಅಭ್ಯಾಸ

Pandoc ಬೆಂಬಲಿಸುವ ಡಾಕ್ಯುಮೆಂಟ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳ ಪಟ್ಟಿ. ಸೈಟ್ನಲ್ಲಿ ಸಂಪೂರ್ಣ ಗ್ರಾಫ್ ಕೂಡ ಇದೆ, ಆದರೆ ಈ ಚಿತ್ರವು ಲೇಖನಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ.

ಸಹಜವಾಗಿ, Pandoc ಪ್ರತಿ ಜೋಡಿ ಸ್ವರೂಪಗಳಿಗೆ ನೇರ ಪರಿವರ್ತನೆಯನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ. ಅಂತಹ ವೈವಿಧ್ಯಮಯ ರೂಪಾಂತರಗಳನ್ನು ಬೆಂಬಲಿಸಲು, ಪ್ರಮಾಣಿತ ವಾಸ್ತುಶಿಲ್ಪದ ಪರಿಹಾರವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ: ಮೊದಲನೆಯದಾಗಿ, ಸಂಪೂರ್ಣ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ವಿಶೇಷ ಆಂತರಿಕ ಮಧ್ಯಂತರ ಪ್ರಾತಿನಿಧ್ಯಕ್ಕೆ ಅನುವಾದಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಂತರ ಈ ಆಂತರಿಕ ಪ್ರಾತಿನಿಧ್ಯದಿಂದ ಬೇರೆ ರೂಪದಲ್ಲಿ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ. ಡೆವಲಪರ್‌ಗಳು ಆಂತರಿಕ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು "AST" ಎಂದು ಕರೆಯುತ್ತಾರೆ, ಇದು ಅಮೂರ್ತ ಸಿಂಟ್ಯಾಕ್ಸ್ ಟ್ರೀ, ಅಥವಾ ಅಮೂರ್ತ ಸಿಂಟ್ಯಾಕ್ಸ್ ಮರ. ನೀವು ಮಧ್ಯಂತರ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಸರಳವಾಗಿ ನೋಡಬಹುದು: ನೀವು ಮಾಡಬೇಕಾಗಿರುವುದು ಔಟ್‌ಪುಟ್ ಸ್ವರೂಪವನ್ನು "ಸ್ಥಳೀಯ" ಗೆ ಹೊಂದಿಸುವುದು

$ cat example.html
<h1>Hello, World!</h1>

$ pandoc -f html -t native example.html
[Header 1 ("hello-world",[],[]) [Str "Hello,",Space,Str "World!"]]

ಹ್ಯಾಸ್ಕೆಲ್‌ನೊಂದಿಗೆ ಸ್ವಲ್ಪಮಟ್ಟಿಗೆ ಕೆಲಸ ಮಾಡಿದ ಓದುಗರು ಪಾಂಡೊಕ್ ಅನ್ನು ಹ್ಯಾಸ್ಕೆಲ್‌ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಎಂದು ಈ ಸಣ್ಣ ಉದಾಹರಣೆಯಿಂದ ಈಗಾಗಲೇ ಊಹಿಸಬಹುದು: ಈ ಆಜ್ಞೆಯ ಔಟ್‌ಪುಟ್ ಪ್ಯಾಂಡೋಕ್‌ನ ಆಂತರಿಕ ರಚನೆಗಳ ಸ್ಟ್ರಿಂಗ್ ಪ್ರಾತಿನಿಧ್ಯವಾಗಿದೆ, ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಹೇಗೆ ಮಾಡಲಾಗುತ್ತದೆ ಎಂಬುದರ ಹೋಲಿಕೆಯಲ್ಲಿ ರಚಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಲೈಬ್ರರಿಯಲ್ಲಿ.

ಆದ್ದರಿಂದ, ಇಲ್ಲಿ ನೀವು ಆಂತರಿಕ ಪ್ರಾತಿನಿಧ್ಯವು ಪುನರಾವರ್ತಿತ ರಚನೆಯಾಗಿದೆ ಎಂದು ನೋಡಬಹುದು, ಪ್ರತಿ ಆಂತರಿಕ ನೋಡ್‌ನಲ್ಲಿ ಪಟ್ಟಿ ಇದೆ. ಉದಾಹರಣೆಗೆ, ಉನ್ನತ ಮಟ್ಟದಲ್ಲಿ ಒಂದು ಅಂಶದ ಪಟ್ಟಿ ಇದೆ - "ಹಲೋ-ವರ್ಲ್ಡ್",[],[] ಗುಣಲಕ್ಷಣಗಳೊಂದಿಗೆ ಮೊದಲ ಹಂತದ ಹೆಡರ್. ಈ ಹೆಡರ್ ಒಳಗೆ "ಹಲೋ" ಸ್ಟ್ರಿಂಗ್‌ನ ಪಟ್ಟಿಯನ್ನು ಮರೆಮಾಡಲಾಗಿದೆ, ನಂತರ ಒಂದು ಸ್ಪೇಸ್ ಮತ್ತು ಸ್ಟ್ರಿಂಗ್ "ವರ್ಲ್ಡ್!".

ನೀವು ನೋಡುವಂತೆ, ಆಂತರಿಕ ಪ್ರಾತಿನಿಧ್ಯವು HTML ನಿಂದ ಹೆಚ್ಚು ಭಿನ್ನವಾಗಿಲ್ಲ. ಪ್ರತಿ ಆಂತರಿಕ ನೋಡ್ ಅದರ ವಂಶಸ್ಥರ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಬಗ್ಗೆ ಕೆಲವು ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸುವ ಮರವಾಗಿದೆ, ಮತ್ತು ಎಲೆಗಳು ಡಾಕ್ಯುಮೆಂಟ್‌ನ ನಿಜವಾದ ವಿಷಯಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ.

ನಾವು ಅನುಷ್ಠಾನದ ಹಂತಕ್ಕೆ ಹೋದರೆ, ಸಂಪೂರ್ಣ ಡಾಕ್ಯುಮೆಂಟ್‌ನ ಡೇಟಾ ಪ್ರಕಾರವನ್ನು ಈ ರೀತಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ:

data Pandoc = Pandoc Meta [Block]

ಇಲ್ಲಿ ಬ್ಲಾಕ್ ಅನ್ನು ನಿಖರವಾಗಿ ಮೇಲೆ ತಿಳಿಸಲಾದ ಆಂತರಿಕ ಶೃಂಗಗಳು, ಮತ್ತು ಮೆಟಾವು ಶೀರ್ಷಿಕೆ, ರಚನೆಯ ದಿನಾಂಕ, ಲೇಖಕರಂತಹ ಡಾಕ್ಯುಮೆಂಟ್‌ನ ಬಗ್ಗೆ ಮೆಟೈನ್‌ಫಾರ್ಮೇಶನ್ ಆಗಿದೆ - ಇದು ವಿಭಿನ್ನ ಸ್ವರೂಪಗಳಿಗೆ ವಿಭಿನ್ನವಾಗಿದೆ ಮತ್ತು ಫಾರ್ಮ್ಯಾಟ್‌ನಿಂದ ಅನುವಾದಿಸುವಾಗ ಅಂತಹ ಮಾಹಿತಿಯನ್ನು ಸಂರಕ್ಷಿಸಲು ಪಾಂಡೊಕ್ ಪ್ರಯತ್ನಿಸುತ್ತಾನೆ. ಸ್ವರೂಪ.

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

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

LaTeX ನಿಂದ HTML ಗೆ ಪರಿವರ್ತಿಸುವಾಗ, ಹೇಳುವುದಾದರೆ, LaTeXReader ಎಂಬ ವಿಶೇಷ ಮಾಡ್ಯೂಲ್ ಇನ್‌ಪುಟ್ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು AST ಗೆ ಪರಿವರ್ತಿಸುತ್ತದೆ, ನಂತರ HTMLWriter ಎಂಬ ಇನ್ನೊಂದು ಮಾಡ್ಯೂಲ್ AST ಅನ್ನು HTML ಗೆ ಪರಿವರ್ತಿಸುತ್ತದೆ. ಈ ವಾಸ್ತುಶಿಲ್ಪಕ್ಕೆ ಧನ್ಯವಾದಗಳು, ಕ್ವಾಡ್ರಾಟಿಕ್ ಸಂಖ್ಯೆಯ ಪರಿವರ್ತನೆಗಳನ್ನು ಬರೆಯುವ ಅಗತ್ಯವಿಲ್ಲ - ಪ್ರತಿ ಹೊಸ ಸ್ವರೂಪಕ್ಕೆ ರೀಡರ್ ಮತ್ತು ರೈಟರ್ ಅನ್ನು ಬರೆಯಲು ಸಾಕು, ಮತ್ತು ಎಲ್ಲಾ ಸಂಭವನೀಯ ಜೋಡಿ ಪರಿವರ್ತನೆಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಬೆಂಬಲಿಸಲ್ಪಡುತ್ತವೆ.

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

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

ಸಂಕ್ಷಿಪ್ತವಾಗಿ ವಿವರಿಸಿದಂತೆ, ಮೊನಾಡ್‌ಗಳನ್ನು ಅನುಕ್ರಮ ಪಾರ್ಸಿಂಗ್‌ಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಒಂದು ವಿಷಯ ಮೊದಲು ಬಂದಾಗ, ಮತ್ತು ಇನ್ನೊಂದು. ಉದಾಹರಣೆಗೆ, ಈ ಉದಾಹರಣೆಯಲ್ಲಿ:

whileParser :: Parser Stmt
whileParser = whiteSpace >> statement

ಮೊದಲು ನೀವು ಜಾಗವನ್ನು ಎಣಿಕೆ ಮಾಡಬೇಕಾಗುತ್ತದೆ, ಮತ್ತು ನಂತರ ಹೇಳಿಕೆ - ಇದು ಪಾರ್ಸರ್ Stmt ಪ್ರಕಾರವನ್ನು ಸಹ ಹೊಂದಿದೆ.

ಪಾರ್ಸಿಂಗ್ ವಿಫಲವಾದರೆ ರೋಲ್ಬ್ಯಾಕ್ ಮಾಡಲು ಪರ್ಯಾಯ ಫಂಕ್ಟರ್ಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ,

statement :: Parser Stmt
statement = parens statement <|> sequenceOfStmt

ಇದರರ್ಥ ನೀವು ಹೇಳಿಕೆಯನ್ನು ಬ್ರಾಕೆಟ್‌ಗಳಲ್ಲಿ ಓದಲು ಪ್ರಯತ್ನಿಸಬೇಕು ಅಥವಾ ಹಲವಾರು ಹೇಳಿಕೆಗಳನ್ನು ಅನುಕ್ರಮವಾಗಿ ಓದಲು ಪ್ರಯತ್ನಿಸಬೇಕು.

ಅನ್ವಯಿಕ ಫಂಕ್ಟರ್‌ಗಳನ್ನು ಪ್ರಾಥಮಿಕವಾಗಿ ಮೊನಾಡ್‌ಗಳಿಗೆ ಶಾರ್ಟ್‌ಕಟ್‌ಗಳಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, tok ಕಾರ್ಯವು ಕೆಲವು ಟೋಕನ್ ಅನ್ನು ಓದಲಿ (ಇದು LaTeXReader ನಿಂದ ನಿಜವಾದ ಕಾರ್ಯವಾಗಿದೆ). ಈ ಸಂಯೋಜನೆಯನ್ನು ನೋಡೋಣ

const <$> tok <*> tok

ಇದು ಸತತವಾಗಿ ಎರಡು ಟೋಕನ್‌ಗಳನ್ನು ಓದುತ್ತದೆ ಮತ್ತು ಮೊದಲನೆಯದನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.

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

ನಮ್ಮ ಕಾರ್ಯಗಳು LaTeXReader ಗೆ ಸಂಬಂಧಿಸಿವೆ. LaTeX ನಲ್ಲಿ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಬರೆಯಲು ಉಪಯುಕ್ತವಾದ mbox ಮತ್ತು hbox ಆಜ್ಞೆಗಳನ್ನು ಬೆಂಬಲಿಸುವುದು ವಾಸಿಲಿಯ ಕಾರ್ಯವಾಗಿತ್ತು. ಎಲಿಜಬೆತ್ ಎಪಿಗ್ರಾಫ್ ಆಜ್ಞೆಯನ್ನು ಬೆಂಬಲಿಸಲು ಜವಾಬ್ದಾರರಾಗಿದ್ದರು, ಇದು ನಿಮಗೆ LaTeX ದಾಖಲೆಗಳಲ್ಲಿ ಎಪಿಗ್ರಾಫ್ಗಳನ್ನು ರಚಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.

ಹ್ಯಾಟ್ರೇಸ್

UNIX ತರಹದ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ptrace ಸಿಸ್ಟಮ್ ಕರೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತವೆ. ಪ್ರೋಗ್ರಾಂ ಪರಿಸರಗಳನ್ನು ಡೀಬಗ್ ಮಾಡಲು ಮತ್ತು ಅನುಕರಿಸಲು ಇದು ಉಪಯುಕ್ತವಾಗಿದೆ, ಪ್ರೋಗ್ರಾಂ ಮಾಡುವ ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಬಹಳ ಉಪಯುಕ್ತವಾದ ಸ್ಟ್ರೇಸ್ ಉಪಯುಕ್ತತೆಯು ptrace ಅನ್ನು ಆಂತರಿಕವಾಗಿ ಬಳಸುತ್ತದೆ.

ಹ್ಯಾಟ್ರೇಸ್ ಒಂದು ಲೈಬ್ರರಿಯಾಗಿದ್ದು ಅದು ಹ್ಯಾಸ್ಕೆಲ್‌ನಲ್ಲಿ ಪತ್ತೆಹಚ್ಚಲು ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ. ಸತ್ಯವೆಂದರೆ ptrace ಸ್ವತಃ ಬಹಳ ಅತ್ಯಾಧುನಿಕವಾಗಿದೆ ಮತ್ತು ಅದನ್ನು ನೇರವಾಗಿ ಬಳಸಲು ತುಂಬಾ ಕಷ್ಟ, ವಿಶೇಷವಾಗಿ ಕ್ರಿಯಾತ್ಮಕ ಭಾಷೆಗಳಿಂದ.

ಹ್ಯಾಟ್ರೇಸ್ ಪ್ರಾರಂಭವಾದಾಗ ಸ್ಟ್ರೇಸ್‌ನಂತೆ ಚಲಿಸುತ್ತದೆ ಮತ್ತು ಇದೇ ರೀತಿಯ ವಾದಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. ಇದು ಸ್ಟ್ರೇಸ್‌ನಿಂದ ಭಿನ್ನವಾಗಿದೆ, ಇದು ಕೇವಲ ptrace ಗಿಂತ ಸರಳವಾದ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಒದಗಿಸುವ ಗ್ರಂಥಾಲಯವಾಗಿದೆ.

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

ನಾವು ಲೈಬ್ರರಿಗೆ ಸಿಸ್ಟಮ್ ಕರೆ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ಸೇರಿಸಿದ್ದೇವೆ - ಎಲಿಜವೆಟಾ brk ಅನ್ನು ಸೇರಿಸಿದೆ ಮತ್ತು ವಾಸಿಲಿ mmap ಅನ್ನು ಸೇರಿಸಿದೆ. ನಮ್ಮ ಕೆಲಸದ ಫಲಿತಾಂಶಗಳ ಆಧಾರದ ಮೇಲೆ, ಲೈಬ್ರರಿಯನ್ನು ಬಳಸುವಾಗ ಈ ಸಿಸ್ಟಮ್ ಕರೆಗಳ ವಾದಗಳನ್ನು ಹೆಚ್ಚು ಸರಳವಾಗಿ ಮತ್ತು ನಿಖರವಾಗಿ ಬಳಸಲು ಸಾಧ್ಯವಿದೆ.

ಮೂಲ: www.habr.com