Llançament del llenguatge de programació Mojo 24.3

S'ha publicat un llançament del conjunt d'eines del llenguatge de programació Mojo 24.3, que us permet compilar projectes al sistema local. Inclou components necessaris per desenvolupar aplicacions en el llenguatge Mojo, com ara un compilador, temps d'execució, un intèrpret d'ordres REPL interactiu per a la creació i execució de programes, un depurador, un complement per a l'editor de codi Visual Studio Code (VS Code) amb suport per completar l'entrada. , format de codi i sintaxi de ressaltat, mòdul per a la integració amb Jupyter per crear i executar el bloc de notes Mojo. La biblioteca estàndard de Mojo és de codi obert sota la llicència Apache 2.0, amb excepcions del projecte LLVM que permeten la barreja amb codi amb llicència GPLv2. Es preveu que el codi font del compilador estigui obert un cop s'hagi completat el disseny de l'arquitectura interna.

Simultàniament, es va llançar MAX Engine 24.3, que ofereix una plataforma per al desenvolupament d'aprenentatge automàtic. MAX Engine complementa el conjunt d'eines Mojo amb eines per desenvolupar i depurar aplicacions que utilitzen models d'aprenentatge automàtic en diversos formats (TensorFlow, PyTorch, ONNX, etc.). El SDK de Mojo i les versions de MAX Engine estan disponibles per a la plataforma. Linux и macOS.

Els canvis a Mojo 24.3 inclouen:

  • Els mòduls per treballar amb col·leccions (List, Dict, Set i Tuple) s'han actualitzat amb funcions que els fan més familiars per als usuaris familiaritzats amb el llenguatge de programació Python. S'han afegit mètodes al tipus de llista que repliquen l'API de Python, com ara pop(index), resize(new_size) i insert(index, value).
  • S'ha afegit un mètode update() al tipus Dict per actualitzar una clau/valor d'un altre Dict.
  • El tipus Tuple admet tipus només de memòria com String, la qual cosa us permet especificar "x = tup[1]" en lloc de "x = tup.get[1, Int]()" i assignar valors mitjançant "tup[1] ] = x".
  • El tipus Set proporciona suport per a mètodes amb nom que es poden utilitzar en lloc d'operadors: difference() en lloc de "-", difference_update() en lloc de "-=", intersection_update() en lloc de "&=" i update() en lloc de "|=".
  • S'ha afegit la funció reversed(), que us permet invertir l'ordre dels elements. La funció reversed() es pot utilitzar amb List, Dict i qualsevol tipus que admeti intervals. var nombres = Llista (1, 2, 3, 4, 5) per al nombre al revés (nombres): imprimir (número)
  • S'ha implementat un tret boolable que retorna True per a variables dels tipus Dict, List i Set si contenen almenys un element.
  • Suport millorat per a arguments variables. És possible definir funcions que continguin arguments tant opcionals com variables. fn variadic_arg_after_default( a: Int, b: Int = 3, *args: Int, c: Int, d: Int = 1, **kwargs: Int ): …
  • S'han afegit funcions __source_location() i __call_location() per determinar la ubicació (número de línia al codi font) de les trucades i el codi de funcions.
  • De manera similar al llenguatge Python, s'ha afegit suport per a l'argument "on" al mètode FileHandle.seek().
  • S'ha canviat el nom del tipus AnyPointer a UnsafePointer. S'ha afegit la possibilitat d'inicialitzar UnsafePointer directament des d'una referència amb el tipus Reference ("UnsafePointer(someRef)"). Per treballar amb punters UnsafePointer, s'han afegit les funcions initialize_pointee_copy, initialize_pointee_move, move_from_pointee() i move_pointee.

El llenguatge Mojo s'està desenvolupant sota el lideratge de Chris Lattner, fundador i arquitecte en cap del projecte LLVM i creador del llenguatge de programació Swift. La sintaxi de Mojo es basa en el llenguatge Python i el sistema de tipus és proper a C/C++. El projecte es presenta com un llenguatge de propòsit general que amplia les capacitats de Python amb capacitats de programació de sistemes, és adequat per a una àmplia gamma de tasques i combina la facilitat d'ús per al desenvolupament de la investigació i la creació de prototips ràpids amb l'adequació per a productes finals d'alt rendiment.

La senzillesa s'aconsegueix mitjançant l'ús de la sintaxi familiar de Python, i el desenvolupament de productes finals es facilita per la capacitat de compilar en codi màquina, mecanismes segurs per a la memòria i l'ús d'eines d'acceleració de maquinari. Per aconseguir un alt rendiment, la paral·lelització dels càlculs és compatible amb tots els recursos de maquinari de sistemes heterogenis disponibles al sistema, com ara GPU, acceleradors especialitzats per a l'aprenentatge automàtic i instruccions de processadors vectorials (SIMD). Per a càlculs intensius, la paral·lelització i la utilització de tots els recursos informàtics permet aconseguir un rendiment superior a les aplicacions C/C++.

L'idioma admet la mecanografia estàtica i les funcions de seguretat de memòria de baix nivell que recorden Rust, com ara el seguiment de la vida útil de les referències i el verificador de préstecs. Al mateix temps, l'idioma també ofereix oportunitats per al treball de baix nivell, per exemple, és possible accedir directament a la memòria en mode no segur mitjançant el tipus Pointer, trucar a instruccions SIMD individuals o accedir a extensions de maquinari com TensorCores i AMX.

Mojo es pot utilitzar tant en mode d'interpretació mitjançant JIT, com per a la compilació en fitxers executables (AOT, abans del temps). El compilador té tecnologies modernes incorporades per a l'optimització automàtica, la memòria cau i la compilació distribuïda. El codi font en llenguatge Mojo es converteix en codi intermedi de baix nivell MLIR (Multi-Level Intermediate Representation), desenvolupat pel projecte LLVM. El compilador us permet utilitzar diversos backends que admeten MLIR per generar codi màquina.

Font: opennet.ru

Compreu allotjament fiable per a llocs amb protecció DDoS, servidors VPS VDS 🔥 Compra allotjament web fiable amb protecció DDoS, servidors VPS VDS | ProHoster