Structural synthesis of programs
ಸ್ಟ್ರಕ್ಚರಲ್ ಸಿಂಥಸಿಸ್ ಆಫ್ ಪ್ರೋಗ್ರಾಮ್ಸ್ (ಎಸ್ಎಸ್ಪಿ) ಎಂಬುದು ಪ್ರೊಪೊಸಿಷನಲ್ ಕ್ಯಾಲ್ಕುಲಸ್ ಅನ್ನು ಆಧರಿಸಿದ (ಸ್ವಯಂಚಾಲಿತ) ಪ್ರೋಗ್ರಾಂ ಸಂಶ್ಲೇಷಣೆಯ ವಿಶೇಷ ರೂಪವಾಗಿದೆ. ಹೆಚ್ಚು ನಿಖರವಾಗಿ, ಇದು ಪ್ರೋಗ್ರಾಂನ ರಚನೆಯನ್ನು ವಿವರವಾಗಿ ವಿವರಿಸಲು ಅಂತರ್ಬೋಧೆಯ ತರ್ಕವನ್ನು ಬಳಸುತ್ತದೆ, ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸಬ್ರುಟೈನ್ಗಳು ಅಥವಾ ಕಂಪ್ಯೂಟರ್ ಆಜ್ಞೆಗಳಂತಹ ತುಣುಕುಗಳಿಂದ ಸಂಯೋಜಿಸಬಹುದು. ಈ ತುಣುಕುಗಳನ್ನು ಸರಿಯಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗಿದೆ ಎಂದು ಭಾವಿಸಲಾಗಿದೆ, ಆದ್ದರಿಂದ ಈ ತುಣುಕುಗಳ ನಿಖರತೆಯ ಪರಿಶೀಲನೆಯ ಅಗತ್ಯವಿಲ್ಲ. ಸೇವಾ-ಆಧಾರಿತ ವಿನ್ಯಾಸಗಳಿಗಾಗಿ ಸೇವೆಗಳ ಸ್ವಯಂಚಾಲಿತ ಸಂಯೋಜನೆಗೆ ಮತ್ತು ದೊಡ್ಡ ಸಿಮ್ಯುಲೇಶನ್ ಕಾರ್ಯಕ್ರಮಗಳ ಸಂಶ್ಲೇಷಣೆಗೆ ಎಸ್. ಎಸ್. ಪಿ ಸೂಕ್ತವಾಗಿದೆ. ಸ್ವಯಂಚಾಲಿತ ಪ್ರೋಗ್ರಾಮ್ ಸಂಶ್ಲೇಷಣೆಯು ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆ ಕ್ಷೇತ್ರದಲ್ಲಿ ಪ್ರಾರಂಭವಾಯಿತು, ಸ್ವಯಂಚಾಲಿತ ಸಮಸ್ಯೆ ಪರಿಹಾರಕ್ಕಾಗಿ ಉದ್ದೇಶಿಸಲಾದ ಸಾಫ್ಟ್ವೇರ್. ಮೊದಲ ಪ್ರೋಗ್ರಾಂ ಸಿಂಥಸೈಸರ್ ಅನ್ನು 1969 ರಲ್ಲಿ ಕಾರ್ಡೆಲ್ ಗ್ರೀನ್ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದರು. ಸುಮಾರು ಅದೇ ಸಮಯದಲ್ಲಿ, ಆರ್. ಕಾನ್ಸ್ಟೇಬಲ್, ಝಡ್ ಸೇರಿದಂತೆ ಗಣಿತಶಾಸ್ತ್ರಜ್ಞರು. ಮನ್ನಾ ಮತ್ತು ಆರ್. ವಾಲ್ಡಿಂಗರ್ ಸ್ವಯಂಚಾಲಿತ ಪ್ರೋಗ್ರಾಂ ಸಂಶ್ಲೇಷಣೆಗಾಗಿ ಔಪಚಾರಿಕ ತರ್ಕದ ಸಂಭವನೀಯ ಬಳಕೆಯನ್ನು ವಿವರಿಸಿದರು. ಪ್ರಾಯೋಗಿಕವಾಗಿ ಅನ್ವಯವಾಗುವ ಪ್ರೋಗ್ರಾಂ ಸಿಂಥಸೈಜರ್ಗಳು ಗಣನೀಯವಾಗಿ ನಂತರ ಕಾಣಿಸಿಕೊಂಡವು. 1979ರಲ್ಲಿ ಆಂಡ್ರೆ ಎರ್ಶೋವ್ ಮತ್ತು ಡೊನಾಲ್ಡ್ ಕ್ನುಥ್ ಅವರು ಆಯೋಜಿಸಿದ ಆಧುನಿಕ ಗಣಿತ ಮತ್ತು ಗಣಕಯಂತ್ರ ವಿಜ್ಞಾನದಲ್ಲಿನ ಕ್ರಮಾವಳಿಗಳ ಕುರಿತ ಸಮಾವೇಶದಲ್ಲಿ ಕಾರ್ಯಕ್ರಮಗಳ ರಚನಾತ್ಮಕ ಸಂಶ್ಲೇಷಣೆಯ ಕಲ್ಪನೆಯನ್ನು ಪರಿಚಯಿಸಲಾಯಿತು. ಈ ಕಲ್ಪನೆಯು ಸಮಸ್ಯೆಯ ಪರಿಹಾರದ ಕುರಿತಾದ ಜಿ. ಪೊಲ್ಯಾ ಅವರ ಪ್ರಸಿದ್ಧ ಪುಸ್ತಕದಿಂದ ಹುಟ್ಟಿಕೊಂಡಿತು. ಎಸ್. ಎಸ್. ಪಿ. ಯಲ್ಲಿ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುವ ಯೋಜನೆಯನ್ನು ರೂಪಿಸುವ ವಿಧಾನವನ್ನು ಔಪಚಾರಿಕ ವ್ಯವಸ್ಥೆಯಾಗಿ ಪ್ರಸ್ತುತಪಡಿಸಲಾಯಿತು. ವ್ಯವಸ್ಥೆಯ ತೀರ್ಮಾನದ ನಿಯಮಗಳನ್ನು 1982ರಲ್ಲಿ ಜಿ. ಮಿಂಟ್ಸ್ ಮತ್ತು ಇ. ಟಿಯುಗು ಅವರು ತರ್ಕದಲ್ಲಿ ಪುನರ್ರಚಿಸಿದರು ಮತ್ತು ಸಮರ್ಥಿಸಿಕೊಂಡರು. ಎಸ್. ಎಸ್. ಪಿ. ಯನ್ನು ಬಳಸುವ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಟೂಲ್ ಪ್ರೈಜ್ ಅನ್ನು 1980ರ ದಶಕದಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಯಿತು. ಎಸ್. ಎಸ್. ಪಿ. ಯನ್ನು ಬೆಂಬಲಿಸುವ ಇತ್ತೀಚಿನ ಸಮಗ್ರ ಅಭಿವೃದ್ಧಿ ಪರಿಸರವೆಂದರೆ ಕೋಕೋವಿಲಾ-ಡೊಮೇನ್ ನಿರ್ದಿಷ್ಟ ಭಾಷೆಗಳನ್ನು ಅನುಷ್ಠಾನಗೊಳಿಸಲು ಮತ್ತು ದೊಡ್ಡ ಜಾವಾ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಮಾದರಿ ಆಧಾರಿತ ಸಾಫ್ಟ್ವೇರ್ ಅಭಿವೃದ್ಧಿ ವೇದಿಕೆ. ಎಸ್. ಎಸ್. ಪಿ. ಕಾರ್ಯಕ್ರಮಗಳ ರಚನಾತ್ಮಕ ಸಂಶ್ಲೇಷಣೆಯ ತರ್ಕವು ಈಗಾಗಲೇ ಅಳವಡಿಸಲಾಗಿರುವ ಘಟಕಗಳಿಂದ ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ರಚಿಸುವ ಒಂದು ವಿಧಾನವಾಗಿದೆ (ಉದಾ. ಕಂಪ್ಯೂಟರ್ ಕಮಾಂಡ್ಗಳು ಅಥವಾ ಸಾಫ್ಟ್ವೇರ್ ಆಬ್ಜೆಕ್ಟ್ ವಿಧಾನಗಳಿಂದ) ಇದನ್ನು ಕಾರ್ಯಗಳೆಂದು ಪರಿಗಣಿಸಬಹುದು. ಕಾರ್ಯಗಳ ಅನ್ವಯಿಕತೆಯ ಬಗ್ಗೆ ಆಧಾರಸೂತ್ರಗಳನ್ನು ಬರೆಯುವ ಮೂಲಕ ಅಂತರ್ಬೋಧೆಯ ಪ್ರತಿಪಾದನೆಯ ತರ್ಕದಲ್ಲಿ ಸಂಶ್ಲೇಷಣೆಯ ವಿವರಣೆಯನ್ನು ನೀಡಲಾಗುತ್ತದೆ. ಒಂದು f ಕಾರ್ಯದ ಅನ್ವಯಿಕತೆಯ ಬಗೆಗಿನ ಸೂತ್ರವು ಒಂದು ತಾರ್ಕಿಕ ಸೂಚ್ಯಂಕವಾಗಿದೆ X1 ಷ್ಣ X2 ಷ್ಣ. ಷ್ಣ Xm → Y1 ಷ್ಣ Y2. Yn, ಇಲ್ಲಿ X1, X2,. Xm ಪೂರ್ವ ಷರತ್ತುಗಳು ಮತ್ತು Y1, Y2,. Yn ಇವು f ಕಾರ್ಯದ ಅನ್ವಯದ ಉತ್ತರ ಷರತ್ತುಗಳಾಗಿವೆ. ಅಂತರ್ಬೋಧೆಯ ತರ್ಕದಲ್ಲಿ, f ಕಾರ್ಯವನ್ನು ಈ ಸೂತ್ರದ ಸಾಕ್ಷಾತ್ಕಾರ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಪೂರ್ವ ಷರತ್ತು ಎಂದರೆ ಇನ್ಪುಟ್ ಡೇಟಾ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಎಂದು ಹೇಳುವ ಪ್ರತಿಪಾದನೆಯಾಗಿರಬಹುದು, ಉದಾಹರಣೆಗೆ. ಕ್ಸಿ ಎಂದರೆ "ವೇರಿಯಬಲ್ xi ಒಂದು ಮೌಲ್ಯವನ್ನು ಪಡೆದಿದೆ" ಎಂಬ ಅರ್ಥವನ್ನು ಹೊಂದಿರಬಹುದು, ಆದರೆ ಇದು ಇತರ ಕೆಲವು ಷರತ್ತುಗಳನ್ನು ಸಹ ಸೂಚಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ. f ಕಾರ್ಯವನ್ನು ಬಳಸಲು ಅಗತ್ಯವಿರುವ ಸಂಪನ್ಮೂಲಗಳು ಲಭ್ಯವಿವೆ, ಇತ್ಯಾದಿ. ಪೂರ್ವ ಷರತ್ತು ಸಹ ಮೇಲೆ ನೀಡಲಾದ ಸೂತ್ರದ ಅದೇ ರೂಪದ ಸೂಚ್ಯಂಕವಾಗಿರಬಹುದು; ನಂತರ ಅದನ್ನು ಉಪಕಾರ್ಯ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. f ಕಾರ್ಯವನ್ನು ಅನ್ವಯಿಸಿದಾಗ ಇನ್ಪುಟ್ ಆಗಿ ಲಭ್ಯವಿರಬೇಕಾದ ಕಾರ್ಯವನ್ನು ಸಬ್ಟಾಸ್ಕ್ ಸೂಚಿಸುತ್ತದೆ. ಈ ಕಾರ್ಯವನ್ನು ಎಸ್. ಎಸ್. ಪಿ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಸಂಶ್ಲೇಷಿಸಬೇಕು. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಸೂತ್ರದ ಸಾಕ್ಷಾತ್ಕಾರವು ಉನ್ನತ ಕ್ರಮದ ಕಾರ್ಯವಾಗಿದೆ, ಅಂದರೆ, ಮತ್ತೊಂದು ಕಾರ್ಯವನ್ನು ಇನ್ಪುಟ್ ಆಗಿ ಬಳಸುವ ಕಾರ್ಯವಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಸೂತ್ರವು (ಸ್ಥಿತಿ → ಮುಂದಿನ ಸ್ಥಿತಿ) ಆರಂಭಿಕ ಸ್ಥಿತಿ → ಫಲಿತಾಂಶವು ಎರಡು ಇನ್ಪುಟ್ಗಳು ಮತ್ತು ಔಟ್ಪುಟ್ ಫಲಿತಾಂಶದೊಂದಿಗೆ ಉನ್ನತ ಕ್ರಮಾಂಕದ ಕಾರ್ಯವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. ಮೊದಲ ಇನ್ಪುಟ್ ಎಂಬುದು ಸ್ಥಿತಿಯಿಂದ ಮುಂದಿನ ಸ್ಥಿತಿಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಸಂಶ್ಲೇಷಿಸಬೇಕಾದ ಕಾರ್ಯವಾಗಿದೆ ಮತ್ತು ಎರಡನೇ ಇನ್ಪುಟ್ ಆರಂಭಿಕ ಸ್ಥಿತಿಯಾಗಿದೆ. ಹೈಯರ್ ಆರ್ಡರ್ ಕಾರ್ಯಗಳು ಎಸ್. ಎಸ್. ಪಿ. ಗೆ ಸಾಮಾನ್ಯತೆಯನ್ನು ನೀಡುತ್ತವೆ-ಸಂಶ್ಲೇಷಿತ ಪ್ರೋಗ್ರಾಂನಲ್ಲಿ ಅಗತ್ಯವಿರುವ ಯಾವುದೇ ನಿಯಂತ್ರಣ ರಚನೆಯನ್ನು ಪೂರ್ವಭಾವಿಯಾಗಿ ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಬಹುದು ಮತ್ತು ನಂತರ ಆಯಾ ನಿರ್ದಿಷ್ಟತೆಯೊಂದಿಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಬಳಸಬಹುದು. ನಿರ್ದಿಷ್ಟವಾಗಿ ಹೇಳುವುದಾದರೆ, ಇಲ್ಲಿ ಪ್ರಸ್ತುತಪಡಿಸಲಾದ ಕೊನೆಯ ಸೂತ್ರವು ಸಂಕೀರ್ಣ ಪ್ರೋಗ್ರಾಂನ ಒಂದು ವಿವರಣೆಯಾಗಿದೆ-ಸಿಸ್ಟಮ್ನ ಸ್ಥಿತಿಯಿಂದ ಮುಂದಿನ ಸ್ಥಿತಿಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಬಹುದಾದ ಮಾದರಿಗಳ ಮೇಲೆ ಡೈನಾಮಿಕ್ ಸಿಸ್ಟಮ್ಗಳನ್ನು ಅನುಕರಿಸುವ ಸಿಮ್ಯುಲೇಶನ್ ಎಂಜಿನ್. ಉಲ್ಲೇಖಗಳು ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಸ್ವಯಂಚಾಲಿತ ಸಾಫ್ಟ್ವೇರ್ ಎಂಜಿನಿಯರಿಂಗ್ ಮುಖಪುಟ ಸಾಫ್ಟ್ವೇರ್ ಎಂಜಿನಿಯರಿಂಗ್ ಲಾಜಿಕ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್