ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆ Haxe 4.0

ಲಭ್ಯವಿದೆ ಟೂಲ್ಕಿಟ್ ಬಿಡುಗಡೆ ಹ್ಯಾಕ್ಸ್ 4.0, ಇದು ಬಲವಾದ ಟೈಪಿಂಗ್, ಕ್ರಾಸ್-ಕಂಪೈಲರ್ ಮತ್ತು ಫಂಕ್ಷನ್‌ಗಳ ಪ್ರಮಾಣಿತ ಲೈಬ್ರರಿಯೊಂದಿಗೆ ಅದೇ ಹೆಸರಿನ ಬಹು-ಮಾದರಿ ಉನ್ನತ ಮಟ್ಟದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯನ್ನು ಒಳಗೊಂಡಿದೆ. ಯೋಜನೆಯು C++, HashLink/C, JavaScript, C#, Java, PHP, Python ಮತ್ತು Lua ಗೆ ಭಾಷಾಂತರವನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ, ಜೊತೆಗೆ JVM, HashLink/JIT, Flash ಮತ್ತು Neko ಬೈಟ್‌ಕೋಡ್‌ಗೆ ಸಂಕಲನ, ಪ್ರತಿ ಗುರಿ ವೇದಿಕೆಯ ಸ್ಥಳೀಯ ಸಾಮರ್ಥ್ಯಗಳಿಗೆ ಪ್ರವೇಶದೊಂದಿಗೆ. ಕಂಪೈಲರ್ ಕೋಡ್ ವಿತರಿಸುವವರು GPLv2 ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ, ಮತ್ತು ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯ ಮತ್ತು Haxe ಗಾಗಿ ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ ನೆಕೊ MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ.

ಭಾಷೆ ಆಗಿದೆ ಅಭಿವ್ಯಕ್ತಿ-ಆಧಾರಿತ ಬಲವಾದ ಟೈಪಿಂಗ್ ಜೊತೆಗೆ. ಆಬ್ಜೆಕ್ಟ್-ಓರಿಯೆಂಟೆಡ್, ಜೆನೆರಿಕ್ ಮತ್ತು ಕ್ರಿಯಾತ್ಮಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಪರಿಕಲ್ಪನೆಗಳನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ.
Haxe ಸಿಂಟ್ಯಾಕ್ಸ್ ECMAScript ಗೆ ಹತ್ತಿರದಲ್ಲಿದೆ ಮತ್ತು ವಿಸ್ತರಿಸುತ್ತದೆ ಅದರ ವೈಶಿಷ್ಟ್ಯಗಳಾದ ಸ್ಟ್ಯಾಟಿಕ್ ಟೈಪಿಂಗ್, ಆಟೊಟೈಪ್ ಇನ್ಫರೆನ್ಸ್, ಪ್ಯಾಟರ್ನ್ ಮ್ಯಾಚಿಂಗ್, ಜೆನೆರಿಕ್ಸ್, ಲೂಪ್‌ಗಳಿಗಾಗಿ ಪುನರಾವರ್ತಕ-ಆಧಾರಿತ, AST ಮ್ಯಾಕ್ರೋಗಳು, GADT (ಸಾಮಾನ್ಯೀಕೃತ ಬೀಜಗಣಿತದ ಡೇಟಾ ಪ್ರಕಾರಗಳು), ಅಮೂರ್ತ ಪ್ರಕಾರಗಳು, ಅನಾಮಧೇಯ ರಚನೆಗಳು, ಸರಳೀಕೃತ ರಚನೆಯ ವ್ಯಾಖ್ಯಾನಗಳು, ಷರತ್ತುಬದ್ಧ ಸಂಕಲನ ಅಭಿವ್ಯಕ್ತಿಗಳು , ಕ್ಷೇತ್ರಕ್ಕೆ ಲಗತ್ತಿಸುವ ಮೆಟಾಡೇಟಾ , ತರಗತಿಗಳು ಮತ್ತು ಅಭಿವ್ಯಕ್ತಿಗಳು, ಸ್ಟ್ರಿಂಗ್ ಇಂಟರ್‌ಪೋಲೇಶನ್ ('ನನ್ನ ಹೆಸರು $ಹೆಸರು'), ಪ್ಯಾರಾಮೀಟರ್‌ಗಳನ್ನು ಟೈಪ್ ಮಾಡಿ ("ಹೊಸ Main‹Sring›('foo')"), ಮತ್ತು ಇನ್ನೂ ಹೆಚ್ಚು.

