Mojo

Mojo
编程范型多范型指令式(为主),函数式泛型
语言家族Python
設計者克里斯·拉特納
實作者Modular公司
发行时间2023年,​11個月前​(2023
当前版本
  • 24.5.0(2024年9月13日;穩定版本)[1]
編輯維基數據鏈接
型態系統
操作系统跨平臺
許可證专有
文件扩展名.🔥(火焰emoji/U+1F525)、.mojo
網站www.modular.com/mojo
啟發語言
PythonCythonCC++RustSwiftZig

Mojo是由Modular公司开发的一种基于MLIR编译框架英语MLIR (software)编程语言,旨在为人工智能等领域的软件开发提供统一的编程框架。[2][3][4][5][6][3][7][8]

Mojo语言为Python语言超集[7][9],故也被称为Python++ 。同时,它还具有C++的速度与Rust的安全性。[10][5][11][12][13][2][14]

Mojo语言于2023年5月推出,最初仅能在浏览器的Jupyter笔记本中使用[3][15],2023年9月起开始提供Linux本地版本。[16]Modular公司团队还开发了支持Mojo语言的Visual Studio Code扩展。[17]

原始设计与开发

2022年,Swift语言创始人克里斯·拉特纳Google机器学习产品经理蒂姆·戴维斯(Tim Davis)共同创立了Modular公司。[18]2022年9月,Modular公司在内部发布了Mojo的初始版本[19],支持MLIR编译器框架提供的高级编译功能。[3][20]

Mojo语言的类型系统是同时包含静态类型和动态类型的混合系统,开发者可以为其编写的函数自由选择是否使用高性能静态类型。

与Python的对比

Mojo语言旨在与Jupyter生态系统完全兼容。目前,其尚未做到完全与Python 3.x源代码兼容英语Source-code compatibility,而仅支持Python语法的子集。在此基础上,Mojo还支持Python没有的高性能低级编程语言的功能,如能使用“fn”关键字创建类型化可编译函数,或使用“struct”关键字创建可优化内存使用的[15]Mojo还能通过CPython来调用现有的Python 3.x代码。此外,Mojo借鉴Rust引入了Python所没有的借用检查器。

实例

使用Mojo语言编写的Hello world程序与Python相同:

print('Hello, World!')

参考文献

  1. ^ Release 24.5.0. 2024年9月13日 [2024年9月27日]. 
  2. ^ 2.0 2.1 Mojo🔥 programming manual. docs.modular.com. Modular. 2023 [2023-09-26]. (原始内容存档于2023-10-22). Mojo is a programming language that is as easy to use as Python but with the performance of C++ and Rust. Furthermore, Mojo provides the ability to leverage the entire Python library ecosystem. 
  3. ^ 3.0 3.1 3.2 3.3 Krill, Paul. Mojo language marries Python and MLIR for AI development. InfoWorld. 4 May 2023 [2023-09-27]. (原始内容存档于2023-05-05) (英语). 
  4. ^ Mojo 🔥 — the programming language for all AI developers. www.modular.com. Modular. 2023 [2023-09-26]. (原始内容存档于2023-11-10). Mojo leverages MLIR, which enables Mojo developers to take advantage of vectors, threads, and AI hardware units. 
  5. ^ 5.0 5.1 Hahn, Silke. Jenseits von Python: Mojo baut Brücke zwischen Python und C für Machine Learning. www.heise.de. Heise Medien GmbH & Co. KG. 2023-05-09 [2023-09-26]. (原始内容存档于2023-09-26) (德语). Eine neue Programmiersprache für Machine Learning, eine Art Python++? 
  6. ^ Why Mojo🔥 - A language for next-generation compiler technology. docs.modular.com. Modular. 2023 [2023-09-26]. (原始内容存档于2023-05-05). While many other projects now use MLIR, Mojo is the first major language designed expressly for MLIR, which makes Mojo uniquely powerful when writing systems-level code for AI workloads. 
  7. ^ 7.0 7.1 Claburn, Thomas. Modular reveals Mojo, Python superset with C-level speed. The Register. 5 May 2023 [2023-09-27]. (原始内容存档于2023-09-02) (英语). 
  8. ^ Pandey, Mohit. This New Programming Language is Likely to Replace Python. Analytics India Magazine. 3 May 2023 [2023-09-27]. (原始内容存档于2023-05-30). 
  9. ^ Welcome to Mojo 🔥. github.com. Modular. 2023 [2023-09-26]. (原始内容存档于2023-10-25). Mojo is still young, but it is designed to become a superset of Python over time. 
  10. ^ Ramarao, Pramod. Mojo🔥 - It’s finally here!. www.modular.com. Modular. 2023-09-07 [2023-09-26]. (原始内容存档于2023-11-12). Mojo: a high performance 'Python++' language for compute 
  11. ^ Howard, Jeremy. Mojo may be the biggest programming language advance in decades. www.fast.ai. fast.ai. 2023-05-04 [2023-09-26]. (原始内容存档于2023-10-17). Maybe it’s better to say Mojo is Python++ 
  12. ^ May, Eira. Like Python++ for AI developers. stackoverflow.blog. Stack Exchange, Inc. 2023-09-25 [2023-09-26]. (原始内容存档于2023-10-04). 
  13. ^ Saplin, Maxim. Mojo🔥SDK has been released for Linux. dev.to. DEV Community. 2023-09-07 [2023-09-26]. (原始内容存档于2023-10-22). From the creators of LLVM, Clang, and Swift. A better Python, Python++ 
  14. ^ May, Eira. Mojo: The usability of Python with the performance of C. stackoverflow.blog. Stack Exchange, Inc. 2023-09-22 [2023-09-26]. (原始内容存档于2023-10-08). 
  15. ^ 15.0 15.1 Yegulalp, Serdar. A first look at the Mojo language. InfoWorld. 7 June 2023 [2023-09-27]. (原始内容存档于2023-08-18) (英语). 
  16. ^ Deutscher, Maria. Modular makes its AI-optimized Mojo programming language generally available. Silicon Angle. 7 September 2023 [2023-09-11]. (原始内容存档于2023-10-23) (英语). 
  17. ^ Mojo for Visual Studio Code. marketplace.visualstudio.com. Microsoft. [2023-09-26]. (原始内容存档于2023-10-14). 
  18. ^ Claburn, Thomas. Modular finds its Mojo, a Python superset with C-level speed. The Register. 2023-05-05 [2023-08-08]. (原始内容存档于2023-09-02). 
  19. ^ Mojo🔥 changelog. [2023-09-27]. (原始内容存档于2023-11-01). 
  20. ^ Lattner, Chris; Amini, Mehdi; Bondhugula, Uday; Cohen, Albert; Davis, Andy; Pienaar, Jacques; Riddle, River; Shpeisman, Tatiana; Vasilache, Nicolas; Zinenko, Oleksandr. MLIR: A Compiler Infrastructure for the End of Moore's Law. 2020-02-29. arXiv:2002.11054可免费查阅 [cs.PL]. 

外部链接