ಲುವಾ ಭಾಷೆಯ ಟೈಪ್-ಚೆಕಿಂಗ್ ರೂಪಾಂತರವಾದ ಲುವಾಗೆ ಮುಕ್ತ ಮೂಲ

ಲುವಾ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಮೊದಲ ಸ್ವತಂತ್ರ ಬಿಡುಗಡೆಯ ಮುಕ್ತ ಮೂಲ ಮತ್ತು ಪ್ರಕಟಣೆಯನ್ನು ಪ್ರಕಟಿಸಿದೆ, ಲುವಾ ಭಾಷೆಯ ಅಭಿವೃದ್ಧಿಯನ್ನು ಮುಂದುವರೆಸಿದೆ ಮತ್ತು ಲುವಾ 5.1 ರೊಂದಿಗೆ ಹಿಂದುಳಿದ ಹೊಂದಾಣಿಕೆಯಾಗಿದೆ. Luau ಅನ್ನು ಪ್ರಾಥಮಿಕವಾಗಿ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಎಂಜಿನ್‌ಗಳನ್ನು ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಎಂಬೆಡ್ ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಕಡಿಮೆ ಸಂಪನ್ಮೂಲ ಬಳಕೆಯನ್ನು ಸಾಧಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಪ್ರಾಜೆಕ್ಟ್ ಕೋಡ್ ಅನ್ನು C++ ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ತೆರೆದಿರುತ್ತದೆ.

ಲುವಾವು ಲುವಾವನ್ನು ಟೈಪ್ ಚೆಕಿಂಗ್ ಸಾಮರ್ಥ್ಯಗಳು ಮತ್ತು ಸ್ಟ್ರಿಂಗ್ ಲಿಟರಲ್ಸ್‌ನಂತಹ ಕೆಲವು ಹೊಸ ವಾಕ್ಯ ರಚನೆಗಳೊಂದಿಗೆ ವಿಸ್ತರಿಸುತ್ತದೆ. ಭಾಷೆಯು ಲುವಾ 5.1 ಮತ್ತು ಭಾಗಶಃ ಹೊಸ ಆವೃತ್ತಿಗಳೊಂದಿಗೆ ಹಿಂದುಳಿದ ಹೊಂದಾಣಿಕೆಯಾಗಿದೆ. ಲುವಾ ರನ್‌ಟೈಮ್ API ಬೆಂಬಲಿತವಾಗಿದೆ, ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕೋಡ್ ಮತ್ತು ಬೈಂಡಿಂಗ್‌ಗಳೊಂದಿಗೆ Luau ಅನ್ನು ಬಳಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಭಾಷಾ ರನ್‌ಟೈಮ್ ಅತೀವವಾಗಿ ಪುನರ್‌ನಿರ್ಮಾಣ ಮಾಡಿದ ಲುವಾ ರನ್‌ಟೈಮ್ 5.1 ಕೋಡ್ ಅನ್ನು ಆಧರಿಸಿದೆ, ಆದರೆ ಇಂಟರ್ಪ್ರಿಟರ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಪುನಃ ಬರೆಯಲಾಗಿದೆ. ಅಭಿವೃದ್ಧಿಯ ಸಮಯದಲ್ಲಿ, ಲುವಾಗೆ ಹೋಲಿಸಿದರೆ ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸಾಧಿಸಲು ಕೆಲವು ಹೊಸ ಆಪ್ಟಿಮೈಸೇಶನ್ ತಂತ್ರಗಳನ್ನು ಬಳಸಲಾಯಿತು.

ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ರೋಬ್ಲಾಕ್ಸ್ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದೆ ಮತ್ತು ರೋಬ್ಲಾಕ್ಸ್ ಸ್ಟುಡಿಯೋ ಎಡಿಟರ್ ಸೇರಿದಂತೆ ಈ ಕಂಪನಿಯ ಗೇಮಿಂಗ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್, ಆಟಗಳು ಮತ್ತು ಬಳಕೆದಾರರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಕೋಡ್‌ನಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ. ಆರಂಭದಲ್ಲಿ, ಲುವಾವನ್ನು ಮುಚ್ಚಿದ ಬಾಗಿಲುಗಳ ಹಿಂದೆ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಯಿತು, ಆದರೆ ಕೊನೆಯಲ್ಲಿ ಅದನ್ನು ಸಮುದಾಯದ ಭಾಗವಹಿಸುವಿಕೆಯೊಂದಿಗೆ ಮತ್ತಷ್ಟು ಜಂಟಿ ಅಭಿವೃದ್ಧಿಗಾಗಿ ಮುಕ್ತ ಯೋಜನೆಗಳ ವರ್ಗಕ್ಕೆ ವರ್ಗಾಯಿಸಲು ನಿರ್ಧರಿಸಲಾಯಿತು.

