የፕሮግራም አወጣጥ ቋንቋ Haxe 4.0

ይገኛል የመሳሪያ ስብስብ መለቀቅ ሃክስ 4.0, ይህም ባለ ብዙ ፓራዳይም ከፍተኛ ደረጃ ፕሮግራሚንግ ቋንቋን ከጠንካራ ትየባ ጋር፣ መስቀል አቀናባሪ እና መደበኛ የተግባር ቤተ-መጽሐፍትን ያካትታል። ኘሮጀክቱ ወደ C++፣ HashLink/C፣ JavaScript፣ C#፣ Java፣ PHP፣ Python እና Lua እንዲሁም JVM፣ HashLink/JIT፣ Flash እና Neko ባይትኮድ ማጠናቀር፣ የእያንዳንዱን የዒላማ መድረክ ተወላጅ አቅም ማግኘትን ይደግፋል። የማጠናከሪያ ኮድ የተሰራጨው በ በ GPLv2 ፍቃድ እና መደበኛ ቤተ-መጽሐፍት እና ለሃክስ የተሰራ ምናባዊ ማሽን ኔኮ በ MIT ፍቃድ.

ቋንቋ ነው። መግለጫ-ተኮር በጠንካራ ትየባ. ነገር-ተኮር፣ አጠቃላይ እና ተግባራዊ የፕሮግራም ፅንሰ-ሀሳቦች ይደገፋሉ።
Haxe አገባብ ወደ ECMAScript እና ቅርብ ነው። ያሰፋል እንደ የማይንቀሳቀስ ትየባ፣ አውቶታይፕ ኢንፈረንስ፣ የስርዓተ ጥለት ማዛመድ፣ ጀነሬክቶች፣ ድግግሞሹ ለ loops፣ AST ማክሮዎች፣ GADT (አጠቃላይ የአልጀብራ የውሂብ አይነቶች)፣ የአብስትራክት አይነቶች፣ የማይታወቁ አወቃቀሮች፣ ቀላል የአደራደር ፍቺዎች፣ ሁኔታዊ የማጠናቀር መግለጫዎች፣ ሜታዳታን ከመስኮዎች ጋር ማያያዝ ፣ ክፍሎች እና አገላለጾች፣ የሕብረቁምፊ ግንኙነት ('ስሜ $name ነው')፣ ግቤቶችን ይተይቡ ("አዲስ ዋና ‹ሕብረቁምፊ›('foo')")፣ እና ብዙ ተጨማሪ.

የክፍል ሙከራ {
የማይንቀሳቀስ ተግባር ዋና() {
var ሰዎች = [
"ኤልዛቤት" => "ፕሮግራም",
"ኢዩኤል" => "ንድፍ"
];

ለ (ስም በ people.keys()) {
var ሥራ = ሰዎች [ስም];
መከታተያ('$ ስም ለኑሮ $ ስራ ይሰራል!');
}
}
}

