Publikimi i gjuhës së programimit Mojo 24.3

ËshtĂ« publikuar versioni 24.3 i mjeteve tĂ« gjuhĂ«s sĂ« programimit Mojo, i cili lejon kompilimin e projekteve nĂ« sistemin lokal. Ky paketĂ« pĂ«rfshin komponentĂ«t e nevojshĂ«m pĂ«r zhvillimin e aplikacioneve nĂ« gjuhĂ«n Mojo, pĂ«rfshirĂ« kompiluesin, runtime, njĂ« ndĂ«rfaqe REPL interaktive pĂ«r ndĂ«rtimin dhe ekzekutimin e programeve, debugguerin, si dhe njĂ« shtesĂ« pĂ«r redaktorin e kodit Visual Studio Code (VS Code) me mbĂ«shtetje pĂ«r autokompletimin e hyrjes, formatimin e kodit dhe theksimin e sintaksĂ«s, modul pĂ«r integrimin me Jupyter pĂ«r ndĂ«rtimin dhe ekzekutimin e Mojo notebook. Kodet burimore tĂ« bibliotekĂ«s standarde Mojo janĂ« tĂ« hapura nĂ«n licencĂ«n Apache 2.0 me pĂ«rjashtime nga projekti LLVM, qĂ« lejojnĂ« pĂ«rzierjen me kodin sipas licencĂ«s GPLv2. Kodi burimor i kompiluesit planifikohet tĂ« hapet pas pĂ«rfundimit tĂ« projektimit tĂ« arkitekturĂ«s sĂ« brendshme.

Njëkohësisht është formuar versioni 24.3 i motorit MAX Engine, që ofron një platformë për zhvillim në fushën e mësimit të makinës. MAX Engine plotëson mjete për Mojo me mjete për zhvillimin dhe debuggimin e aplikacioneve që përdorin modele të mësimit të makinës në formate të ndryshme (TensorFlow, PyTorch, ONNX etj.). Ndërtimet e Mojo SDK dhe MAX Engine janë përgatitur për platformën Linux dhe macOS.

Ndër ndryshimet në Mojo 24.3:

  • NĂ« modulet pĂ«r punĂ«n me koleksionet (List, Dict, Set dhe Tuple) janĂ« shtuar mundĂ«si qĂ« i bĂ«jnĂ« ato mĂ« tĂ« njohura pĂ«r pĂ«rdoruesit e njohur me gjuhĂ«n e programimit Python. NĂ« tipin List janĂ« shtuar metoda qĂ« pĂ«rsĂ«risin API-nĂ« e Python, siç janĂ« pop(index), resize(new_size) dhe insert(index, value).
  • NĂ« tipin Dict Ă«shtĂ« shtuar metoda update() pĂ«r pĂ«rditĂ«simin e çelĂ«sit/vlerĂ«s nga njĂ« tjetĂ«r Dict.
  • NĂ« tipin Tuple Ă«shtĂ« siguruar puna me tipa qĂ« ruhen vetĂ«m nĂ« memorje, siç Ă«shtĂ« String, qĂ« lejon tĂ« specifikohet "x = tup[1]" nĂ« vend tĂ« "x = tup.get[1, Int]()" dhe tĂ« caktohen vlera pĂ«rmes "tup[1] = x".
  • NĂ« tipin Set Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r metoda tĂ« emĂ«ruara qĂ« mund tĂ« pĂ«rdoren nĂ« vend tĂ« operatorĂ«ve: difference() nĂ« vend tĂ« "-", difference_update() nĂ« vend tĂ« "-=", intersection_update() nĂ« vend tĂ« "&=", dhe update() nĂ« vend tĂ« "|=".
  • ËshtĂ« shtuar funksioni reversed(), i cili lejon ndryshimin e rendit tĂ« elementeve nĂ« tĂ« kundĂ«rt. Funksioni reversed() mund tĂ« pĂ«rdoret me List, Dict dhe çdo lloj tjetĂ«r qĂ« mbĂ«shtet intervale vlerash. var numbers = List(1, 2, 3, 4, 5) for number in reversed(numbers): print(number)
  • ËshtĂ« realizuar tipazhi Boolable, qĂ« kthen pĂ«r variablat me tipat Dict, List dhe Set vlerĂ«n True, nĂ«se ato pĂ«rmbajnĂ« tĂ« paktĂ«n njĂ« element.
  • ËshtĂ« pĂ«rmirĂ«suar mbĂ«shtetje pĂ«r argumentet variative. ËshtĂ« ofruar mundĂ«sia pĂ«r tĂ« pĂ«rcaktuar funksione qĂ« pĂ«rmbajnĂ« njĂ«kohĂ«sisht si argumente tĂ« domosdoshme, ashtu edhe variative. fn variadic_arg_after_default( a: Int, b: Int = 3, *args: Int, c: Int, d: Int = 1, **kwargs: Int ): 

  • JanĂ« shtuar funksionet __source_location() dhe __call_location() pĂ«r tĂ« pĂ«rcaktuar pozitat (numri i rreshtit nĂ« kodin burimor) tĂ« thirrjeve tĂ« funksioneve dhe kodit.
  • NĂ« metodĂ«n FileHandle.seek() Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r argumentin "whence" nĂ« pĂ«rputhje me gjuhĂ«n Python.
  • Tipi AnyPointer Ă«shtĂ« rinovuar nĂ« UnsafePointer. ËshtĂ« shtuar mundĂ«sia pĂ«r inicializimin e UnsafePointer drejtpĂ«rsĂ«drejti nga njĂ« referencĂ« me tipin Reference ("UnsafePointer(someRef)"). PĂ«r punĂ«n me treguesit UnsafePointer janĂ« shtuar funksionet initialize_pointee_copy, initialize_pointee_move, move_from_pointee() dhe move_pointee.

