맨위로가기

모조 (프로그래밍 언어)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

모조(Mojo)는 2022년 스위프트의 최초 설계자인 크리스 라트너와 구글 출신 팀 데이비스가 설립한 모듈러(Modular)사에서 개발한 프로그래밍 언어이다. 파이썬의 사용 편의성과 인공지능 애플리케이션의 빠른 성능을 결합하는 것을 목표로 하며, LLVM 및 MLIR을 컴파일 백엔드로 사용한다. 2023년 5월 최초의 공개 테스트 버전이 출시되었고, 리눅스와 macOS에서 로컬 다운로드가 가능해졌다. 2024년 3월에는 표준 라이브러리가 오픈 소스로 공개되었으며, 파이썬과 유사한 구문, 추론된 정적 타이핑, 러스트의 차용 검사기 등 다양한 특징을 갖는다. 모조는 현재 오픈 소스는 아니지만, 향후 오픈 소스로 전환될 예정이다.

더 읽어볼만한 페이지

  • 인공지능 소프트웨어 - 마이크로소프트 코파일럿
    마이크로소프트 코파일럿은 오픈AI의 GPT 모델을 기반으로 마이크로소프트에서 개발한 인공지능 챗봇 서비스로, 정보 검색, 문서 작성, 이미지 생성 등 다양한 기능을 제공하며 여러 플랫폼에서 사용 가능하다.
  • 인공지능 소프트웨어 - AI 던전
    AI 던전은 인공지능으로 플레이어 입력에 따라 무작위 스토리를 생성하는 텍스트 어드벤처 게임으로, 사용자 생성 콘텐츠 공유, 멀티플레이어 모드 등의 기능을 제공했지만 콘텐츠 검열, 개인 정보 보호 논란, 광고 추가 등으로 논란이 되며 2024년 3월 스팀에서 서비스가 종료되었다.
  • 파이썬 - 귀도 반 로섬
    귀도 반 로섬은 네덜란드 출신의 프로그래머로, 1989년 크리스마스 기간에 취미로 파이썬 프로그래밍 언어를 개발했으며, 구글과 드롭박스 등에서 일하다 2020년 마이크로소프트에 수석 엔지니어로 합류했다.
  • 파이썬 - Numba
    Numba는 `numba.jit` 데코레이터로 파이썬 함수의 성능을 향상시키는 Just-In-Time 컴파일러로, CPU 및 GPU를 이용한 병렬 처리를 지원하여 고성능 컴퓨팅 환경을 구축하는 데 사용된다.
  • 텍스트 지향 프로그래밍 언어 - Tcl
    Tcl은 존 오스터하우트가 개발한 명령어 기반의 프로그래밍 언어로, Tk 툴킷과 결합하여 GUI 스크립팅 환경으로 발전했으며, 다양한 운영체제에서 사용 가능하고 C, C++, Java 등 다른 언어와의 인터페이스를 지원한다.
  • 텍스트 지향 프로그래밍 언어 - PHP
    PHP는 라스무스 러도프가 개발한 범용 스크립팅 언어로, 웹 개발에 널리 사용되며 LAMP 아키텍처의 핵심 요소이다.
모조 (프로그래밍 언어) - [IT 관련 정보]에 관한 문서
기본 정보
이름Mojo (모조)
개발사Modular Inc.
디자이너크리스 래트너
출시 연도2023년
최신 미리보기 버전24.4
최신 미리보기 날짜2024년 5월 24일
파일 확장자.🔥 (불꽃 이모지/유니코드 U+1F525 문자), 또는 .mojo
웹사이트www.modular.com/mojo
기술 정보
프로그래밍 패러다임멀티 패러다임:
명령형 (주요)
함수형
제네릭
관련 언어파이썬
타이핑어파인
추론
명목

정적
동적
강력
운영 체제크로스 플랫폼: 리눅스, macOS
라이선스Apache 2.0 (LLVM 예외 포함)
영향을 받은 언어파이썬
사이썬
C
C++
러스트
스위프트
지그

2. 기원 및 개발

모조 프로그래밍 언어는 스위프트 (프로그래밍 언어)LLVM의 최초 소프트웨어 설계자인 크리스 래트너와 전 구글 직원인 팀 데이비스가 설립한 모듈러(Modular)사에 의해 만들어졌다.[16] 모조는 파이썬에서 쉽게 전환할 수 있도록 만들어졌으며, 파이썬과 유사한 구문을 가지고 있고 사용자가 파이썬 모듈을 가져올 수 있다. 공개 변경 로그에 따르면 모조 개발은 2022년으로 거슬러 올라간다.[18]