ಮುಖ್ಯ ಲಕ್ಷಣಗಳು:

  • ಕ್ರಮೇಣ ಟೈಪಿಂಗ್, ಡೈನಾಮಿಕ್ ಮತ್ತು ಸ್ಟ್ಯಾಟಿಕ್ ಟೈಪಿಂಗ್ ನಡುವಿನ ಮಧ್ಯಂತರ ಸ್ಥಾನವನ್ನು ಆಕ್ರಮಿಸಿಕೊಳ್ಳುವುದು. ವಿಶೇಷ ಟಿಪ್ಪಣಿಗಳ ಮೂಲಕ ಪ್ರಕಾರದ ಮಾಹಿತಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಮೂಲಕ ಅಗತ್ಯವಿರುವಂತೆ ಸ್ಥಿರ ಟೈಪಿಂಗ್ ಅನ್ನು ಬಳಸಲು Luau ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಅಂತರ್ನಿರ್ಮಿತ ಪ್ರಕಾರಗಳು "ಯಾವುದೇ", "ನಿಲ್", "ಬೂಲಿಯನ್", "ಸಂಖ್ಯೆ", "ಸ್ಟ್ರಿಂಗ್" ಮತ್ತು "ಥ್ರೆಡ್" ಅನ್ನು ಒದಗಿಸಲಾಗಿದೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, ಅಸ್ಥಿರ ಮತ್ತು ಕಾರ್ಯಗಳ ಪ್ರಕಾರವನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸದೆ ಡೈನಾಮಿಕ್ ಟೈಪಿಂಗ್ ಅನ್ನು ಬಳಸುವ ಸಾಧ್ಯತೆಯನ್ನು ಸಂರಕ್ಷಿಸಲಾಗಿದೆ. ಫಂಕ್ಷನ್ ಫೂ(x: ಸಂಖ್ಯೆ, ವೈ: ಸ್ಟ್ರಿಂಗ್): ಬೂಲಿಯನ್ ಲೋಕಲ್ ಕೆ: ಸ್ಟ್ರಿಂಗ್ = ವೈ: ರೆಪ್(x) ರಿಟರ್ನ್ ಕೆ == "ಎ" ಅಂತ್ಯ
  • "\5.3x**" (ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ಸಂಖ್ಯೆ), "\u{**}" (ಯೂನಿಕೋಡ್ ಅಕ್ಷರ) ಮತ್ತು "\z" (ಸಾಲಿನ ಅಂತ್ಯ) ನಂತಹ ಸ್ಟ್ರಿಂಗ್ ಲಿಟರಲ್‌ಗಳಿಗೆ (ಲುವಾ 0 ರಂತೆ) ಬೆಂಬಲ, ಹಾಗೆಯೇ ಸಂಖ್ಯೆಯ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಅನ್ನು ದೃಶ್ಯೀಕರಿಸುವ ಸಾಮರ್ಥ್ಯ (ನೀವು 1 ಬದಲಿಗೆ 000_000_1000000 ಬರೆಯಬಹುದು), ಹೆಕ್ಸಾಡೆಸಿಮಲ್ (0x...) ಮತ್ತು ಬೈನರಿ ಸಂಖ್ಯೆಗಳಿಗೆ ಅಕ್ಷರಶಃ (0b......).
  • ಹೊಸ ಲೂಪ್ ಪುನರಾವರ್ತನೆಗೆ ನೆಗೆಯಲು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ "ಬ್ರೇಕ್" ಕೀವರ್ಡ್‌ಗೆ ಪೂರಕವಾಗಿ "ಮುಂದುವರಿಯಿರಿ" ಅಭಿವ್ಯಕ್ತಿಗೆ ಬೆಂಬಲ.
  • ಸಂಯುಕ್ತ ನಿಯೋಜನೆ ಆಪರೇಟರ್‌ಗಳಿಗೆ ಬೆಂಬಲ (+=, -=, *=, /=, %=, ^=, ..=).
  • ಬ್ಲಾಕ್ನ ಮರಣದಂಡನೆಯ ಸಮಯದಲ್ಲಿ ಲೆಕ್ಕಹಾಕಿದ ಮೌಲ್ಯವನ್ನು ಹಿಂದಿರುಗಿಸುವ ಅಭಿವ್ಯಕ್ತಿಗಳ ರೂಪದಲ್ಲಿ ಷರತ್ತುಬದ್ಧ "ಇಫ್-ನಂತರ-ಎಲ್ಸ್" ಬ್ಲಾಕ್ಗಳ ಬಳಕೆಗೆ ಬೆಂಬಲ. ನೀವು ಬ್ಲಾಕ್‌ನಲ್ಲಿ ಅನಿಯಂತ್ರಿತ ಸಂಖ್ಯೆಯ elseif ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. ಸ್ಥಳೀಯ maxValue = a > b ಆಗಿದ್ದರೆ ಬೇರೆ b ಸ್ಥಳೀಯ ಚಿಹ್ನೆ = x < 0 ಆಗಿದ್ದರೆ -1 elseif x > 0 ನಂತರ 1 else 0
  • ಐಸೊಲೇಶನ್ ಮೋಡ್ (ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್) ಇರುವಿಕೆ, ಇದು ನಿಮಗೆ ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲದ ಕೋಡ್ ಅನ್ನು ಚಲಾಯಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ನಿಮ್ಮ ಸ್ವಂತ ಕೋಡ್ ಮತ್ತು ಇನ್ನೊಂದು ಡೆವಲಪರ್ ಬರೆದ ಕೋಡ್‌ನ ಪಕ್ಕದಲ್ಲಿ ಲಾಂಚ್ ಅನ್ನು ಸಂಘಟಿಸಲು ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಬಹುದು, ಉದಾಹರಣೆಗೆ, ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಲೈಬ್ರರಿಗಳ ಸುರಕ್ಷತೆಗಾಗಿ ಖಾತರಿ ನೀಡಲಾಗುವುದಿಲ್ಲ.
  • ಸುರಕ್ಷತಾ ಸಮಸ್ಯೆಗಳನ್ನು ಸಂಭಾವ್ಯವಾಗಿ ರಚಿಸಬಹುದಾದ ಕಾರ್ಯಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾದ ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯದ ಮಿತಿ. ಉದಾಹರಣೆಗೆ, ಲೈಬ್ರರಿಗಳು “io” (ಫೈಲ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸುವುದು ಮತ್ತು ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಪ್ರಾರಂಭಿಸುವುದು), “ಪ್ಯಾಕೇಜ್” (ಫೈಲ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸುವುದು ಮತ್ತು ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡುವುದು), “os” (ಫೈಲ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಮತ್ತು ಪರಿಸರ ವೇರಿಯಬಲ್‌ಗಳನ್ನು ಬದಲಾಯಿಸುವ ಕಾರ್ಯಗಳು), “ಡೀಬಗ್” (ಮೆಮೊರಿಯೊಂದಿಗೆ ಅಸುರಕ್ಷಿತ ಕಾರ್ಯಾಚರಣೆ) , "ಡೋಫೈಲ್" ಮತ್ತು "ಲೋಡ್ಫೈಲ್" (ಎಫ್ಎಸ್ ಪ್ರವೇಶ).
  • ಸ್ಥಿರ ಕೋಡ್ ವಿಶ್ಲೇಷಣೆಗಾಗಿ ಸಾಧನಗಳನ್ನು ಒದಗಿಸುವುದು, ದೋಷಗಳನ್ನು ಗುರುತಿಸುವುದು (ಲಿಂಟರ್) ಮತ್ತು ಪ್ರಕಾರಗಳ ಸರಿಯಾದ ಬಳಕೆಯನ್ನು ಪರಿಶೀಲಿಸುವುದು.
  • ಸ್ವಂತ ಉನ್ನತ-ಕಾರ್ಯಕ್ಷಮತೆಯ ಪಾರ್ಸರ್, ಬೈಟ್‌ಕೋಡ್ ಇಂಟರ್ಪ್ರಿಟರ್ ಮತ್ತು ಕಂಪೈಲರ್. Luau ಇನ್ನೂ JIT ಸಂಕಲನವನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ, ಆದರೆ Luau ಇಂಟರ್ಪ್ರಿಟರ್ ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ LuaJIT ಗೆ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೋಲಿಸಬಹುದು ಎಂದು ಹೇಳಲಾಗುತ್ತದೆ.

ಮೂಲ: opennet.ru

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