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].