모조는 컴파일 백엔드로 LLVM과 MLIR을 사용하며, 추론된 정적 타이핑을 사용한다. 모조는 러스트 (프로그래밍 언어)의 영향을 받은 버로 체커(borrow checker)를 추가할 계획이며, C/C++ 및 파이썬 코드를 호출하기 위한 외부 함수 인터페이스를 추가할 계획이다.

모조는 파이썬 3과 소스 호환되지 않으며 구문의 하위 집합만 제공한다. 전역 키워드, 목록 및 사전 이해, 클래스 지원이 누락되었다. 또한 모조는 성능이 낮은 수준의 프로그래밍을 가능하게 하는 기능도 추가한다. 즉, 형식화되고 컴파일된 함수를 생성하기 위한 fn과 클래스에 대한 메모리 최적화 대안을 위한 "struct"가 있다. 모조 구조체는 메소드, 필드, 연산자 오버로딩 및 데코레이터를 지원한다. 모조 파일은 .mojo 또는 .🔥 파일 확장자를 사용한다.

2. 1. 개발 배경

2022년에 스위프트 (프로그래밍 언어)의 최초 설계자인 크리스 라트너와 전 구글 직원인 팀 데이비스(Tim Davis)가 모듈러(Modular) 회사를 설립했다.[16] 모조(Mojo) 개발의 의도는 파이썬의 사용 편의성과 최첨단 AI 애플리케이션에 필요한 빠른 성능 간의 격차를 해소하는 것이었다.[17]

2022년 9월, 모듈러사에서 내부적으로 모조의 초기 빌드를 출시했다. 2023년 5월, 최초의 공개 테스트 가능 버전이 호스팅된 플레이그라운드를 통해 온라인에서 제공되었다.[19] 2023년 9월에는 Linux에서, [20] 2023년 10월에는 애플의 macOS에서 로컬 다운로드가 가능해졌다.[21]

2. 2. 개발 주체

모조는 스위프트 (프로그래밍 언어)의 최초 설계자인 크리스 래트너와 전 구글 직원인 팀 데이비스가 설립한 모듈러(Modular) 회사가 개발했다.[16] 모조는 파이썬의 사용 편의성과 빠른 성능 간의 격차를 해소하는 것을 목표로 한다.[17]

2. 3. 오픈 소스

2024년 3월, 모듈러(Modular)는 Mojo 표준 라이브러리를 오픈 소스로 공개하고 Apache 2.0 라이선스 하에 커뮤니티 기여를 받기 시작했다.[22][23] 모조는 현재 오픈 소스 언어가 아니지만, 향후 오픈 소스로 전환될 계획이다.

3. 특징

모조는 파이썬에서 쉽게 전환할 수 있도록 설계되었다. 파이썬과 유사한 구문을 가지며, 추론된 정적 타이핑을 사용하고, 사용자가 파이썬 모듈을 가져올 수 있게 한다.[25] LLVM과 MLIR을 컴파일 백엔드로 사용한다.[6][26][27]

모조는 C/C++ 및 파이썬 코드를 호출하기 위한 외부 함수 인터페이스를 추가할 계획이다. 또한, 러스트 (프로그래밍 언어)의 영향을 받은 버로 체커(borrow checker)를 추가할 계획이다.[28]

모조는 오픈 소스는 아니지만 향후 오픈 소스로 전환할 계획이다.[30][3][31][32] 모조 파일은 `.mojo` 또는 `.🔥` 파일 확장자를 사용한다.

3. 1. 파이썬과의 관계

모조는 파이썬의 사용 편의성을 계승하면서 성능 개선을 목표로 설계되었다. 파이썬과 유사한 구문을 가지며, 추론된 정적 타이핑을 지원하고, 파이썬 모듈을 가져올 수 있다.[25] 컴파일 백엔드로 LLVM 및 MLIR을 사용한다.[6][26][27]

모조는 파이썬 3과 소스 코드 호환되지 않으며, `global` 키워드, 리스트 및 딕셔너리 컴프리헨션, 클래스 지원 등이 누락된 파이썬 구문의 부분 집합만 제공한다. 또한 성능이 뛰어난 저수준 프로그래밍을 가능하게 하는 기능을 추가하는데, 타입이 지정된, 컴파일된 함수를 생성하기 위한 `fn`과 클래스의 메모리 최적화 대안으로 "struct"가 있다. 모조 구조체는 메소드, 필드, 연산자 오버로딩, 데코레이터를 지원한다.[7]

