StaDyn (programming language)
ಸ್ಟಾಡಿನ್ ಎಂಬುದು. ನೆಟ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಾಗಿ ವಸ್ತು-ಆಧಾರಿತ ಸಾಮಾನ್ಯ-ಉದ್ದೇಶದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾಗಿದ್ದು, ಇದು ಒಂದೇ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ ಸ್ಥಿರ ಮತ್ತು ಕ್ರಿಯಾತ್ಮಕ ಟೈಪಿಂಗ್ ಎರಡನ್ನೂ ಬೆಂಬಲಿಸುತ್ತದೆ. ಸ್ಟೈಡಿನ್ ಕಂಪೈಲರ್ ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಟೈಪ್ ಮಾಡಲಾದ ಕೋಡ್ಗಾಗಿ ಟೈಪ್ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಆ ರೀತಿಯ ಮಾಹಿತಿಯನ್ನು ಸಂಕಲನ ಸಮಯದಲ್ಲಿ ಟೈಪ್ ದೋಷಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಮತ್ತು ಗಮನಾರ್ಹ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಆ ಉದ್ದೇಶಕ್ಕಾಗಿ, ಇದು ಪ್ರಕಾರದ ಪುನರ್ನಿರ್ಮಾಣ (ತೀರ್ಮಾನ), ಹರಿವಿನ-ಸೂಕ್ಷ್ಮ ಪ್ರಕಾರಗಳು, ಒಕ್ಕೂಟ ಮತ್ತು ಛೇದಕ ಪ್ರಕಾರಗಳು, ನಿರ್ಬಂಧ-ಆಧಾರಿತ ಮುದ್ರಣ, ಅಲಿಯಾಸ್ ವಿಶ್ಲೇಷಣೆ ಮತ್ತು ವಿಧಾನದ ವಿಶೇಷತೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ. ಇದರ ಮೊದಲ ಮೂಲಮಾದರಿಯು 2007ರಲ್ಲಿ ಸಿ #3ರ ಮಾರ್ಪಾಡಾಗಿ ಕಾಣಿಸಿಕೊಂಡಿತು. ಸಿ #ಗಿಂತ ಭಿನ್ನವಾಗಿ, ಹೊಸ ಪ್ರಕಾರವಾಗಿ ವರ್ ಅನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ಪ್ರಕಾರದ ತೀರ್ಮಾನವನ್ನು ಬೆಂಬಲಿಸಲಾಗಿದೆ, ಇದು ಆರಂಭಿಕ ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಮಾತ್ರ ವರ್ ಅನ್ನು ನೀಡುತ್ತದೆ. ಫ್ಲೋ-ಸೆನ್ಸಿಟಿವ್ ರೀತಿಯ ವರ್ ಉಲ್ಲೇಖಗಳನ್ನು ಕಂಪೈಲರ್ ಊಹಿಸುತ್ತದೆ, ಇದು ಟೈಪ್-ಸೇಫ್ ಡಕ್ ಟೈಪಿಂಗ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ. ಪ್ರೋಗ್ರಾಮರ್ಗೆ ಹೆಚ್ಚು ಮೃದುವಾದ ವಿಧಾನದ ಅಗತ್ಯವಿದ್ದಾಗ, ವರ್ ಬದಲಿಗೆ ಡೈನಾಮಿಕ್ ಟೈಪ್ ಅನ್ನು ಬಳಸಬಹುದು. ಪ್ರಕಾರದ ತೀರ್ಮಾನವನ್ನು ಇನ್ನೂ ನಡೆಸಲಾಗುತ್ತದೆಯಾದರೂ, ಕ್ರಿಯಾತ್ಮಕ ಉಲ್ಲೇಖಗಳು ಕ್ರಿಯಾತ್ಮಕ ಭಾಷೆಗಳಲ್ಲಿರುವವುಗಳಿಗೆ ಹತ್ತಿರವಾಗಿ ವರ್ತಿಸುತ್ತವೆ. ಸ್ಟ್ಯಾಡಿನ್ಅನ್ನು ಓವಿಯೆಡೊ ವಿಶ್ವವಿದ್ಯಾಲಯದ ಫ್ರಾನ್ಸಿಸ್ಕೊ ಒರ್ಟಿನ್ ವಿನ್ಯಾಸಗೊಳಿಸಿದ್ದಾರೆ. ಫ್ರಾನ್ಸಿಸ್ಕೋ ಒರ್ಟಿನ್ ಜೊತೆಗೆ ಮಿಗುಯೆಲ್ ಗಾರ್ಸಿಯಾ, ಜೋಸ್ ಬಾಲ್ಟಾಸರ್ ಗಾರ್ಸಿಯಾ ಪೆರೆಜ್-ಸ್ಕೋಫೀಲ್ಡ್ ಮತ್ತು ಜೋಸ್ ಕ್ವಿರೋಗಾ ಸೇರಿದಂತೆ ಕಂಪ್ಯೂಟೇಶನಲ್ ರಿಫ್ಲೆಕ್ಷನ್ ಸಂಶೋಧನಾ ಗುಂಪಿನ ವಿವಿಧ ಸದಸ್ಯರು ಈ ಭಾಷೆಯನ್ನು ಜಾರಿಗೆ ತಂದಿದ್ದಾರೆ. ಸ್ಟಾಡಿನ್ ಎಂಬ ಹೆಸರು ಸ್ಥಿರ ಮತ್ತು ಕ್ರಿಯಾತ್ಮಕ ಸಂಯೋಜನೆಯಾಗಿದ್ದು, ಇದು ಸ್ಥಿರ ಮತ್ತು ಕ್ರಿಯಾತ್ಮಕ ಬೆರಳಚ್ಚುಗಳ ಪ್ರಯೋಜನಗಳನ್ನು ಒದಗಿಸುವ ಅದರ ಗುರಿಯನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಕ್ರಿಯಾತ್ಮಕ ಭಾಷೆಗಳಂತೆಯೇ, ಅಸ್ಥಿರಗಳು ಒಂದೇ ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ವಿವಿಧ ಪ್ರಕಾರಗಳನ್ನು ಹೊಂದಿರಬಹುದುಃ ಸಿಸ್ಟಮ್ ಅನ್ನು ಬಳಸುವುದು; ವರ್ಗ ಪ್ರೋಗ್ರಾಂ {ಸಾರ್ವಜನಿಕ ಸ್ಥಿರ ಶೂನ್ಯ ಮುಖ್ಯ () {Console.Write ("ಸಂಖ್ಯೆಃ"); ವರ್ ವಯಸ್ಸು = Console.In.ReadLine (); Console.WriteLine ("ಅಂಕೆಗಳುಃ + age.Length); ವಯಸ್ಸು = Convert.ToInt32 (ವಯಸ್ಸು); ವಯಸ್ಸು + +; Console.WriteLine (" ಜನ್ಮದಿನದ ಶುಭಾಶಯಗಳು, ನೀವು ಈಗ "+ ವಯಸ್ಸು +" ವರ್ಷ ವಯಸ್ಸಿನವರಾಗಿದ್ದೀರಿ. "); int ಉದ್ದ = age.Length;// * ಕಂಪೈಲರ್ ದೋಷ}} ವಯಸ್ಸಿನ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಮೊದಲು ಸ್ಟ್ರಿಂಗ್ ಎಂದು ಊಹಿಸಲಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಅದರ ಉದ್ದದ ಗುಣಲಕ್ಷಣವನ್ನು ಪಡೆಯುವುದು ಸುರಕ್ಷಿತವಾಗಿದೆ. ನಂತರ, ಇದು ಒಂದು ಪೂರ್ಣಾಂಕವನ್ನು ಹೊಂದಿರುತ್ತದೆ, ಆದ್ದರಿಂದ ವಯಸ್ಸು + + ಒಂದು ಮಾನ್ಯ ಅಭಿವ್ಯಕ್ತಿಯಾಗಿದೆ. ಕಂಪೈಲರ್ ಕೊನೆಯ ಸಾಲಿನಲ್ಲಿನ ದೋಷವನ್ನು ಪತ್ತೆ ಮಾಡುತ್ತದೆ, ಏಕೆಂದರೆ ಉದ್ದವನ್ನು ಇನ್ನು ಮುಂದೆ ವಯಸ್ಸಿನಿಂದ ಒದಗಿಸಲಾಗುವುದಿಲ್ಲ. ರಚಿಸಲಾದ ಕೋಡ್ ವಯಸ್ಸನ್ನು ಪ್ರತಿನಿಧಿಸಲು ಒಂದೇ ಆಬ್ಜೆಕ್ಟ್ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಬಳಸುವುದಿಲ್ಲ, ಆದರೆ ಎರಡು ವಿಭಿನ್ನ ವೇರಿಯೇಬಲ್ಗಳನ್ನು ಬಳಸುತ್ತದೆ, ಅವುಗಳ ಪ್ರಕಾರಗಳು ಸ್ಟ್ರಿಂಗ್ ಮತ್ತು ಇಂಟ್. ಎಸ್ಎಸ್ಎ ಫಾರ್ಮ್ ಅನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಅಲ್ಗಾರಿದಮ್ನ ಮಾರ್ಪಾಡಿನೊಂದಿಗೆ ಇದನ್ನು ಸಾಧಿಸಲಾಗುತ್ತದೆ. ಇದು ರಚಿಸಲಾದ ಕೋಡ್ ಅನ್ನು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮಾಡುತ್ತದೆ, ಏಕೆಂದರೆ ರನ್ಟೈಮ್ ರೀತಿಯ ಪರಿವರ್ತನೆಗಳು ಅಗತ್ಯವಿಲ್ಲ. ಫ್ಲೋ-ಸೆನ್ಸಿಟಿವ್ ವಿಧಗಳಾದ ವರ್ ಮತ್ತು ಡೈನಾಮಿಕ್ ವೇರಿಯೇಬಲ್ಗಳು ಫ್ಲೋ-ಸೆನ್ಸಿಟಿವ್ ಪ್ರಕಾರಗಳನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳಬಹುದುಃ ಸಿಸ್ಟಮ್ ಅನ್ನು ಬಳಸುವುದು; ವರ್ಗ ಪ್ರೋಗ್ರಾಂ {ಸಾರ್ವಜನಿಕ ಸ್ಥಿರ ಶೂನ್ಯ ಮುಖ್ಯ (ಸ್ಟ್ರಿಂಗ್ [] ಆರ್ಗ್ಸ್) {ವರ್ ಎಕ್ಸೆಪ್ಶನ್; (args.Length> 0) ಎಕ್ಸೆಪ್ಶನ್ = ಹೊಸ ಅಪ್ಲಿಕೇಶನ್ ಎಕ್ಸೆಪ್ಶನ್ ("ಒಂದು ಅಪ್ಲಿಕೇಶನ್ ಎಕ್ಸೆಪ್ಶನ್". "); ಇಲ್ಲದಿದ್ದರೆ ಎಕ್ಸೆಪ್ಶನ್ = ಹೊಸ ಸಿಸ್ಟಮ್ ಎಕ್ಸೆಪ್ಶನ್ (" ಒಂದು ಸಿಸ್ಟಮ್ ಎಕ್ಸೆಪ್ಶನ್. "); Console.WriteLine (exception.Message);}} ಸಂದೇಶದ ಆಸ್ತಿಯನ್ನು ವಿನಾಯಿತಿಯಿಂದ ಪಡೆಯುವುದು ಸುರಕ್ಷಿತವಾಗಿದೆ ಏಕೆಂದರೆ ಅಪ್ಲಿಕೇಶನ್ ಎಕ್ಸೆಪ್ಶನ್ ಮತ್ತು ಸಿಸ್ಟಮ್ ಎಕ್ಸೆಪ್ಶನ್ ಎರಡೂ ಆ ಆಸ್ತಿಯನ್ನು ಒದಗಿಸುತ್ತವೆ. ಇಲ್ಲದಿದ್ದರೆ, ಕಂಪೈಲರ್ ದೋಷವನ್ನು ತೋರಿಸಲಾಗುತ್ತದೆ. ಈ ರೀತಿಯಲ್ಲಿ, ಸ್ಟ್ಯಾಡಿನ್ ಒಂದು ರೀತಿಯ-ಸುರಕ್ಷಿತ ಸ್ಥಿರ ಡಕ್-ಟೈಪಿಂಗ್ ವ್ಯವಸ್ಥೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ. ಕೆಳಗಿನ ಪ್ರೋಗ್ರಾಂನಲ್ಲಿಃ ಸಿಸ್ಟಮ್ ಅನ್ನು ಬಳಸುವುದು; ವರ್ಗ ಪ್ರೋಗ್ರಾಂ {ಸಾರ್ವಜನಿಕ ಸ್ಥಿರ ಶೂನ್ಯ ಮುಖ್ಯ (ಸ್ಟ್ರಿಂಗ್ [] ಆರ್ಗ್ಸ್) {ವರ್ ಎಕ್ಸೆಪ್ಶನ್; ಸ್ವಿಚ್ (args.Length) {ಕೇಸ್ 0: ಎಕ್ಸೆಪ್ಶನ್ = ಹೊಸ ಅಪ್ಲಿಕೇಶನ್ ಎಕ್ಸೆಪ್ಶನ್ ("ಒಂದು ಅಪ್ಲಿಕೇಶನ್ ಎಕ್ಸೆಪ್ಶನ್. "); ಬ್ರೇಕ್; ಕೇಸ್ 1: ಎಕ್ಸೆಪ್ಶನ್ = ನ್ಯೂ ಸಿಸ್ಟಮ್ ಎಕ್ಸೆಪ್ಶನ್ (" ಎ ಸಿಸ್ಟಮ್ ಎಕ್ಸೆಪ್ಶನ್. "); ಬ್ರೇಕ್; ಡೀಫಾಲ್ಟ್ಃ ಎಕ್ಸೆಪ್ಶನ್ =" ಇದು ಎಕ್ಸೆಪ್ಶನ್ ಅಲ್ಲ. "; ಬ್ರೇಕ್;} Console.WriteLine (exception.Message);// * ವರ್ ನೊಂದಿಗೆ ಕಂಪೈಲರ್ ದೋಷ, ಆದರೆ ಡೈನಾಮಿಕ್ Console.WriteLine (exception.Unknown) ನೊಂದಿಗೆ ಅಲ್ಲ;// * ಕಂಪೈಲರ್ ದೋಷ} ಸಂದೇಶದ ಗುಣಲಕ್ಷಣವನ್ನು ಸ್ಟ್ರಿಂಗ್ ಒದಗಿಸಿಲ್ಲ, ಆದ್ದರಿಂದ exception.Message ಗಾಗಿ ಕಂಪೈಲರ್ ದೋಷವನ್ನು ತೋರಿಸಲಾಗಿದೆ. ಆದಾಗ್ಯೂ, ನಾವು ಎಕ್ಸೆಪ್ಶನ್ ಅನ್ನು ಡೈನಾಮಿಕ್ ಎಂದು ಘೋಷಿಸಿದರೆ, ಹಿಂದಿನ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಕಂಪೈಲರ್ ಸ್ವೀಕರಿಸುತ್ತದೆ. ಕ್ರಿಯಾತ್ಮಕ ಭಾಷೆಗಳ ರುಚಿಯನ್ನು ಅನುಸರಿಸಿ, ಕ್ರಿಯಾತ್ಮಕತೆಯು ವರ್ಗಿಂತ ಹೆಚ್ಚು ಮೃದುವಾಗಿರುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಸ್ಥಿರ ರೀತಿಯ ತಪಾಸಣೆಯನ್ನು ಇನ್ನೂ ನಡೆಸಲಾಗುತ್ತದೆ. ಇದನ್ನು ಕೋಡ್ನ ಕೊನೆಯ ಸಾಲಿನಲ್ಲಿ ತೋರಿಸಲಾಗಿದೆ, ಅಲ್ಲಿ ಕಂಪೈಲರ್ ಎಕ್ಸೆಪ್ಶನ್ ಅನ್ನು ಡೈನಾಮಿಕ್ ಎಂದು ಘೋಷಿಸಲಾಗಿದ್ದರೂ ಸಹ exception.Unknown ಗಾಗಿ ದೋಷವನ್ನು ತೋರಿಸುತ್ತದೆ. ಏಕೆಂದರೆ ಮೂರು ಸಂಭವನೀಯ ಪ್ರಕಾರಗಳಲ್ಲಿ ಯಾವುದೂ (ಅಪ್ಲಿಕೇಶನ್ ಎಕ್ಸೆಪ್ಶನ್, ಸಿಸ್ಟಮ್ ಎಕ್ಸೆಪ್ಶನ್ ಮತ್ತು ಸ್ಟ್ರಿಂಗ್) ಅಜ್ಞಾತ ಸಂದೇಶವನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ಡೈನಾಮಿಕ್ ಮತ್ತು ವರ್ ಪ್ರಕಾರಗಳನ್ನು ಸುರಕ್ಷಿತ ಅಥವಾ ಹೆಚ್ಚು ಮೃದುವಾದ ರೀತಿಯ ಪರಿಶೀಲನೆಯನ್ನು ಪಡೆಯಲು ಸ್ಪಷ್ಟವಾಗಿ ಬಳಸಬಹುದಾದರೂ, ಏಕ ವರ್ ಉಲ್ಲೇಖಗಳ ಚೈತನ್ಯವನ್ನು ಕಮಾಂಡ್-ಲೈನ್ ಆಯ್ಕೆಗಳು, ಎಕ್ಸ್ಎಂಎಲ್ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ಗಳು ಮತ್ತು ವಿಷುಯಲ್ ಸ್ಟುಡಿಯೋದ ಪ್ಲಗಿನ್ನೊಂದಿಗೆ ಮಾರ್ಪಡಿಸಬಹುದು. ವರ್ ಮತ್ತು ಡೈನಾಮಿಕ್ ಪ್ರಕಾರಗಳ ಪ್ರಕಾರವನ್ನು ಆಬ್ಜೆಕ್ಟ್ ಫೀಲ್ಡ್ಗಳಾಗಿ ಬಳಸಬಹುದುಃ ಕ್ಲಾಸ್ ರ್ಯಾಪರ್ {ಪ್ರೈವೇಟ್ ವರ್ ಆಟ್ರಿಬ್ಯೂಟ್; ಪಬ್ಲಿಕ್ ರ್ಯಾಪರ್ (ವರ್ ಆಟ್ರಿಬ್ಯೂಟ್) {this.attribute = ಆಟ್ರಿಬ್ಯೂಟ್;} ಪಬ್ಲಿಕ್ ವರ್ ಗೆಟ್ () {ರಿಟರ್ನ್ ಆಟ್ರಿಬ್ಯೂಟ್;} ಪಬ್ಲಿಕ್ ವಾಯ್ಡ್ ಸೆಟ್ (ವರ್ ಆಟ್ರಿಬ್ಯೂಟ್) {this.attribute = ಆಟ್ರಿಬ್ಯೂಟ್;}} ಕ್ಲಾಸ್ ಟೆಸ್ಟ್ {ಪಬ್ಲಿಕ್ ಸ್ಟ್ಯಾಟಿಕ್ ವಾಯ್ಡ್ ಮೇನ್ () {ಸ್ಟ್ರಿಂಗ್ ಎಸ್ಟ್ರಿಂಗ್; ಇಂಟ್ ಎಇಂಟ್; ರ್ಯಾಪರ್ ರ್ಯಾಪರ್ = ಹೊಸ ರ್ಯಾಪರ್ ("ಹಲೋ"); ಎಸ್ಟ್ರಿಂಗ್ = wrapper.get (); ಎಇಂಟ್ = wrapper.get ();// * ಕಂಪೈಲರ್ ದೋಷ wrapper.set (3); ಎಸ್ಟ್ರಿಂಗ್ = wrapper.get ();// * ಕಂಪೈಲರ್ ಪ್ರತಿ ಬಾರಿ ನಾವು ಸೆಟ್ ವಿಧಾನವನ್ನು ಕರೆಯುವಾಗ, ಗುಣಲಕ್ಷಣದ ಪ್ರಕಾರವನ್ನು ವಾದದ ಪ್ರಕಾರವೆಂದು ಊಹಿಸಲಾಗುತ್ತದೆ. ಪ್ರತಿಯೊಂದು ವಸ್ತುವು ಸಂಭಾವ್ಯವಾಗಿ ವಿಭಿನ್ನ ರೀತಿಯ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿದೆ, ಆದ್ದರಿಂದ ಅದರ ಪ್ರಕಾರವನ್ನು ಇಡೀ ವರ್ಗಕ್ಕೆ ಬದಲಾಗಿ ಪ್ರತಿಯೊಂದು ನಿದರ್ಶನಕ್ಕೂ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ಈ ರೀತಿಯಾಗಿ, ಮೇಲಿನ ಕೋಡ್ನಲ್ಲಿ ಸೂಚಿಸಲಾದ ಎರಡು ಸಾಲುಗಳು ಸಂಕಲನ ದೋಷಗಳನ್ನು ವರದಿ ಮಾಡುತ್ತವೆ. ಈ ನಡವಳಿಕೆಯನ್ನು ಬೆಂಬಲಿಸಲು ಪ್ರಕಾರ-ಆಧಾರಿತ ಅಲಿಯಾಸ್ ಅನಾಲಿಸಿಸ್ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ. ನಿರ್ಬಂಧ-ಆಧಾರಿತ ಪ್ರಕಾರಗಳು ಈ ಕೆಳಗಿನ ವಿಧಾನವನ್ನು ವಿಶ್ಲೇಷಿಸೋಣಃ ಪಬ್ಲಿಕ್ ಸ್ಟ್ಯಾಟಿಕ್ ವರ್ ಅಪ್ಪರ್ (ವರ್ ನಿಯತಾಂಕ) {ರಿಟರ್ನ್ parameter.ToUpper ();} ನಿಯತಾಂಕದ ಪ್ರಕಾರ ಮತ್ತು ಫಂಕ್ಷನ್ ರಿಟರ್ನ್ ಮೌಲ್ಯವನ್ನು ಕಂಪೈಲರ್ ಊಹಿಸುತ್ತದೆ. ಆ ಉದ್ದೇಶಕ್ಕಾಗಿ, ಮೇಲಿನ ವಿಧಾನದ ಪ್ರಕಾರಕ್ಕೆ ಒಂದು ನಿರ್ಬಂಧವನ್ನು ಸೇರಿಸಲಾಗುತ್ತದೆಃ ವಾದವು ಯಾವುದೇ ನಿಯತಾಂಕಗಳಿಲ್ಲದೆ ಟಾಪ್ ವಿಧಾನವನ್ನು ಒದಗಿಸಬೇಕು. ಪ್ರತಿ ಆಹ್ವಾನದಲ್ಲಿ, ನಿರ್ಬಂಧವನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಮೇಲಿನ ರಿಟರ್ನ್ ಪ್ರಕಾರವನ್ನು ಆರ್ಗ್ಯುಮೆಂಟ್ನಿಂದ ಜಾರಿಗೆ ತರಲಾದ ಅನುಗುಣವಾದ ಟೂಪರ್ ವಿಧಾನದ ರಿಟರ್ನ್ ಪ್ರಕಾರವೆಂದು ಊಹಿಸಲಾಗುತ್ತದೆ. ಪ್ರೋಗ್ರಾಮರ್ ನಿಯತಾಂಕವನ್ನು ಘೋಷಿಸಲು ವರ್ ಅಥವಾ ಡೈನಾಮಿಕ್ ಅನ್ನು ಬಳಸಬಹುದು, ವಿಧಾನದ ಆಹ್ವಾನದ ಮೇಲೆ ರೀತಿಯ ತಪಾಸಣೆಯನ್ನು ನಿರ್ವಹಿಸುವ ವಿಧಾನವನ್ನು ಬದಲಾಯಿಸಬಹುದು. ಮೇಲ್ಭಾಗಕ್ಕೆ ರವಾನಿಸಲಾದ ವಾದವು ಫ್ಲೋ-ಸೆನ್ಸಿಟಿವ್ ಪ್ರಕಾರವನ್ನು ಹೊಂದಿದೆ ಎಂದು ಭಾವಿಸೋಣ (ಉದಾಹರಣೆಗೆ, ಮೇಲಿನ ಕೋಡ್ನಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ಎಕ್ಸೆಪ್ಶನ್, ಸಿಸ್ಟಮ್ ಎಕ್ಸೆಪ್ಶನ್ ಅಥವಾ ಸ್ಟ್ರಿಂಗ್ ಎಕ್ಸೆಪ್ಶನ್ ವೇರಿಯೇಬಲ್). ವರ್ ನೊಂದಿಗೆ, ವಾದದ ಎಲ್ಲಾ ಸಂಭವನೀಯ ಪ್ರಕಾರಗಳು ಟಾಪರ್ ಅನ್ನು ಒದಗಿಸಬೇಕು; ಡೈನಾಮಿಕ್ ನೊಂದಿಗೆ, ಕನಿಷ್ಠ ಒಂದು ಪ್ರಕಾರವು ಟಾಪರ್ ಅನ್ನು ಒದಗಿಸಬೇಕು. ರನ್ ಟೈಮ್ ಕಾರ್ಯಕ್ಷಮತೆ ಸ್ಟ್ಯಾಡಿನ್ ಸಂಗ್ರಹಿಸಿದ ಪ್ರಕಾರದ ಮಾಹಿತಿಯನ್ನು ರಚಿಸಲಾದ ಕೋಡ್ನಲ್ಲಿ ಗಮನಾರ್ಹವಾದ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಬಳಸಲಾಗುತ್ತದೆಃ ಪ್ರಕಾರದ ತಪಾಸಣೆಗಳು ಮತ್ತು ಪ್ರಕಾರದ ಕಾಸ್ಟ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲಾಗುತ್ತದೆ, ಪ್ರತಿಫಲನವನ್ನು ತಪ್ಪಿಸಲಾಗುತ್ತದೆ, ಆಗಾಗ್ಗೆ ವಿಧಗಳನ್ನು ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಿರ್ಬಂಧಗಳನ್ನು ಹೊಂದಿರುವ ವಿಧಾನಗಳು ವಿಶೇಷವಾಗಿರುತ್ತವೆ. ಎಲ್ಲಾ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳ ಉದ್ದೇಶವು ರನ್ಟೈಮ್ನಲ್ಲಿ ನಡೆಸಲಾಗುವ ಟೈಪ್-ಚೆಕಿಂಗ್ ಕಾರ್ಯಾಚರಣೆಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುವುದು, ಇದು ಹೆಚ್ಚಿನ ಕ್ರಿಯಾತ್ಮಕ ಭಾಷೆಗಳ ಮುಖ್ಯ ಕಾರ್ಯಕ್ಷಮತೆಯ ದಂಡವಾಗಿದೆ. ಆ ರೀತಿಯ ಅನೇಕ ಚೆಕ್ಗಳನ್ನು ಸ್ಟ್ಯಾಡಿನ್ ಕಂಪೈಲರ್ ಮೊದಲೇ ಕೈಗೊಳ್ಳುತ್ತದೆ. ಸ್ಟಾಡಿನ್ನ ರನ್ಟೈಮ್ ಕಾರ್ಯಕ್ಷಮತೆಯ ವಿವರವಾದ ಮೌಲ್ಯಮಾಪನವನ್ನು ಇಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ. ಒ. ಸಿ. ಎ. ಎಂ. ಎಲ್. ಸ್ಟ್ರಾಂಗ್ಟಾಕ್ ಬೂ ಉಲ್ಲೇಖಗಳು ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಅಧಿಕೃತ ಜಾಲತಾಣ ಗಿಟ್ಹಬ್ ರೆಪೊಸಿಟರಿ ಕಂಪ್ಯೂಟೇಶನಲ್ ರಿಫ್ಲೆಕ್ಷನ್ ರಿಸರ್ಚ್ ಗ್ರೂಪ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು. ನೆಟ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ವರ್ಗ-ಆಧಾರಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಉಚಿತ ಕಂಪೈಲರ್ಗಳು ಮತ್ತು ಇಂಟರ್ಪ್ರಿಟರ್ಗಳು ಆಬ್ಜೆಕ್ಟ್-ಓರಿಯೆಂಟೆಡ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು 2007ರಲ್ಲಿ ರಚಿಸಲಾದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಎಂ. ಐ. ಟಿ. ಪರವಾನಗಿಯನ್ನು ಬಳಸಿಕೊಂಡು ತಂತ್ರಾಂಶಗಳು ಸ್ಥಿರವಾಗಿ ಟೈಪ್ ಮಾಡಲಾದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಡೈನಾಮಿಕಲಿ ಟೈಪ್ ಮಾಡಲಾದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು 2007 ತಂತ್ರಾಂಶ ಸ್ಪ್ಯಾನಿಷ್ ಆವಿಷ್ಕಾರಗಳು