ಕ್ರಿಸ್ಟಲ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆ 1.5

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

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

ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯವು CSV, YAML ಮತ್ತು JSON ಅನ್ನು ಸಂಸ್ಕರಿಸುವ ಸಾಧನಗಳು, HTTP ಸರ್ವರ್‌ಗಳನ್ನು ರಚಿಸುವ ಘಟಕಗಳು ಮತ್ತು ವೆಬ್‌ಸಾಕೆಟ್ ಬೆಂಬಲವನ್ನು ಒಳಗೊಂಡಂತೆ ಸಾಮಾನ್ಯ ಕಾರ್ಯಗಳ ದೊಡ್ಡ ಗುಂಪನ್ನು ಒದಗಿಸುತ್ತದೆ. ಅಭಿವೃದ್ಧಿ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ, "ಕ್ರಿಸ್ಟಲ್ ಪ್ಲೇ" ಆಜ್ಞೆಯನ್ನು ಬಳಸಲು ಅನುಕೂಲಕರವಾಗಿದೆ, ಇದು ಕ್ರಿಸ್ಟಲ್ ಭಾಷೆಯಲ್ಲಿ ಕೋಡ್‌ನ ಸಂವಾದಾತ್ಮಕ ಕಾರ್ಯಗತಗೊಳಿಸಲು ವೆಬ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು (ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಸ್ಥಳೀಯ ಹೋಸ್ಟ್:8080) ಉತ್ಪಾದಿಸುತ್ತದೆ.

ಪ್ರಮುಖ ಬದಲಾವಣೆಗಳು:

  • ಕಂಪೈಲರ್ ಅಮೂರ್ತ ವಿಧಾನದ ಅನುಷ್ಠಾನದಲ್ಲಿ ಮತ್ತು ಅದರ ವ್ಯಾಖ್ಯಾನದಲ್ಲಿ ಆರ್ಗ್ಯುಮೆಂಟ್ ಹೆಸರುಗಳ ಪತ್ರವ್ಯವಹಾರಕ್ಕಾಗಿ ಚೆಕ್ ಅನ್ನು ಸೇರಿಸಿದೆ. ಹೆಸರು ಹೊಂದಿಕೆಯಾಗದಿದ್ದಲ್ಲಿ, ಈಗ ಎಚ್ಚರಿಕೆ ನೀಡಲಾಗಿದೆ: ಅಮೂರ್ತ ವರ್ಗ FooAbstract ಅಮೂರ್ತ def foo(ಸಂಖ್ಯೆ : Int32) : Nil end class Foo < FooAbstract def foo(name : Int32) : Nil p name end end 6 | def foo(ಹೆಸರು : Int32) : Nil ^— ಎಚ್ಚರಿಕೆ: ಸ್ಥಾನಿಕ ಪ್ಯಾರಾಮೀಟರ್ 'ಹೆಸರು' ಅತಿಕ್ರಮಿಸಿದ ವಿಧಾನದ 'ಸಂಖ್ಯೆ' ನಿಯತಾಂಕಕ್ಕೆ ಅನುರೂಪವಾಗಿದೆ FooAbstract#foo(ಸಂಖ್ಯೆ : Int32), ಇದು ವಿಭಿನ್ನ ಹೆಸರನ್ನು ಹೊಂದಿದೆ ಮತ್ತು ಹೆಸರಿಸಲಾದ ಆರ್ಗ್ಯುಮೆಂಟ್ ಪಾಸಿಂಗ್ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರಬಹುದು
  • ವೇರಿಯೇಬಲ್‌ನ ಮೌಲ್ಯಕ್ಕೆ ಟೈಪ್ ಮಾಡದ ವಿಧಾನಕ್ಕೆ ಆರ್ಗ್ಯುಮೆಂಟ್ ಅನ್ನು ನಿಯೋಜಿಸುವಾಗ, ಆರ್ಗ್ಯುಮೆಂಟ್ ಅನ್ನು ಈಗ ಆ ವೇರಿಯಬಲ್‌ನ ಪ್ರಕಾರಕ್ಕೆ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ. class Foo @x : Int64 def initialize(x) @x = x # ಪ್ಯಾರಾಮೀಟರ್ x ಅನ್ನು @x end end ಎಂದು ಟೈಪ್ ಮಾಡಲಾಗುತ್ತದೆ
  • ವಿಧಾನಗಳು ಅಥವಾ ಮ್ಯಾಕ್ರೋಗಳ ನಿಯತಾಂಕಗಳಿಗೆ ಟಿಪ್ಪಣಿಗಳನ್ನು ಸೇರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಡೆಫ್ ಫೂ(@[MaybeUnused] x); ಅಂತ್ಯ # ಸರಿ
  • ಸ್ಥಿರಾಂಕಗಳನ್ನು ಸೂಚ್ಯಂಕಗಳಾಗಿ ಮತ್ತು ಟುಪಲ್‌ಗಳಲ್ಲಿ ಹೆಸರುಗಳಾಗಿ ಬಳಸಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. KEY = "s" foo = {s: "String", n: 0} foo[KEY].size ಅನ್ನು ಇರಿಸುತ್ತದೆ
  • ಫೈಲ್‌ಗಳು ಮತ್ತು ಡೈರೆಕ್ಟರಿಗಳನ್ನು ಅಳಿಸಲು ಫೈಲ್ API ಗೆ ಹೊಸ File#delete? ವಿಧಾನಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಮತ್ತು Dir#delete?, ಫೈಲ್ ಅಥವಾ ಡೈರೆಕ್ಟರಿ ಕಾಣೆಯಾಗಿದ್ದಲ್ಲಿ ತಪ್ಪು ಎಂದು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
  • File.tempfile ವಿಧಾನದ ರಕ್ಷಣೆಯನ್ನು ಬಲಪಡಿಸಲಾಗಿದೆ, ಇದು ಈಗ ಫೈಲ್ ಹೆಸರನ್ನು ರೂಪಿಸುವ ಸಾಲುಗಳಲ್ಲಿ ಶೂನ್ಯ ಅಕ್ಷರಗಳನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ.
  • ಪರಿಸರ ವೇರಿಯೇಬಲ್ NO_COLOR ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಕಂಪೈಲರ್ ಮತ್ತು ಇಂಟರ್ಪ್ರಿಟರ್ ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿ ಬಣ್ಣವನ್ನು ಹೈಲೈಟ್ ಮಾಡುವುದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.
  • ಇಂಟರ್ಪ್ರಿಟರ್ ಮೋಡ್‌ನಲ್ಲಿನ ಕೆಲಸವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಲಾಗಿದೆ.

ಮೂಲ: opennet.ru

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