Rust의 영향을 받아 차용 검사기를 제공한다.[28] 모조의 `def` 함수는 기본적으로 값 의미 체계를 사용하고(함수는 모든 인수의 복사본을 받으며 수정 사항은 함수 외부에서 보이지 않음), 파이썬 함수는 참조 의미 체계를 사용한다(함수는 인수 참조를 받으며 함수 내에서 변경 가능한 인수의 수정 사항은 외부에서 보임).[29]

3. 2. 성능 및 저수준 프로그래밍

모조는 LLVM과 MLIR을 컴파일 백엔드로 사용하여 높은 성능을 제공한다.[6][26][27] 타입이 지정되고 컴파일된 함수를 생성하기 위한 `fn` 키워드와 클래스에 대한 메모리 최적화된 대안으로 "struct"를 제공한다. 모조 구조체는 메소드, 필드, 연산자 오버로딩 및 데코레이터를 지원한다.[7]

3. 3. 기타 특징

모조는 러스트 (프로그래밍 언어)의 영향을 받은 차용 검사기(borrow checker)를 추가할 계획이다.[28] C/C++ 및 파이썬 코드를 호출하기 위한 외부 함수 인터페이스를 추가할 예정이다.

모조 파일은 `.mojo` 또는 `.🔥` 파일 확장자를 사용한다. 모조 `def` 함수는 기본적으로 값 의미 체계를 사용하고(함수는 모든 인수의 복사본을 받으며 수정 사항은 함수 외부에서 보이지 않음), 파이썬 함수는 참조 의미 체계를 사용한다(함수는 인수 참조를 받으며 함수 내에서 변경 가능한 인수의 수정 사항은 외부에서 보임).[29]

변수 선언에는 `var` (가변 변수) 및 `let` (불변 변수) 키워드를 사용하며, 이는 스위프트 (프로그래밍 언어)와 유사한 방식이다.

4. 활용

Mojo는 명령줄 인터페이스에서 소스 파일을 컴파일하고 실행할 수 있으며, 우분투와 macOS를 지원한다.[33] Visual Studio Code용 확장 기능은 코드 완성 및 툴팁을 제공한다.[33] 2024년 1월에는 Mojo로 작성된 LLaMA2 추론 모델이 공개되었다.[34]

4. 1. 개발 환경

Mojo SDK를 사용하면 Mojo 프로그래머가 명령줄 인터페이스에서 로컬로 Mojo 소스 파일을 컴파일하고 실행할 수 있으며, 현재 우분투와 macOS를 지원한다.[33] 또한 코드 완성 및 툴팁을 제공하는 Visual Studio Code용 Mojo 확장 기능도 있다.[44]

4. 2. 활용 사례

2024년 1월, Mojo로 작성된 LLaMA2 추론 모델이 공개되었다.[34]

5. 프로그래밍 예제

Mojo는 함수 선언에 `fn` (고성능 함수) 또는 `def` (파이썬 호환)를 사용하고, 변수 선언에는 `var` (가변) 및 `let` (불변/상수)을 사용한다. 이는 스위프트와 유사하다.[25]

5. 1. 기본 연산

Mojo에서 함수는 fn영어 (성능이 뛰어난 함수) 또는 def영어 (Python 호환성)를 사용하여 선언할 수 있다.[25]

def영어 함수를 사용한 Mojo의 기본적인 산술 연산 예시는 다음과 같다.

```python

def sub(x, y):

"""파이썬 방식의 뺄셈."""

res = x - y

return res

```

fn영어 함수를 사용한 예시는 다음과 같다.

```rust

fn add(x: Int, y: Int) -> Int:

"""러스트 방식의 덧셈."""

let res: Int = x + y

return res

5. 2. 변수 선언

Mojo에서는 `let`과 `var` 키워드를 사용하여 변수를 선언한다. `let`은 불변 변수(상수)를 선언할 때 사용하고, `var`는 가변 변수를 선언할 때 사용한다. 이러한 방식은 스위프트 언어와 유사하다.[25]

다음은 Mojo에서 변수를 선언하고 사용하는 예시이다.

```rust

fn main():

let x = 1 # x는 불변 변수

let y: Int # 타입을 명시적으로 지정할 수도 있다.

y = 1

var z = 0 # z는 가변 변수

z += 1

참조

