DMS Software Reengineering Toolkit
ಡಿಎಂಎಸ್ ಸಾಫ್ಟ್ವೇರ್ ರೀಇಂಜಿನೀರಿಂಗ್ ಟೂಲ್ಕಿಟ್ ಎಂಬುದು ದೊಡ್ಡ ಪ್ರಮಾಣದ ಸಾಫ್ಟ್ವೇರ್ ವ್ಯವಸ್ಥೆಗಳಿಗಾಗಿ ಮೂಲ ಭಾಷೆಗಳ ಅನಿಯಂತ್ರಿತ ಮಿಶ್ರಣಗಳಿಗಾಗಿ ಕಸ್ಟಮ್ ಸೋರ್ಸ್ ಪ್ರೋಗ್ರಾಂ ವಿಶ್ಲೇಷಣೆ, ಮಾರ್ಪಾಡು, ಅನುವಾದ ಅಥವಾ ಸಾಫ್ಟ್ವೇರ್ ವ್ಯವಸ್ಥೆಗಳ ಉತ್ಪಾದನೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಲು ಲಭ್ಯವಿರುವ ಪ್ರೊಗ್ರಾಮ್ ರೂಪಾಂತರ ಸಾಧನಗಳ ಸ್ವಾಮ್ಯದ ಗುಂಪಾಗಿದೆ. ಡಿಎಂಎಸ್ ಮೂಲತಃ ಡಿಸೈನ್ ಮೆಯಿಂಟೆನೆನ್ಸ್ ಸಿಸ್ಟಮ್ಸ್ ಎಂಬ ಸಾಫ್ಟ್ವೇರ್ ವಿನ್ಯಾಸಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಸಿದ್ಧಾಂತದಿಂದ ಪ್ರೇರೇಪಿಸಲ್ಪಟ್ಟಿತು. ಡಿಎಂಎಸ್ ಮತ್ತು "ವಿನ್ಯಾಸ ನಿರ್ವಹಣಾ ವ್ಯವಸ್ಥೆ" ಗಳು ಶಬ್ದಾರ್ಥದ ವಿನ್ಯಾಸಗಳ ನೋಂದಾಯಿತ ಟ್ರೇಡ್ಮಾರ್ಕ್ಗಳಾಗಿವೆ. ಡೊಮೇನ್-ನಿರ್ದಿಷ್ಟ ಭಾಷೆಗಳನ್ನು (ಫ್ಯಾಕ್ಟರಿ ನಿಯಂತ್ರಣಕ್ಕಾಗಿ ಕೋಡ್ ಉತ್ಪಾದನೆ), ಪರೀಕ್ಷಾ ವ್ಯಾಪ್ತಿ ಮತ್ತು ಪ್ರೊಫೈಲಿಂಗ್ ಉಪಕರಣಗಳು, ಕ್ಲೋನ್ ಪತ್ತೆ, ಭಾಷಾ ವಲಸೆಯ ಸಾಧನಗಳು, ಸಿ + + ಘಟಕಗಳ ರೀಇಂಜಿನೀರಿಂಗ್, ಮತ್ತು ಸಿ + + ಅನ್ನು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ರೀಫ್ಯಾಕ್ಟರಿಂಗ್ ಮಾಡುವಂತಹ ಕಷ್ಟಕರ ವಿಷಯಗಳ ಸಂಶೋಧನೆಗಾಗಿ ಬಳಕೆ ಡಿಎಂಎಸ್ ಅನ್ನು ಬಳಸಲಾಗಿದೆ. ವೈಶಿಷ್ಟ್ಯಗಳು ಟೂಲ್ಕಿಟ್ ಭಾಷೆಯ ವ್ಯಾಕರಣಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಸಾಧನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ಅಮೂರ್ತ ವಾಕ್ಯರಚನೆಯ ಮರಗಳನ್ನು (ಎ. ಎಸ್. ಟಿ. ಗಳು) ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ಮಿಸುವ ಪಾರ್ಸರ್ಗಳನ್ನು ಮತ್ತು ಮೂಲ ಅಥವಾ ಮಾರ್ಪಡಿಸಿದ ಎ. ಎಸ್. ಟಿ. ಗಳನ್ನು ಮತ್ತೆ ಸಂಕಲಿಸಬಹುದಾದ ಮೂಲ ಪಠ್ಯವಾಗಿ ಪರಿವರ್ತಿಸಲು ಸುಂದರ ಮುದ್ರಕಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ. ಪುನರುತ್ಪಾದಿತ ಮೂಲ ಪಠ್ಯವು ಯಾವುದೇ ಅನ್ವಯಿಕ ರೂಪಾಂತರಗಳನ್ನು ಮೂಲ ಪಠ್ಯ ಮಾಡ್ಯುಲೋ ಎಂದು ಪ್ರೋಗ್ರಾಮರ್ಗೆ ಗುರುತಿಸಬಹುದೆಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಪಾರ್ಸ್ ಮರಗಳು ಸೆರೆಹಿಡಿಯುತ್ತವೆ ಮತ್ತು ಸುಂದರ ಮುದ್ರಕಗಳು ಮೂಲ ಮೂಲ ಪ್ರೋಗ್ರಾಂನ ಬಗ್ಗೆ ಮೂಲ ಸ್ಥಾನ, ಕಾಮೆಂಟ್ಗಳು, ಮೂಲಾಂಶ ಮತ್ತು ಸಂಖ್ಯೆಗಳ ಸ್ವರೂಪ ಇತ್ಯಾದಿಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಸಂಪೂರ್ಣ ವಿವರಗಳನ್ನು ಪುನರುತ್ಪಾದಿಸುತ್ತವೆ. ಡಿಎಂಎಸ್ ಶಬ್ದಾರ್ಥದ ಮುನ್ಸೂಚನೆಗಳೊಂದಿಗೆ ಜಿಎಲ್ಆರ್ ಪಾರ್ಸಿಂಗ್ ತಂತ್ರಜ್ಞಾನವನ್ನು ಬಳಸುತ್ತದೆ. ಇದು ಎಲ್ಲಾ ಸಂದರ್ಭ-ಮುಕ್ತ ವ್ಯಾಕರಣಗಳನ್ನು ಮತ್ತು ಫೋರ್ಟ್ರಾನ್ನಂತಹ ಹೆಚ್ಚಿನ ಸಂದರ್ಭ-ಮುಕ್ತ ಭಾಷೆಯ ವಾಕ್ಯರಚನೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಇದು ಪಾರ್ಸ್ ಮಾಡುವಾಗ ಸರಿಯಾಗಿ ನೆಸ್ಟೆಡ್ ಲೂಪ್ಗಳಿಗಾಗಿ ಎ. ಎಸ್. ಟಿ. ಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಲೇಬಲ್ ಮೂಲಕ ಹಂಚಿಕೊಂಡ ಕಂಟಿನ್ಯೂ ಹೇಳಿಕೆಗಳೊಂದಿಗೆ ಅನೇಕ ಡಿ. ಓ ಲೂಪ್ಗಳನ್ನು ಹೊಂದಿಸುವ ಅಗತ್ಯವಿರುತ್ತದೆ. ಡಿಎಂಎಸ್ ವಿವಿಧ ಪೂರ್ವನಿರ್ಧರಿತ ಭಾಷೆಯ ಮುಂಭಾಗಗಳನ್ನು ಹೊಂದಿದ್ದು, ಸಿ + + 0x, ಸಿ #, ಜಾವಾ, ಪೈಥಾನ್, ಪಿಎಚ್ಪಿ, ಇಜಿಎಲ್, ಫೋರ್ಟ್ರಾನ್, ಕೋಬೋಲ್, ವಿಷುಯಲ್ ಬೇಸಿಕ್, ವೆರಿಲಾಗ್, ವಿಎಚ್ಡಿಎಲ್ ಮತ್ತು ಕೆಲವು 20 ಅಥವಾ ಹೆಚ್ಚಿನ ಇತರ ಭಾಷೆಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಸಿ ಮತ್ತು ಸಿ + + ನ ಹೆಚ್ಚಿನ ನೈಜ ಉಪಭಾಷೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಡಿಎಂಎಸ್ ಎಎಸ್ಸಿಐಐ, ಐಎಸ್ಒ-8859, ಯುಟಿಎಫ್-8, ಯುಟಿಎಫ್-16, ಇಬಿಸಿಡಿಐಸಿ, ಶಿಫ್ಟ್-ಜೆಐಎಸ್ ಮತ್ತು ವಿವಿಧ ಮೈಕ್ರೋಸಾಫ್ಟ್ ಅಕ್ಷರ ಎನ್ಕೋಡಿಂಗ್ಗಳನ್ನು ನಿಭಾಯಿಸಬಲ್ಲದು. ಡಿಎಂಎಸ್ ಮೆಟ್ರಿಕ್ಸ್ನಂತಹ ಎ. ಎಸ್. ಟಿಗಳ ಮೇಲೆ ಕಸ್ಟಮ್ ವಿಶ್ಲೇಷಣೆಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಲು ಗುಣಲಕ್ಷಣ ವ್ಯಾಕರಣ ಮೌಲ್ಯಮಾಪಕಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ಚಿಹ್ನೆ ಟೇಬಲ್ ನಿರ್ಮಾಣಕ್ಕೆ ಬೆಂಬಲವನ್ನು ಒಳಗೊಂಡಿದೆ. ಅಂತರ್ನಿರ್ಮಿತ ನಿಯಂತ್ರಣ-ಮತ್ತು ದತ್ತಾಂಶ-ಹರಿವಿನ ವಿಶ್ಲೇಷಣೆ ಯಂತ್ರಗಳು, ಸ್ಥಳೀಯ ಮತ್ತು ಜಾಗತಿಕ ಪಾಯಿಂಟರ್ ವಿಶ್ಲೇಷಣೆ, ಸಂಪೂರ್ಣ-ಪ್ರೋಗ್ರಾಂ ಕರೆ ಗ್ರಾಫ್ ಹೊರತೆಗೆಯುವಿಕೆ ಮತ್ತು ಅಮೂರ್ತ ವ್ಯಾಖ್ಯಾನದ ಮೂಲಕ ಸಾಂಕೇತಿಕ ವ್ಯಾಪ್ತಿಯ ವಿಶ್ಲೇಷಣೆಯಿಂದ ಇತರ ಪ್ರೋಗ್ರಾಂ ಸಂಗತಿಗಳನ್ನು ಹೊರತೆಗೆಯಬಹುದು. ಡಿಎಂಎಸ್ ಅನ್ನು ಸಮಾನಾಂತರ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾದ ಪಾರ್ಲಾನ್ಸ್ನಲ್ಲಿ ಅಳವಡಿಸಲಾಗಿದೆ, ಇದು ದೊಡ್ಡ ವಿಶ್ಲೇಷಣೆಗಳು ಮತ್ತು ಪರಿವರ್ತನೆಗಳನ್ನು ವೇಗಗೊಳಿಸಲು ಸಮ್ಮಿತೀಯ ಬಹು ಸಂಸ್ಕರಣೆಯನ್ನು ಬಳಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಡಿ. ಎಂ. ಎಸ್. ನ ರೂಲ್ ಸ್ಪೆಸಿಫಿಕೇಷನ್ ಲ್ಯಾಂಗ್ವೇಜ್ (ಆರ್. ಎಸ್. ಎಲ್.) ಅನ್ನು ಬಳಸಿಕೊಂಡು, ಯಾವುದೇ ಹೊರತೆಗೆಯಲಾದ ಪ್ರೋಗ್ರಾಂ ಸಂಗತಿಗಳಿಂದ ಷರತ್ತುಬದ್ಧವಾದ ಮೇಲ್ಮೈ-ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು, ಪ್ಯಾರ್ಲೇನ್ಸ್ನಲ್ಲಿ ಕೋಡೆಡ್ ಮಾಡಲಾದ ಕಾರ್ಯವಿಧಾನದ ವಿಧಾನಗಳು ಮತ್ತು ಮೂಲದಿಂದ ಮೂಲಕ್ಕೆ ಮರದ ರೂಪಾಂತರಗಳೆರಡರಿಂದಲೂ ಎ. ಎಸ್. ಟಿ. ಗಳಿಗೆ ಬದಲಾವಣೆಗಳನ್ನು ಸಾಧಿಸಬಹುದು. ಆರ್. ಎಸ್. ಎಲ್. ಅನ್ನು ಬೆಂಬಲಿಸುವ ಪುನಃ ಬರೆಯುವ ನಿಯಮ ಯಂತ್ರವು ಸಹವರ್ತಿ ಮತ್ತು ಸಂವಹನ ನಿಯಮಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಸಂಕೀರ್ಣ ಸ್ಥಿತಿಯನ್ನು ಸಿ ಯಿಂದ ಬದಲಾಯಿಸಲು ಪುನಃ ಬರೆಯುವ ನಿಯಮ? : ಆಪರೇಟರ್ ಅನ್ನು ಹೀಗೆ ಬರೆಯಬೇಕುಃ ನಿಯಮ ಸರಳೀಕೃತ _ ಷರತ್ತುಬದ್ಧ _ ನಿಯೋಜನೆ (v: ಲೆಫ್ಟ್ _ ಹ್ಯಾಂಡ್ _ ಸೈಡ್, e1: ಅಭಿವ್ಯಕ್ತಿ, e2: ಅಭಿವ್ಯಕ್ತಿ, e3: ಅಭಿವ್ಯಕ್ತಿ): ಹೇಳಿಕೆ-> ಹೇಳಿಕೆ = "ವೇಳೆ (\e1) \v = \e2; ಇಲ್ಲದಿದ್ದರೆ \v = e3";-> "\v = \e1? \e2: \e3" ಯಾವುದೇ _ ಸೈಡ್ _ ಎಫೆಕ್ಟ್ಗಳು (v) ಇಲ್ಲದಿದ್ದರೆ; ಮರುಬರಹ ನಿಯಮಗಳು ಹೆಸರುಗಳನ್ನು ಹೊಂದಿವೆ, ಉದಾಹರಣೆಗೆ. _ ಷರತ್ತುಬದ್ಧ _ ನಿಯೋಜನೆಯನ್ನು ಸರಳೀಕರಿಸಿ. ಪ್ರತಿಯೊಂದು ನಿಯಮವು "ಇದನ್ನು ಹೊಂದಿಸಿ" ಮತ್ತು "ಆ ಮಾದರಿಯ ಜೋಡಿಯೊಂದಿಗೆ ಬದಲಾಯಿಸಿ" ಅನ್ನು ಹೊಂದಿದೆ, ನಮ್ಮ ಉದಾಹರಣೆಯಲ್ಲಿ, ಓದುವಿಕೆಗಾಗಿ ಪ್ರತ್ಯೇಕ ಸಾಲುಗಳಲ್ಲಿ-> ನಿಂದ ಬೇರ್ಪಡಿಸಲಾಗಿದೆ. ಮಾದರಿಗಳು ಭಾಷಾ ವಾಕ್ಯರಚನೆಯ ವರ್ಗಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗಬೇಕು; ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಎರಡೂ ಮಾದರಿಗಳು ವಾಕ್ಯರಚನೆಯ ವರ್ಗದ ಹೇಳಿಕೆಯಾಗಿರಬೇಕು ಮತ್ತು ಮಾದರಿಗಳೊಂದಿಗೆ ಸಹಾನುಭೂತಿಯಿಂದ-> ನಿಂದ ಬೇರ್ಪಡಿಸಬೇಕು. ಉದ್ದೇಶಿತ ಭಾಷೆಯ (ಉದಾಹರಣೆಗೆ, ಸಿ) ಮೇಲ್ಮೈ ವಾಕ್ಯರಚನೆಯನ್ನು ಮೆಟಾ-ಕೋಟ್ಸ್ನೊಳಗೆ ಕೋಡ್ ಮಾಡಲಾಗಿದೆ, ಇದು ಉದ್ದೇಶಿತ ಭಾಷೆಯಿಂದ ಪುನಃ ಬರೆಯುವ-ನಿಯಮ ವಾಕ್ಯರಚನೆಯನ್ನು ಪ್ರತ್ಯೇಕಿಸುತ್ತದೆ. ಮೆಟಾ-ಕೋಟ್ಸ್ನೊಳಗಿನ ಬ್ಯಾಕ್ಸ್ಲ್ಯಾಶ್ಗಳು ಡೊಮೇನ್ ಎಸ್ಕೇಪ್ಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತವೆ, ಇದು ಮಾದರಿ ಮೆಟಾ ವೇರಿಯೇಬಲ್ಗಳನ್ನು (ಉದಾಹರಣೆಗೆ, \v, \e1, \e2) ಸೂಚಿಸುತ್ತದೆ, ಇದು ಸಹಿ ಸಾಲಿನಲ್ಲಿನ ಮೆಟಾವರಬಲ್ ಘೋಷಣೆಗೆ ಅನುಗುಣವಾದ ಯಾವುದೇ ಭಾಷೆಯ ರಚನೆಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, e1 ವಾಕ್ಯರಚನೆಯ ವರ್ಗವನ್ನು ಹೊಂದಿರಬೇಕುಃ (ಯಾವುದೇ) ಅಭಿವ್ಯಕ್ತಿ. ಮ್ಯಾಚ್ ಮಾದರಿಯಲ್ಲಿ ಮೆಟಾವರಬಲ್ ಅನ್ನು ಅನೇಕ ಬಾರಿ ಉಲ್ಲೇಖಿಸಿದರೆ, ಅದು ಒಂದೇ ರೀತಿಯ ಸಬ್ಟ್ರೀಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗಬೇಕು; ಈ ಉದಾಹರಣೆಯಲ್ಲಿ ಮ್ಯಾಚ್ ಮಾದರಿಯಲ್ಲಿನ ಎರಡೂ ಕಾರ್ಯಯೋಜನೆಗಳಲ್ಲಿ ಒಂದೇ ರೀತಿಯ ಆಕಾರದ ವಿ ಸಂಭವಿಸಬೇಕು. ಬದಲಿ ಮಾದರಿಯಲ್ಲಿನ ಮೆಟಾವರಬಲ್ಗಳನ್ನು ಎಡಭಾಗದಿಂದ ಅನುಗುಣವಾದ ಹೊಂದಾಣಿಕೆಗಳಿಂದ ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ. ಷರತ್ತುಬದ್ಧ ಷರತ್ತು ನಿಯಮವನ್ನು ಅನ್ವಯಿಸಲು ಪೂರೈಸಬೇಕಾದ ಹೆಚ್ಚುವರಿ ಷರತ್ತನ್ನು ಒದಗಿಸಿದರೆ, ಉದಾಹರಣೆಗೆ, ಹೊಂದಿಕೆಯಾಗುವ ಮೆಟಾವರಬಲ್ ವಿ, ಅನಿಯಂತ್ರಿತ ಎಡಭಾಗವಾಗಿರುವುದರಿಂದ, ಅಡ್ಡಪರಿಣಾಮವನ್ನು ಹೊಂದಿರಬಾರದು (ಉದಾಹರಣೆಗೆ, [i + +] ರೂಪದಲ್ಲಿರಬಾರದು; ನೋ _ ಸೈಡ್ _ ಎಫೆಕ್ಟ್ಸ್ ಪ್ರಿಡಿಕೇಟ್ ಅನ್ನು ಇತರ ಡಿಎಂಎಸ್ ಕಾರ್ಯವಿಧಾನಗಳೊಂದಿಗೆ ನಿರ್ಮಿಸಲಾದ ವಿಶ್ಲೇಷಕರಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ). ಅಪೇಕ್ಷಿತ ಪರಿಣಾಮವನ್ನು ಸಾಧಿಸಲು ಸಹಕರಿಸುವ ಹಲವಾರು ನಿಯಮಗಳನ್ನು ಒದಗಿಸುವ ಮೂಲಕ ಕೋಡ್ನಲ್ಲಿ ಸಂಕೀರ್ಣ ರೂಪಾಂತರವನ್ನು ಸಾಧಿಸಲಾಗುತ್ತದೆ. ಪಾರ್ಲಾನ್ಸ್ನಲ್ಲಿ ಕೋಡೆಡ್ ಮಾಡಲಾದ ಮೆಟಾಪ್ರೋಗ್ರಾಮ್ಗಳ ಮೂಲಕ ನಿಯಮಾವಳಿಗಳು ಕಾರ್ಯಕ್ರಮದ ಭಾಗಗಳ ಮೇಲೆ ಕೇಂದ್ರೀಕೃತವಾಗಿವೆ. ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಮತ್ತು ಅನ್ವಯಿಸಲಾದ ಭಾಷೆಯ ವ್ಯಾಖ್ಯಾನ ಮತ್ತು ಮೂಲದಿಂದ ಮೂಲಕ್ಕೆ ಪರಿವರ್ತನೆಯ ನಿಯಮಗಳ ಸಂಪೂರ್ಣ ಉದಾಹರಣೆಯನ್ನು ಪ್ರೌಢಶಾಲಾ ಬೀಜಗಣಿತ ಮತ್ತು ಸ್ವಲ್ಪ ಕಲನಶಾಸ್ತ್ರವನ್ನು ಡೊಮೇನ್-ನಿರ್ದಿಷ್ಟ ಭಾಷೆಯಾಗಿ ಬಳಸಿ ತೋರಿಸಲಾಗಿದೆ. ಉಲ್ಲೇಖಗಳು ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಡಿಎಂಎಸ್ ಸಾಫ್ಟ್ವೇರ್ ರೀಇಂಜಿನೀರಿಂಗ್ ಟೂಲ್ಕಿಟ್ ಮುಖ್ಯ ವೆಬ್ ಪುಟ ಸ್ಥಿರ ಪ್ರೋಗ್ರಾಂ ವಿಶ್ಲೇಷಣೆ ಉಪಕರಣಗಳು ಪ್ರೋಗ್ರಾಂ ಪರಿವರ್ತನೆ ಉಪಕರಣಗಳು ಕಂಪ್ಯೂಟರ್-ನೆರವಿನ ಸಾಫ್ಟ್ವೇರ್ ಎಂಜಿನಿಯರಿಂಗ್ ಉಪಕರಣಗಳು ಭಾಷಾ ಕಾರ್ಯಪೀಠ