ዋና ፈጠራዎች ስሪት 4.0:

  • የተግባር አይነትን የሚገልጽ አዲስ አገባብ "(ስም: ሕብረቁምፊ, ዕድሜ: ኢንት) -> ቡል" ወይም "(ሕብረቁምፊ, ኢንት) -> ቡል" ከ "ሕብረቁምፊ -> ውስጠ-> ቡል" ይልቅ.
  • የቀስት ተግባር አገባብ "(a, b) -> a + b" ከ "ተግባር(a, b) መመለስ a + b" ይልቅ ነው.
  • ከኑል እሴቶች አጠቃቀም ጋር ከተያያዙ ችግሮች መከላከል (የሙከራ ባህሪ ፣ እንደ አማራጭ ለተወሰኑ መስኮች ፣ ክፍሎች ወይም ጥቅሎች የነቃ)።
  • "የመጨረሻ" ቁልፍ ቃል ለክፍል መስኮች እና የማይለወጡ የአካባቢ ተለዋዋጮች ነው። “የመጨረሻ” በውርስ እንዳይገለበጡ ለመከላከል ተግባራትን እና ውርስ ለማይችሉ ክፍሎች/በይነገጽ ለመግለጥም ሊያገለግል ይችላል።
  • ድጋፍ የዩኒኮድ ደረጃ ለ ቤዝ አይነት "ሕብረቁምፊ" በሁሉም የተጠናቀሩ ዒላማዎች ላይ Neko በስተቀር.
  • አብሮ የተሰራ አስተርጓሚ ከባዶ የተጻፈ፣ እሱም አሁን በስሙ ይመጣል ኢቫል. ለአዲሱ አስተርጓሚ ምስጋና ይግባውና ስክሪፕቶች እና ማክሮዎች በጣም በፍጥነት ይሰራሉ። በይነተገናኝ ማረም ሁነታ ይደገፋል።
  • አዲስ ዒላማ ሥርዓት ለማጠናቀር (ዒላማ) ሃሽሊንክ - ለሀክ ተብሎ የተነደፈ ከፍተኛ አፈጻጸም ያለው የሩጫ ጊዜ፣ ለጂአይቲ ወይም ለሲ ባይት ኮድ ማጠናቀርን የሚደግፍ፣ ከ C ጋር ቀላል ውህደት ያለው፣ እንዲሁም ዝቅተኛ ደረጃ ያላቸው የቁጥር አይነቶች እና ጠቋሚዎች መዳረሻ አለው።
  • አዲስ JVM ኢላማ - በጃቫ ውስጥ ኢላማ ሲያደርጉ የ “-D jvm” ባንዲራ በመጨመር የጃቫ ኮድ ማጠናቀር ደረጃን በመዝለል jvm ባይት ኮድ እንዲያመነጩ ይፈቅድልዎታል።
  • ተግባራቶች ወይም ግንበኞች በሚጠሩበት ቦታ ላይ በመስመር ላይ የማሰማራት ችሎታ ፣ ምንም እንኳን እንደዚያ ባይገለጽም።
  • የማካተት እድል የማይንቀሳቀሱ ቅጥያዎች "@: በመጠቀም(መንገድ.ToExtension)" በመጠቀም አይነት (እንደ "enum" ያሉ) ሲያውጅ።
  • የአብስትራክት አይነቶች አሁን የ"obj.foo = bar" አገላለጾችን እንደገና ለመጫን የ "@:op(ab)" ኦፕሬተርን "ስብስብ" ስሪት ይደግፋሉ።
  • የ"ለ" loop አገባብ አሁን የቁልፍ እሴት መደጋገምን ይደግፋል፡ "ለ(ቁልፍ=በስብስብ ውስጥ ያለ እሴት) {}"።
  • በገለፃዎች ውስጥ xml-የሚመስል ምልክት ማድረጊያን ለመጠቀም ድጋፍ: "var a = ‹hi/›;". በአሁኑ ጊዜ ይህ ባህሪ ከማክሮዎች ጋር ለመተንተን ብቻ የሚገኝ እና በንድፍ ደረጃ ላይ ነው.
  • የማይታወቁ የመዋቅር ዓይነቶች “ሙሉ” መግለጫ ውስጥ የአማራጭ መስኮች አገባብ፡ “{ var?f:Int; }" (ከአጭሩ "{?f:Int }" ሌላ አማራጭ)።
  • የኢነም ዋጋዎች አሁን ለተግባር ነጋሪ እሴቶች ሊሆኑ ይችላሉ፡ "ተግባር foo‹T›(አማራጭ፡አማራጭ‹T› = የለም)።
  • የ"enum abstract Name(BasicType) {}" አገባብ ከአሁን በኋላ የ"@:" ቅድመ ቅጥያ በ"enum" ውስጥ አያስፈልግም።
  • ለአብስትራክት ቁጥሮች ራስ-ሰር ቁጥር

    enum abstract Foo(Int) {
    ቫር ኤ; // 0
    var B; //1
    }
    enum አብስትራክት ባር(ሕብረቁምፊ) {
    ቫር ኤ; // "ሀ"
    var B; // "ቢ"
    }

  • የ"ውጫዊ" ቁልፍ ቃል ከአሁን በኋላ የ"@:" ቅድመ ቅጥያ መጠቀምን አይፈልግም።
  • አማራጩን አስወግዷል"መሣሪያዎች ተለዋዋጭ" የክፍል መስኮችን በሕብረቁምፊዎች ለመድረስ። ለውጫዊ ክፍሎች ወይም በአብስትራክት ዓይነት በመተግበር ይገኛል።
  • ለአይነት መስቀለኛ መንገድ የ"A & B" አገባብ ተጨምሯል፣ እሱም በአሁኑ ጊዜ የማይታወቁ መዋቅሮችን እና የመለኪያ ገደቦችን ይተይቡ። የድሮው ገደብ አገባብ ተወግዷል።
  • ባዶ "ካርታ" ምሳሌዎችን መፍጠር በ "var map: Map‹Int, String› = [];" አገባብ በኩል ይገኛል። ከድርድር ጋር ተመሳሳይ።
  • የታከለ የውሂብ መዋቅር "haxe.ds.ReadOnlyArray"።
  • ዲበ ውሂብ አሁን የስም ክፍተቶች ሊኖሩት ይችላል ("@:prefix.name ተግባር() {…}")። በተመሳሳይ ሁኔታ ከትርጓሜዎች ጋር፡ "#ከሆነ (አንዳንድ ባንዲራ ... #መጨረሻ"
  • በ ውስጥ ጥቅም ላይ ለዋለ አይዲኢዎች አዲስ የአገልግሎት ፕሮቶኮል ተሰኪ ለ VSCcode.
  • ለድር APIs የተዘመኑ ውጫዊ ትርጓሜዎች (ውጫዊ) እና የጎደሉትን አክለዋል።

ምንጭ: opennet.ru

አስተያየት ያክሉ