C ಕೋಡ್‌ನಲ್ಲಿ ದೋಷಗಳನ್ನು ಗುರುತಿಸುವ ಸಾಧನವಾದ ControlFlag 1.0 ಬಿಡುಗಡೆ

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

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

C ಕೋಡ್‌ನಲ್ಲಿ ದೋಷಗಳನ್ನು ಗುರುತಿಸುವ ಸಾಧನವಾದ ControlFlag 1.0 ಬಿಡುಗಡೆ

ಕಂಟ್ರೋಲ್‌ಫ್ಲಾಗ್‌ನ ಸಾಮರ್ಥ್ಯಗಳ ಉದಾಹರಣೆಯಾಗಿ, ಡೆವಲಪರ್‌ಗಳು OpenSSL ಮತ್ತು ಕರ್ಲ್ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳ ಮೂಲ ಕೋಡ್‌ಗಳನ್ನು ವಿಶ್ಲೇಷಿಸಿದ್ದಾರೆ:

  • ಅಸಂಗತ ರಚನೆಗಳು “(s1 == NULL) ∧ (s2 == NULL)” ಮತ್ತು “(s1 == NULL) | (s2 == NULL)" , ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸುವ ಮಾದರಿಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ "(s1 == NULL) || (s2 == NULL)". ಕೋಡ್ "(-2 == rv)" (ಮೈನಸ್ ಒಂದು ಮುದ್ರಣದೋಷವಾಗಿದೆ) ಮತ್ತು "BIO_puts(bp, ":") <= 0)" (ದ ಯಶಸ್ವಿ ಪೂರ್ಣಗೊಳಿಸುವಿಕೆಯನ್ನು ಪರಿಶೀಲಿಸುವ ಸಂದರ್ಭದಲ್ಲಿ ಸಹ ವೈಪರೀತ್ಯಗಳನ್ನು ಗುರುತಿಸಿದೆ. ಕಾರ್ಯವು "== 0" ಆಗಿರಬೇಕು).
  • CURL ನಲ್ಲಿ, ಸ್ಟ್ರಕ್ಚರ್ ಎಲಿಮೆಂಟ್ "s->keepon" ಅನ್ನು ಬಳಸುವಾಗ ಸ್ಥಾಯೀ ವಿಶ್ಲೇಷಕಗಳಿಂದ ಪತ್ತೆಹಚ್ಚದ ದೋಷವನ್ನು ಕಂಡುಹಿಡಿಯಲಾಯಿತು, ಇದು ಸಂಖ್ಯಾ ಪ್ರಕಾರವನ್ನು ಹೊಂದಿತ್ತು, ಆದರೆ ಬೂಲಿಯನ್ ಮೌಲ್ಯದೊಂದಿಗೆ ಹೋಲಿಸಲಾಗಿದೆ TRUE.

ControlFlag 1.0 ಆವೃತ್ತಿಯ ವೈಶಿಷ್ಟ್ಯಗಳ ಪೈಕಿ, C ಭಾಷೆಗೆ ಪ್ರಮಾಣಿತ ಟೆಂಪ್ಲೆಟ್ಗಳಿಗೆ ಸಂಪೂರ್ಣ ಬೆಂಬಲವಿದೆ ಮತ್ತು ಷರತ್ತುಬದ್ಧ "if" ಅಭಿವ್ಯಕ್ತಿಗಳಲ್ಲಿ ವೈಪರೀತ್ಯಗಳನ್ನು ಕಂಡುಹಿಡಿಯುವ ಸಾಮರ್ಥ್ಯವಿದೆ. ಉದಾಹರಣೆಗೆ, ಕೋಡ್ ತುಣುಕನ್ನು ವಿಶ್ಲೇಷಿಸುವಾಗ “if (x = 7) y = x;” ಸಂಖ್ಯಾ ಮೌಲ್ಯಗಳನ್ನು ಹೋಲಿಸಲು "if" ಹೇಳಿಕೆಯು ಸಾಮಾನ್ಯವಾಗಿ "ವೇರಿಯಬಲ್ == ಸಂಖ್ಯೆ" ನಿರ್ಮಾಣವನ್ನು ಬಳಸುತ್ತದೆ ಎಂದು ಸಿಸ್ಟಮ್ ನಿರ್ಧರಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ "if" ಅಭಿವ್ಯಕ್ತಿಯಲ್ಲಿನ "ವೇರಿಯಬಲ್ = ಸಂಖ್ಯೆ" ಮುದ್ರಣದೋಷದಿಂದ ಉಂಟಾಗುತ್ತದೆ. GitHub ನಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ C ಭಾಷೆಯ ರೆಪೊಸಿಟರಿಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಮತ್ತು ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಲು ಅವುಗಳನ್ನು ಬಳಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಕಿಟ್ ಒಳಗೊಂಡಿದೆ. ರೆಡಿಮೇಡ್ ಮಾದರಿಗಳು ಸಹ ಲಭ್ಯವಿವೆ, ಕೋಡ್ ಅನ್ನು ತಕ್ಷಣವೇ ಪರಿಶೀಲಿಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ಮೂಲ: opennet.ru

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