[1] 웹사이트 How Modular simplified AI software infrastructure https://www.fastcomp[...] Fast Company 2024-08-19
[2] 웹사이트 Mojo Changelog https://docs.modular[...] Modular 2024-04-14
[3] 웹사이트 Modular: The Next Big Step in Mojo🔥 Open Source https://www.modular.[...] Modular 2024-11-09
[4] 웹사이트 Mojo programming manual https://docs.modular[...] Modular 2023-09-26
[5] 웹사이트 Why Mojo - A language for next-generation compiler technology https://docs.modular[...] Modular 2023-09-26
[6] 웹사이트 Mojo language marries Python and MLIR for AI development https://www.infoworl[...] 2023-05-04
[7] 뉴스 A first look at the Mojo language https://www.infoworl[...] 2023-06-07
[8] 뉴스 Modular makes its AI-optimized Mojo programming language generally available https://siliconangle[...] 2023-09-11
[9] 웹사이트 Mojo for Mac OS https://x.com/Modula[...] Modular 2023-10-19
[10] 웹사이트 Mojo: Programming language for all of AI https://www.modular.[...] 2024-02-28
[11] 웹사이트 Mojo language marries Python and MLIR for AI development https://www.infoworl[...] 2024-05-28
[12] 웹사이트 Should Julia use MLIR in the future? https://discourse.ju[...] 2024-05-28
[13] 웹사이트 Modular Docs: Why Mojo https://docs.modular[...] 2024-05-28
[14] 문서 Mojo.pdf https://llvm.org/dev[...]
[15] 웹사이트 fast.ai - Mojo may be the biggest programming language advance in decades https://www.fast.ai/[...] 2024-05-28
[16] 뉴스 Modular finds its Mojo, a Python superset with C-level speed https://www.theregis[...] 2023-08-08
[17] 웹사이트 Mojo Rising: The resurgence of AI-first programming languages https://venturebeat.[...] 2024-05-21
[18] 웹사이트 Mojo changelog https://docs.modular[...]
[19] 웹사이트 A unified, extensible platform to superpower your AI https://www.modular.[...] 2024-04-14
[20] 웹사이트 Mojo - It's finally here! https://www.modular.[...] 2024-04-14
[21] 웹사이트 Mojo is now available on Mac https://www.modular.[...] 2024-04-14
[22] 웹사이트 Modular open-sources its Mojo AI programming language's core components https://siliconangle[...] 2024-05-28
[23] 웹사이트 mojo/stdlib/README.md at nightly · modularml/mojo https://github.com/m[...] 2024-05-28
[24] 웹사이트 Modular Docs - Mojo programming manual https://docs.modular[...] 2023-10-19
[25] 웹사이트 Modular Docs - Mojo programming manual https://docs.modular[...] 2023-10-31
[26] 간행물 MLIR Primer: A Compiler Infrastructure for the End of Moore's Law https://research.goo[...] 2022-09-30
[27] arXiv MLIR: A Compiler Infrastructure for the End of Moore's Law 2020-02-29
[28] 웹사이트 Modular Docs: Ownership and borrowing https://docs.modular[...] Modular 2024-02-29
[29] 웹사이트 Mojo programming manual https://docs.modular[...] Modular 2023-06-11
[30] 웹사이트 Open Source {{!}} Mojo🔥 FAQ {{!}} Modular Docs https://docs.modular[...] 2024-11-09
[31] 웹사이트 Modular: Pricing https://www.modular.[...] 2024-11-09
[32] AV media Comment from @modularinc https://www.youtube.[...] 2024-11-09
[33] 웹사이트 Modular Docs - Mojo roadmap & sharp edges https://docs.modular[...] 2023-10-31
[34] 웹사이트 llama2.mojo changelog https://github.com/t[...]
[35] 웹사이트 Mojo🔥 changelog https://docs.modular[...] Modular 2024-05-25
[36] 웹사이트 Mojo🔥 programming manual https://docs.modular[...] Modular 2023
[37] 웹사이트 Why Mojo🔥 - A language for next-generation compiler technology https://docs.modular[...] Modular 2023
[38] 웹사이트 Mojo language marries Python and MLIR for AI development https://www.infoworl[...] 2023-05-04
[39] 웹사이트 Mojo language marries Python and MLIR for AI development https://www.infoworl[...] 2023-05-04
[40] 뉴스 A first look at the Mojo language https://www.infoworl[...] 2023-06-07
[41] 뉴스 Modular makes its AI-optimized Mojo programming language generally available https://siliconangle[...] 2023-09-07
[42] 웹사이트 Mojo for Mac OS https://twitter.com/[...] Modular
[43] 문서 Mojoプログラミング言語の特徴とは?将来性は?よく分かる入門資料まとめ|レバテックフリーランス https://freelance.le[...]
[44] 웹사이트 Modular Docs - Mojo🔥 roadmap & sharp edges https://docs.modular[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com