【Mojo】[中] Mojo编程语言入门指南

本文共计2893字,预计阅读时间6分钟

目录

什么是 Mojo?

为何能让你爱上它.

为什么Mojo旁边总有一个🔥?

如何在Linux上安装Mojo?

系统要求:

安装 Modular CLI 和 Mojo SDK

Hello World

在REPL上运行Mojo

运行Mojo文件

Mojo语言基础

1. 语法和语义:

2. 函数:

3. 变量:

4. 结构:

5. Python 集成:

下一步是什么


Mojo 作为面向全体AI开发者的一门全新编程语言,与 Python 一样简单,与 C 语言一样快速。


什么是 Mojo?

Mojo 是一门由 Modular 团队开发的编程语言,旨在简化AI和机器学习基础架构。它提供强大的编译时元编程,支持各种加速器,并且与 Python 完全兼容。

Mojo 将 Python 的易用性和 C 的性能结合起来,实现了AI硬件无与伦比的可编程性和AI模型的可扩展性。

Mojo 的目标是创建一种统一的语言,在保留与 Python 兼容性的同时,使AI应用的开发更加高效。

为何能让你爱上它.

如果你是一名开发人员,喜欢人工智能,喜欢速度,喜欢简单,那么你一定会爱上 Mojo。

以下是它的亮点:

  1. 可用性和可编程性: 一语定万物。

    用Python编写代码,(通过各种优化方法提升性能)以达到接近底层硬件的性能。编写适用于众多低级AI硬件的程序。 对C++或CUDA无要求。

  2. 性能: 释放Python性能。

    充分利用硬件的性能,包括多核心、向量单元和异构加速器,并使用世界上最先进的编译器和异构运行时期间,在无复杂性的条件下实现与C++和CUDA相当的性能。

  3. 互用性: 访问Python全生态系统

    与Python生态系统实现真正的互用性。无缝使用包括像Numpy和Matplotlib等开发库,用Mojo自定义你的代码。

为什么Mojo旁边总有一个🔥?

因为它很火!

当然,最主要的还是因为这个emoji是它的文件拓展名。你可以将你的代码保存为

 hello.🔥 又或 hello.mojo

来自Mojo团队:

我们将Mojo与火焰emoji🔥结合,作为一种有趣的视觉传达方式,向用户表达Mojo赋予他们的力量——比以往更快、更高效地开发。我们也相信,现在世界范围内能够处理以Unicode编码的拓展名,当然,你也可以使用.mojo拓展名。 :)


如何在Linux上安装Mojo?

目前,Mojo仅在本地Ubuntu Linux系统上可用。目前,Windows 和 Mac 用户可以使用 WSL容器或远程Linux系统上找到解决方法.

系统要求:

在开始前,请确保您的系统满足以下要求:

  • Ubuntu 20.04 及 以上版本

  • x86-64 CPU 和 至少 4GiB RAM

  • Python 3.8 - 3.10

  • g++ 或 clang++ 编译器 (在Ubuntu上预装有g++

安装 Modular CLI 和 Mojo SDK

Modular CLI类似于包管理器,用于安装和更新Mojo。

安装Modular CLI:

curl https://get.modular.com | \
  MODULAR_AUTH=mut_fe303dc5ca504bc4867a1db20d897fd8 \
  sh -

Mojo SDK包含有您进行本地Mojo应用开发所需的一切,这其中有Mojo标准库和Mojo命令行界面(CLI)。Mojo CLI可以启动REPL编程环境,编译和运行Mojo源文件,格式化源文件等等。

安装Mojo SDK:

modular install mojo

Hello World

在用Mojo编写第一个程序前,必须在我们的shell中设置好 MODULAR_HOME 和 PATH 变量。

echo 'export MODULAR_HOME="$HOME/.modular"' >> ~/.bashrc

echo 'export PATH="$MODULAR_HOME/pkg/packages.modular.com_mojo/bin:$PATH"' >> ~/.bashrc

source ~/.bashrc

在REPL上运行Mojo

发起REPL会话前,需在终端上输入 mojo 并按 Enter 键。

然后输入 print("Hello, world!") 并按两次 Enter 键 (需要用一个空行来说明表达式的结束)。

就是这样!举个例子:

$ mojo
Welcome to Mojo! 🔥
Expressions are delimited by a blank line.
Type `:mojo help` for further assistance.
1> print("Hello, world!")
2.
Hello, world!

您可以在REPL中编写任意量的代码,按 Enter 键便可以进入新一行并继续编写代码。当你想让Mojo评估代码时,按 Enter 键两次即可。如果有需要打印的内容,Mojo会将其输出并将提示信息反馈给你。

REPL主要用于短期实验,因为代码不会被保存。因此,若您想编写真正的程序时,需要在一个后缀名为 .mojo 的源文件中编写代码。

运行Mojo文件

首先,编写Mojo代码并执行它:

  1. 创建一个名为 hello.mojo (或 hello.🔥),并添加下列代码:

    fn main():
       print("Hello, world!")
    

    这就是你所需要的。保存文件并返回你的终端。

  2. 现在,使用 mojo 命令运行它:

    mojo hello.mojo
    

    应当输出下列消息:

    Hello, world!
    

Mojo语言基础

该语言需要注意的几点:

1. 语法和语义:

Mojo支持Python的语法和语义,使用换行和缩进来表示代码块。它具有大多数Python的控制流特性。

2. 函数:

在Mojo中,函数可以使用 fn (强类型、内存安全) 或 def (Python风格)来声明。 fn 函数强制性类型安全操作。

3. 变量:

在Mojo中,变量可以使用 var(可变)或 let (不可变)声明。声明变量的类型是可选的。

实例:

fn do_math():
    let x: Int = 1
    let y = 2
    print(x + y)

do_math()

4. 结构:

Mojo允许创建高级抽象的结构。Mojo中的 struct 结构与 Python 中的 class 类似。但结构是静态的,不允许动态调度。

实例:

struct MyPair:
    var first: Int
    var second: Int

    fn __init__(inout self, first: Int, second: Int):
        self.first = first
        self.second = second

    fn dump(self):
        print(self.first, self.second)

用法:

let mine = MyPair(2, 4)
mine.dump()

5. Python 集成:

Mojo提供了一种机制,可以将Python模块原封不动地导入,利用好现有的Python代码。

实例:

from python import Python

let np = Python.import_module("numpy")

ar = np.arange(15).reshape(3, 5)
print(ar)
print(ar.shape)
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]
(3, 5)

Mojo旨在将系统编程的优势与Python的易用性、灵活性相结合。


下一步是什么

  • 对于使用VS Code的用户,您可以安装 Mojo 拓展 ,以获取语法高亮、代码补全及诊断等功能。

  • 您还可以使用基于Web的 Mojo Playground 来进行 Mojo 实验。

  • 想了解更多关于Mojo的信息,可以 阅读相关文档

  • 您也可以随时在 Discord 和 Mojo 社区上开展交流。

-

Mojo🔥 是一门面向AI开发者的未来编程语言。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值