Mojo
Mojo是由Modular公司开发的一种基于MLIR编译框架的编程语言,旨在为人工智能等领域的软件开发提供统一的编程框架。[2][3][4][5][6][3][7][8]
编程范型 | 多范型:指令式(为主),函数式、泛型 |
---|---|
语言家族 | Python |
设计者 | 克里斯·拉特纳 |
实现者 | Modular公司 |
发行时间 | 2023年 |
当前版本 |
|
类型系统 | |
操作系统 | 跨平台 |
许可证 | 专有 |
文件扩展名 | .🔥(火焰emoji/U+1F525)、.mojo |
网站 | www |
启发语言 | |
Python、Cython、C、C++、Rust、Swift、Zig |
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源代码兼容,而仅支持Python语法的子集。在此基础上,Mojo还支持Python没有的高性能低级编程语言的功能,如能使用“fn”关键字创建类型化、可编译的函数,或使用“struct”关键字创建可优化内存使用的类。[15]Mojo还能通过CPython来调用现有的Python 3.x代码。此外,Mojo借鉴Rust引入了Python所没有的借用检查器。
实例
使用Mojo语言编写的Hello world程序与Python相同:
print('Hello, World!')
参考文献
- ^ Release 24.5.0. 2024年9月13日 [2024年9月27日].
- ^ 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.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) (英语).
- ^ 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.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++?
- ^ 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.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) (英语).
- ^ Pandey, Mohit. This New Programming Language is Likely to Replace Python. Analytics India Magazine. 3 May 2023 [2023-09-27]. (原始内容存档于2023-05-30).
- ^ 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.
- ^ 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
- ^ 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++
- ^ May, Eira. Like Python++ for AI developers. stackoverflow.blog. Stack Exchange, Inc. 2023-09-25 [2023-09-26]. (原始内容存档于2023-10-04).
- ^ 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++
- ^ 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.0 15.1 Yegulalp, Serdar. A first look at the Mojo language. InfoWorld. 7 June 2023 [2023-09-27]. (原始内容存档于2023-08-18) (英语).
- ^ Deutscher, Maria. Modular makes its AI-optimized Mojo programming language generally available. Silicon Angle. 7 September 2023 [2023-09-11]. (原始内容存档于2023-10-23) (英语).
- ^ Mojo for Visual Studio Code. marketplace.visualstudio.com. Microsoft. [2023-09-26]. (原始内容存档于2023-10-14).
- ^ Claburn, Thomas. Modular finds its Mojo, a Python superset with C-level speed. The Register. 2023-05-05 [2023-08-08]. (原始内容存档于2023-09-02).
- ^ Mojo🔥 changelog. [2023-09-27]. (原始内容存档于2023-11-01).
- ^ 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].