Mojo (язык программирования)

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Mojo
Класс языка язык программирования
Появился в 2023
Автор Крис Латтнер
Разработчик Modular Inc.
Расширение файлов .mojo, .🔥
Испытал влияние Python, Rust, Swift
Сайт modular.com/mojo
Платформа Кроссплатформенный

Mojo — специализированный язык программирования, созданный компанией Modular и ориентированный на разработку в сфере машинного обучения[1][2][3]. Выпущен в мае 2023 года. Mojo позиционируется как более продвинутая альтернатива Python, практически полностью совместим с ним и его библиотеками, но при этом показывает лучшую производительность, аналогичную таким довольно низкоуровневым языкам программирования как C и C++.

Ключевые приоритеты языка: разработка в области искусственного интеллекта и системное программирование. Язык умеет взаимодействовать с SIMD-командами, из-за чего позволяет выполнять множество алгебраических операций за раз, что положительно сказывается на производительности.

Mojo не имеет сборщика мусора, вместо этого он использует семантику перемещения сильно похожую на ту, что есть в Rust. Данный подход позволяет языку безопасно и быстро удалять неиспользуемые ресурсы и отказаться от использования рантайма.

Дизайн и разработка[править | править код]

Впервые Mojo был анонсирован в сентябре 2022 года. Тогда же было заявлено о его расширенных возможностях компиляции на основе MLIR, компиляционного фреймворка Multi-Level Intermediate Representation[4][5][1][6].

Mojo обладает гибридной системой типов, являющейся чем-то средним между статической и динамической типизациями. Благодаря этому разработчик при написании программы может выбирать между более высокопроизводительной статической или более гибкой динамической системами типов.

Также Mojo по умолчанию использует технологию Modular Inference Engine (Модульный Интерфейс Выводов), позволяющий упростить процесс разработки и масштабирования систем искусственного интеллекта[7].

Совместимость с Python[править | править код]

Mojo нацелен на полную совместимость с экосистемой Project Jupyter. На данный момент[когда?] он ещё не обладает полной совместимостью с кодом Python, имея способность обрабатывать лишь часть его синтаксиса. Например, в Mojo пока отсутствуют именованные аргументы функций, ключевое слово «global», а также специальные выражения для компактного создания списков и словарей.

В свою очередь Mojo имеет и некоторые уникальные синтаксические средства, например низкоуровневые функции и структуры «struct», являющиеся более оптимизированной с точки зрения потребления памяти альтернативой классам Python[8].

Mojo может выполнять существующий код Python 3.x, повторно используя среду выполнения CPython. Также Modular планируют добавить в язык прозрачную интеграцию модулей Clang C/C++ и прозрачную генерацию интерфейса внешних функций между C/C++ и Mojo.

Примечания[править | править код]

  1. 1 2 Paul Krill. Mojo language marries Python and MLIR for AI development (англ.). InfoWorld (4 мая 2023). Дата обращения: 19 июня 2023. Архивировано 5 мая 2023 года.
  2. Thomas Claburn. Modular reveals Mojo, Python superset with C-level speed (англ.). www.theregister.com. Дата обращения: 19 июня 2023. Архивировано 2 сентября 2023 года.
  3. Mohit Pandey. This New Programming Language is Likely to Replace Python (амер. англ.). Analytics India Magazine (3 мая 2023). Дата обращения: 19 июня 2023. Архивировано 30 мая 2023 года.
  4. Modular Docs - Mojo🔥 changelog (англ.). docs.modular.com. Дата обращения: 19 июня 2023. Архивировано 1 ноября 2023 года.
  5. Chris Lattner, Jacques Pienaar. MLIR Primer: A Compiler Infrastructure for the End of Moore’s Law. — 2019. Архивировано 25 мая 2023 года.
  6. MLIR: A Compiler Infrastructure for the End of Moore's Law (англ.). Дата обращения: 19 июня 2023. Архивировано 17 августа 2023 года.
  7. Modular Docs - Modular Inference Engine (англ.). docs.modular.com. Дата обращения: 19 июня 2023. Архивировано 11 июня 2023 года.
  8. Serdar Yegulalp. A first look at the Mojo language (англ.). InfoWorld (7 июня 2023). Дата обращения: 19 июня 2023. Архивировано 18 августа 2023 года.

Ссылки[править | править код]