Predicative programming
ಪ್ರಿಡಿಕೇಟಿವ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಎಂಬುದು ಪ್ರೋಗ್ರಾಂ ಸ್ಪೆಸಿಫಿಕೇಷನ್ ಮತ್ತು ಪರಿಷ್ಕರಣೆಗಾಗಿ ಔಪಚಾರಿಕ ವಿಧಾನದ ಮೂಲ ಹೆಸರಾಗಿದೆ, ಇದನ್ನು ಇತ್ತೀಚೆಗೆ ಪ್ರಾಕ್ಟಿಕಲ್ ಥಿಯರಿ ಆಫ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ, ಇದನ್ನು ಎರಿಕ್ ಹೆಹ್ನರ್ ಕಂಡುಹಿಡಿದಿದ್ದಾರೆ. ಪ್ರತಿ ವಿವರಣೆಯು ಬೈನರಿ (ಬೂಲಿಯನ್) ಅಭಿವ್ಯಕ್ತಿಯಾಗಿದ್ದು, ಇದು ಸ್ವೀಕಾರಾರ್ಹ ಕಂಪ್ಯೂಟರ್ ನಡವಳಿಕೆಗಳಿಗೆ ನಿಜವಾಗಿದೆ ಮತ್ತು ಸ್ವೀಕಾರಾರ್ಹವಲ್ಲದ ನಡವಳಿಕೆಗಳಿಗೆ ಸುಳ್ಳು ಎಂಬುದು ಕೇಂದ್ರ ಕಲ್ಪನೆಯಾಗಿದೆ. ಪರಿಷ್ಕರಣೆಯು ಕೇವಲ ಸೂಚ್ಯಂಕವಾಗಿದೆ ಎಂಬುದನ್ನು ಇದು ಅನುಸರಿಸುತ್ತದೆ. ಇದು ಸರಳವಾದ ಔಪಚಾರಿಕ ವಿಧಾನವಾಗಿದೆ, ಮತ್ತು ಅತ್ಯಂತ ಸಾಮಾನ್ಯವಾದದ್ದು, ಅನುಕ್ರಮವಾದ, ಸಮಾನಾಂತರವಾದ, ಸ್ವತಂತ್ರವಾದ, ಸಂವಹನ, ಮುಕ್ತಾಯಗೊಳಿಸುವ, ಕೊನೆಗೊಳ್ಳದ, ನೈಸರ್ಗಿಕ-ಸಮಯ, ನೈಜ-ಸಮಯ, ನಿರ್ಣಾಯಕ ಮತ್ತು ಸಂಭವನೀಯ ಕಾರ್ಯಕ್ರಮಗಳಿಗೆ ಅನ್ವಯಿಸುತ್ತದೆ ಮತ್ತು ಸಮಯ ಮತ್ತು ಸ್ಥಳದ ಮಿತಿಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿನ ಆಜ್ಞೆಗಳನ್ನು ನಿರ್ದಿಷ್ಟತೆಯ ವಿಶೇಷ ಪ್ರಕರಣವೆಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ-ಆ ನಿರ್ದಿಷ್ಟತೆಗಳು ಸಂಕಲಿಸಬಹುದಾದಂತಹವು. ಉದಾಹರಣೆಗೆ, ಪ್ರೋಗ್ರಾಂ ವೇರಿಯೇಬಲ್ಗಳು, ಮತ್ತು ಆಗಿದ್ದರೆ, ಕಮಾಂಡ್ಃ = + 1 ನಿರ್ದಿಷ್ಟತೆಗೆ ಸಮಾನವಾಗಿರುತ್ತದೆ (ಬೈನರಿ ಅಭಿವ್ಯಕ್ತಿ) = + 1w = ¥ = ಇದರಲ್ಲಿ, ಮತ್ತು ನಿಯೋಜನೆಯ ಮೊದಲು ಪ್ರೋಗ್ರಾಂ ವೇರಿಯೇಬಲ್ಗಳ ಮೌಲ್ಯಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ, ಮತ್ತು, ಮತ್ತು ನಿಯೋಜನೆಯ ನಂತರ ಪ್ರೋಗ್ರಾಂ ವೇರಿಯೇಬಲ್ಗಳ ಮೌಲ್ಯಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ವಿವರಣೆಯು> ಆಗಿದ್ದರೆ, ನಾವು ಸುಲಭವಾಗಿ ಸಾಬೀತುಪಡಿಸುತ್ತೇವೆ (: = + 1) (>), ಇದು ಹೇಳುತ್ತದೆಃ = + 1 ಸೂಚಿಸುತ್ತದೆ, ಅಥವಾ ಪರಿಷ್ಕರಿಸುತ್ತದೆ, ಅಥವಾ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ>. ಲೂಪ್ ಪ್ರೂಫ್ಗಳನ್ನು ಬಹಳ ಸರಳೀಕರಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಒಂದು ಪೂರ್ಣಾಂಕ ವೇರಿಯೇಬಲ್ ಆಗಿದ್ದರೆ,> 0 ಮಾಡುವುದಾದರೆಃ =-1 od ಅನ್ನು ಪರಿಷ್ಕರಿಸುತ್ತದೆ, ಅಥವಾ ನಿರ್ದಿಷ್ಟತೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದಾಗ,> 0 ಆಗಿದೆಯೇ ಎಂದು ಸಾಬೀತುಪಡಿಸಲುಃ =-1; (≤0  ಯಾಚ = 0) ಇಲ್ಲದಿದ್ದರೆ ಫೈ (≤0 ಗುಣ = 0) ಅಲ್ಲಿ = (=) ಖಾಲಿಯಾಗಿದೆ, ಅಥವಾ ಏನೂ ಮಾಡಬೇಡಿ ಆಜ್ಞೆಯಾಗಿದೆ. ಲೂಪ್ ಇನ್ವೇರಿಯಂಟ್ ಅಥವಾ ಕನಿಷ್ಠ ಸ್ಥಿರ ಬಿಂದುವಿನ ಅಗತ್ಯವಿಲ್ಲ. ಅನೇಕ ಮಧ್ಯಂತರ ಆಳವಿಲ್ಲದ ಮತ್ತು ಆಳವಾದ ನಿರ್ಗಮನಗಳನ್ನು ಹೊಂದಿರುವ ಲೂಪ್ಗಳು ಅದೇ ರೀತಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ಈ ಸರಳೀಕೃತ ರೂಪದ ಪುರಾವೆ ಸಾಧ್ಯವಿದೆ ಏಕೆಂದರೆ ಪ್ರೋಗ್ರಾಂ ಆಜ್ಞೆಗಳು ಮತ್ತು ವಿಶೇಷಣಗಳನ್ನು ಅರ್ಥಪೂರ್ಣವಾಗಿ ಬೆರೆಸಬಹುದು. ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯವನ್ನು (ಮೇಲಿನ ಮಿತಿಗಳು, ಕೆಳಗಿನ ಮಿತಿಗಳು, ನಿಖರವಾದ ಸಮಯ) ಕೇವಲ ಸಮಯದ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಪರಿಚಯಿಸುವ ಮೂಲಕ ಅದೇ ರೀತಿಯಲ್ಲಿ ಸಾಬೀತುಪಡಿಸಬಹುದು. ಮುಕ್ತಾಯವನ್ನು ಸಾಬೀತುಪಡಿಸಲು, ಮರಣದಂಡನೆಯ ಸಮಯವು ಸೀಮಿತವಾಗಿದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸಿ. ನಿರ್ಮೂಲನೆಯನ್ನು ಸಾಬೀತುಪಡಿಸಲು, ಮರಣದಂಡನೆಯ ಸಮಯವು ಅನಂತವಾಗಿದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸಿ. ಉದಾಹರಣೆಗೆ, ಸಮಯದ ವೇರಿಯೇಬಲ್ ಆಗಿದ್ದರೆ, ಮತ್ತು ಸಮಯವನ್ನು ಪುನರಾವರ್ತನೆಗಳನ್ನು ಎಣಿಸುವ ಮೂಲಕ ಅಳೆಯಲಾಗಿದ್ದರೆ, ಹಿಂದಿನ ವೈಲ್-ಲೂಪ್ನ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯು ಆರಂಭದಲ್ಲಿ ಋಣಾತ್ಮಕವಾಗಿರದಿದ್ದಾಗ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಆರಂಭದಲ್ಲಿ ಋಣಾತ್ಮಕವಾಗಿದ್ದಾಗ ಶಾಶ್ವತವಾಗಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸಲು,> 0 ಎಂದು ಸಾಬೀತುಪಡಿಸಿ ನಂತರಃ =-1;: = + 1; (ω0 ν = +) ω (<0 ν = ν) ಇಲ್ಲದಿದ್ದರೆ ω (ω0 ν = +) ω (ω0 ν = ν) ಅಲ್ಲಿ = (= ω =). ಗ್ರಂಥಸೂಚಿ ಇ. ಸಿ. ಆರ್. ಹೆಹ್ನರ್, ಎ ಪ್ರಾಕ್ಟಿಕಲ್ ಥಿಯರಿ ಆಫ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್, ಸ್ಪ್ರಿಂಗರ್-ವೆರ್ಲಾಗ್ 1993. ಪ್ರಾಕ್ಟಿಕಲ್ ಥಿಯರಿ ಆಫ್ ಪ್ರೊಗ್ರಾಮಿಂಗ್ನಲ್ಲಿ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಯು ಆನ್ಲೈನ್ನಲ್ಲಿದೆ. ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಎರಿಕ್ ಹೆಹ್ನರ್ ಅವರ ಪಬ್ಲಿಕೇಷನ್ಸ್. ಔಪಚಾರಿಕ ವಿಧಾನಗಳು ಔಪಚಾರಿಕ ವಿವರಣಾತ್ಮಕ ಭಾಷೆಗಳು ತಾರ್ಕಿಕ ಲೆಕ್ಕಾಚಾರಗಳು