ವರ್ಗ ಪರೀಕ್ಷೆ {
ಸ್ಥಿರ ಕಾರ್ಯ ಮುಖ್ಯ() {
var ಜನರು = [
"ಎಲಿಜಬೆತ್" => "ಪ್ರೋಗ್ರಾಮಿಂಗ್",
"ಜೋಯಲ್" => "ವಿನ್ಯಾಸ"
];

ಗಾಗಿ (people.keys ನಲ್ಲಿ ಹೆಸರು()) {
var ಕೆಲಸ = ಜನರು[ಹೆಸರು];
ಟ್ರೇಸ್ ('$ಹೆಸರು ಜೀವನಕ್ಕಾಗಿ $ಉದ್ಯೋಗವನ್ನು ಮಾಡುತ್ತದೆ!');
}
}
}

ಮುಖ್ಯ ನಾವೀನ್ಯತೆಗಳು ಆವೃತ್ತಿ 4.0:

  • "ಸ್ಟ್ರಿಂಗ್->ಇಂಟ್->ಬೂಲ್" ಬದಲಿಗೆ "(ಹೆಸರು:ಸ್ಟ್ರಿಂಗ್, ವಯಸ್ಸು:ಇಂಟ್)->ಬೂಲ್" ಅಥವಾ "(ಸ್ಟ್ರಿಂಗ್, ಇಂಟ್)->ಬೂಲ್" ಪ್ರಕಾರವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಹೊಸ ಸಿಂಟ್ಯಾಕ್ಸ್.
  • ಬಾಣದ ಕಾರ್ಯ ಸಿಂಟ್ಯಾಕ್ಸ್ "(a, b) -> a + b" ಬದಲಿಗೆ "function(a, b) return a + b" ಆಗಿದೆ.
  • ಶೂನ್ಯ ಮೌಲ್ಯಗಳ ಬಳಕೆಗೆ ಸಂಬಂಧಿಸಿದ ಸಮಸ್ಯೆಗಳ ವಿರುದ್ಧ ರಕ್ಷಣೆ (ಪ್ರಾಯೋಗಿಕ ವೈಶಿಷ್ಟ್ಯ, ಕೆಲವು ಕ್ಷೇತ್ರಗಳು, ತರಗತಿಗಳು ಅಥವಾ ಪ್ಯಾಕೇಜ್‌ಗಳಿಗೆ ಐಚ್ಛಿಕವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ).
  • "ಅಂತಿಮ" ಕೀವರ್ಡ್ ವರ್ಗ ಕ್ಷೇತ್ರಗಳು ಮತ್ತು ಬದಲಾಗದ ಸ್ಥಳೀಯ ವೇರಿಯಬಲ್‌ಗಳಿಗೆ ಆಗಿದೆ. "ಅಂತಿಮ" ಅನ್ನು ಅನುವಂಶಿಕತೆಯಿಂದ ಅತಿಕ್ರಮಿಸುವುದನ್ನು ತಡೆಯಲು ಮತ್ತು ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯಲಾಗದ ವರ್ಗಗಳು/ಇಂಟರ್‌ಫೇಸ್‌ಗಳಿಗೆ ಕಾರ್ಯಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಸಹ ಬಳಸಬಹುದು.
  • ಬೆಂಬಲ Neko ಹೊರತುಪಡಿಸಿ ಎಲ್ಲಾ ಸಂಕಲನ ಗುರಿಗಳಲ್ಲಿ ಮೂಲ ಪ್ರಕಾರ "ಸ್ಟ್ರಿಂಗ್" ಗಾಗಿ ಯುನಿಕೋಡ್ ಮಾನದಂಡ.
  • ಅಂತರ್ನಿರ್ಮಿತ ಇಂಟರ್ಪ್ರಿಟರ್ ಅನ್ನು ಮೊದಲಿನಿಂದ ಪುನಃ ಬರೆಯಲಾಗಿದೆ, ಅದು ಈಗ ಹೆಸರಿನಲ್ಲಿ ಬರುತ್ತದೆ ಇವಾಲ್. ಹೊಸ ಇಂಟರ್ಪ್ರಿಟರ್‌ಗೆ ಧನ್ಯವಾದಗಳು, ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು ಮತ್ತು ಮ್ಯಾಕ್ರೋಗಳು ಹೆಚ್ಚು ವೇಗವಾಗಿ ಚಲಿಸುತ್ತವೆ. ಇಂಟರಾಕ್ಟಿವ್ ಡೀಬಗ್ ಮೋಡ್ ಬೆಂಬಲಿತವಾಗಿದೆ.
  • ಸಂಕಲನಕ್ಕಾಗಿ ಹೊಸ ಗುರಿ ವ್ಯವಸ್ಥೆ (ಗುರಿ) ಹ್ಯಾಶ್ಲಿಂಕ್ - Haxe ಗಾಗಿ ವಿಶೇಷವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಉನ್ನತ-ಕಾರ್ಯಕ್ಷಮತೆಯ ರನ್‌ಟೈಮ್, JIT ಅಥವಾ C ಗಾಗಿ ಬೈಟ್‌ಕೋಡ್‌ಗೆ ಸಂಕಲನವನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ, C ನೊಂದಿಗೆ ಸುಲಭವಾದ ಏಕೀಕರಣವನ್ನು ಹೊಂದಿದೆ, ಜೊತೆಗೆ ಕಡಿಮೆ-ಮಟ್ಟದ ಸಂಖ್ಯಾ ಪ್ರಕಾರಗಳು ಮತ್ತು ಪಾಯಿಂಟರ್‌ಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿದೆ.
  • ಹೊಸ JVM ಗುರಿ - ಜಾವಾದಲ್ಲಿ ಟಾರ್ಗೆಟ್ ಮಾಡುವಾಗ "-D jvm" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ಜಾವಾ ಕೋಡ್ ಸಂಕಲನ ಹಂತವನ್ನು ಬಿಟ್ಟುಬಿಡುವ ಮೂಲಕ jvm ಬೈಟ್‌ಕೋಡ್ ಅನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
  • ಫಂಕ್ಷನ್‌ಗಳು ಅಥವಾ ಕನ್‌ಸ್ಟ್ರಕ್ಟರ್‌ಗಳನ್ನು ಕರೆಯುವ ಹಂತದಲ್ಲಿ ಇನ್‌ಲೈನ್-ನಿಯೋಜನೆ ಮಾಡುವ ಸಾಮರ್ಥ್ಯ, ಅವುಗಳು ಹಾಗೆ ಘೋಷಿಸದಿದ್ದರೂ ಸಹ.
  • ಸೇರ್ಪಡೆ ಸಾಧ್ಯತೆ ಸ್ಥಿರ ವಿಸ್ತರಣೆಗಳು "@:using(path.ToExtension)" ಬಳಸಿಕೊಂಡು ಒಂದು ಪ್ರಕಾರವನ್ನು (ಉದಾಹರಣೆಗೆ "enum") ಘೋಷಿಸುವಾಗ.
  • ಅಮೂರ್ತ ಪ್ರಕಾರಗಳು ಈಗ "obj.foo = bar" ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಮರುಲೋಡ್ ಮಾಡಲು "@:op(ab)" ಆಪರೇಟರ್‌ನ "ಸೆಟ್" ಆವೃತ್ತಿಯನ್ನು ಬೆಂಬಲಿಸುತ್ತವೆ.
  • "for" ಲೂಪ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಈಗ ಕೀ-ಮೌಲ್ಯ ಪುನರಾವರ್ತನೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ: "for (key => ಸಂಗ್ರಹದಲ್ಲಿರುವ ಮೌಲ್ಯ) {}".
  • ಎಕ್ಸ್‌ಪ್ರೆಶನ್‌ಗಳಲ್ಲಿ xml ತರಹದ ಮಾರ್ಕ್‌ಅಪ್ ಅನ್ನು ಬಳಸಲು ಬೆಂಬಲ: “var a = ‹hi/›;”. ಸದ್ಯಕ್ಕೆ, ಈ ವೈಶಿಷ್ಟ್ಯವು ಮ್ಯಾಕ್ರೋಗಳೊಂದಿಗೆ ಪಾರ್ಸಿಂಗ್ ಮಾಡಲು ಮಾತ್ರ ಲಭ್ಯವಿದೆ ಮತ್ತು ವಿನ್ಯಾಸ ಹಂತದಲ್ಲಿದೆ.
  • ಅನಾಮಧೇಯ ರಚನೆಯ ಪ್ರಕಾರಗಳ "ಪೂರ್ಣ" ಸಂಕೇತದಲ್ಲಿ ಐಚ್ಛಿಕ ಕ್ಷೇತ್ರಗಳ ಸಿಂಟ್ಯಾಕ್ಸ್: "{var ?f:Int; }" (ಚಿಕ್ಕ "{ ?f:Int }" ಗೆ ಪರ್ಯಾಯವಾಗಿದೆ).
  • Enum ಮೌಲ್ಯಗಳು ಈಗ ಫಂಕ್ಷನ್ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳಿಗೆ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯಗಳಾಗಿರಬಹುದು: "ಫಂಕ್ಷನ್ ಫೂ‹T›(ಆಯ್ಕೆ:ಆಯ್ಕೆ‹T› = ಯಾವುದೂ ಇಲ್ಲ)".
  • "enum ಅಮೂರ್ತ ಹೆಸರು(ಮೂಲ ಪ್ರಕಾರ) {}" ಸಿಂಟ್ಯಾಕ್ಸ್‌ಗೆ ಇನ್ನು ಮುಂದೆ "enum" ನಲ್ಲಿ "@:" ಪೂರ್ವಪ್ರತ್ಯಯ ಅಗತ್ಯವಿಲ್ಲ.
  • ಅಮೂರ್ತ ಎಣಿಕೆಗಳಿಗೆ ಸ್ವಯಂ-ಸಂಖ್ಯೆ:

    enum ಅಮೂರ್ತ ಫೂ(Int) {
    var A; // 0
    ವರ್ ಬಿ; // 1
    }
    enum ಅಮೂರ್ತ ಪಟ್ಟಿ(ಸ್ಟ್ರಿಂಗ್) {
    var A; // "ಎ"
    ವರ್ ಬಿ; // "ಬಿ"
    }

  • "ಬಾಹ್ಯ" ಕೀವರ್ಡ್‌ಗೆ ಇನ್ನು ಮುಂದೆ "@:" ಪೂರ್ವಪ್ರತ್ಯಯದ ಬಳಕೆಯ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.
  • ಆಯ್ಕೆಯನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ "ಅಳವಡಿಸುತ್ತದೆ ಸ್ಟ್ರಿಂಗ್‌ಗಳ ಮೂಲಕ ವರ್ಗ ಕ್ಷೇತ್ರಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಡೈನಾಮಿಕ್". ಬಾಹ್ಯ ತರಗತಿಗಳಿಗೆ ಅಥವಾ ಅಮೂರ್ತ ಪ್ರಕಾರದ ಮೂಲಕ ಅನುಷ್ಠಾನದ ಮೂಲಕ ಲಭ್ಯವಿದೆ.
  • ಪ್ರಕಾರದ ಛೇದಕಕ್ಕಾಗಿ "A & B" ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಪ್ರಸ್ತುತ ಅನಾಮಧೇಯ ರಚನೆಗಳು ಮತ್ತು ಟೈಪ್ ಪ್ಯಾರಾಮೀಟರ್ ನಿರ್ಬಂಧಗಳಿಗೆ ಮಾತ್ರ ಅನ್ವಯಿಸುತ್ತದೆ. ಹಳೆಯ ನಿರ್ಬಂಧದ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ.
  • ಖಾಲಿ "ನಕ್ಷೆ" ನಿದರ್ಶನಗಳನ್ನು ರಚಿಸುವುದು "var map:Map‹Int, String› = [];" ಸಿಂಟ್ಯಾಕ್ಸ್ ಮೂಲಕ ಲಭ್ಯವಿದೆ. ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಹೋಲುತ್ತದೆ.
  • "haxe.ds.ReadOnlyArray" ಡೇಟಾ ರಚನೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಮೆಟಾಡೇಟಾ ಈಗ ನೇಮ್‌ಸ್ಪೇಸ್‌ಗಳನ್ನು ಹೊಂದಬಹುದು (“@:prefix.name ಫಂಕ್ಷನ್() {…}”). ಅದೇ ರೀತಿ ವ್ಯಾಖ್ಯಾನಗಳೊಂದಿಗೆ: "# if (some.flag ... #end".
  • IDE ಗಳಿಗಾಗಿ ಹೊಸ ಸೇವಾ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಬಳಸಲಾಗಿದೆ VSCode ಗಾಗಿ ಪ್ಲಗಿನ್.
  • ವೆಬ್ API ಗಳಿಗಾಗಿ ಬಾಹ್ಯ ವ್ಯಾಖ್ಯಾನಗಳನ್ನು (ಬಾಹ್ಯ) ನವೀಕರಿಸಲಾಗಿದೆ ಮತ್ತು ಕಾಣೆಯಾದವುಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ.

ಮೂಲ: opennet.ru

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