Gjuha Mojo po zhvillohet nën udhëheqjen e Chris Lattner, themeluesit dhe arkitektit kryesor të projektit LLVM dhe krijuesit të gjuhës së programimit Swift. Sintaksa e Mojo bazohet në gjuhën Python, ndërsa sistemi i tipeve është i afërt me C/C++. Projekti prezantohet si një gjuhë e përgjithshme, që zgjeron mundësitë e gjuhës Python me mjete për programim sistemor, e përshtatshme për një gamë të gjerë detyrash dhe shfaq lehtësinë e përdorimit për zhvillimet kërkimore dhe krijimin e prototipeve të shpejta me përshtatshmëri për formimin e produkteve përfundimtare me performancë të lartë.

Thjeshtësia arrihet duke përdorur sintaksën e njohur të gjuhës Python, ndërsa zhvillimi i produkteve përfundimtare përfshin mundësinë e kompajlimit në kodin makinerik, mekanizmat për punën e sigurt me memorjen dhe aktivizimin e mjeteve për përshpejtimin harduerik të llogaritjeve. Për të arritur një performancë të lartë, mbështetet paralelizimi i llogaritjeve me angazhimin e të gjithë burimeve harduerike të disponueshme në sistemet heterogjene, si GPU-të, përshpejtuesit e specializuar për mësimin automat dhe komandat e procesorëve vektorialë (SIMD). Gjatë llogaritjeve intensive, paralelizimi dhe angazhimi i të gjithë burimeve të llogaritjes mundëson të arrihet një performancë që e tejkalon aplikacionet në C/C++.

Gjuha mbështet tipizimin statik dhe mjetet për një punë të sigurt në nivel të ulët me memorjen, duke kujtuar mundësitë e gjuhës Rust, siç janë gjurmimi i kohëzgjatjes së referencave dhe kontrolli i huazimit të variablave (borrow checker). Megjithatë, gjuhës i janë të disponueshme edhe mundësitë për punë në nivel të ulët, për shembull, është e mundur qasja e drejtpërdrejtë në memorje në modalitetin unsafe duke përdorur tipin Pointer, thirrja e instrukcioneve SIMD të veçanta ose qasja në zgjerimet harduerike, si TensorCores dhe AMX.

Mojo mund të përdoret si në modalitetin e interpretimit me JIT, ashtu edhe për kompilimin në skedarë ekzekutivë (AOT, ahead-of-time). Në kompilator janë të ndërtuara teknologji moderne për optimizimin automatike, caching dhe kompilim të shpërndarë. Kodi burimor në gjuhën Mojo shndërrohet në kodin e ulët të ndërmjetëm MLIR (Multi-Level Intermediate Representation), që zhvillohet nga projekti LLVM. Kompilatori lejon përdorimin e backend-eve të ndryshme për gjenerimin e kodit të makinës që mbështesin MLIR.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster