The project provides several independent modules.
- Quick start: README.md
- Detailed reference: docs/reference.md
from multilingualprogramming.numeral.mp_numeral import MPNumeral
num1 = MPNumeral("VII")
num2 = MPNumeral("III")
print(num1 + num2) # Xfrom multilingualprogramming.keyword.keyword_registry import KeywordRegistry
registry = KeywordRegistry()
print(registry.get_keyword("COND_IF", "fr")) # sifrom multilingualprogramming.datetime.mp_date import MPDate
d = MPDate.from_string("15-Janvier-2024")
print(d.to_string("en"))from multilingualprogramming.lexer.lexer import Lexer
lexer = Lexer("if x > 5:\n print(x)", language="en")
tokens = lexer.tokenize()
print(tokens)from multilingualprogramming import ProgramExecutor
result = ProgramExecutor(language="en").execute("""\
def add(a, b):
return a + b
print(add(2, 3))
""")
print(result.success) # True
print(result.output) # 5ProgramExecutor enables .multi and .ml module imports automatically during execution.
multilingual --version
multilingual run hello.multi --lang en
multilingual run hello.multi --show-backend
multilingual run hello.multi --mode core
multilingual compile hello.multi --lang en
multilingual smoke --all
multilingual ir hello.multi --format json
multilingual explain hello.multiBackend and artifact helpers:
multilingual repl --show-python --show-wat --show-rust
multilingual wat-abi hello.multi --lang en
multilingual wat-host-shim hello.multi --lang en
multilingual wat-renderer-template hello.multi --lang en
multilingual build-wasm-bundle hello.multi --out-dir build/wasm
multilingual build-ui-bundle examples/memory_game_en.multi --out-dir build/ui
multilingual ui-preview examples/memory_game_en.multi --htmlpip install "multilingualprogramming[wasm]"
pip install "multilingualprogramming[ai]"
pip install "multilingualprogramming[performance]"
pip install "multilingualprogramming[all]"The ai extra installs provider SDKs for OpenAI, Anthropic, and Ollama.
from multilingualprogramming import enable_multilingual_imports
enable_multilingual_imports()
import my_module # loads my_module.multi (or my_module.ml) when present on sys.pathfrom multilingualprogramming import Lexer, Parser, ASTPrinter
source = """\
def square(x):
return x * x
"""
tokens = Lexer(source, language="en").tokenize()
ast = Parser(tokens, source_language="en").parse()
print(ASTPrinter().print(ast))from multilingualprogramming.runtime import (
AIRuntime,
AnthropicProvider,
OpenAIProvider,
OllamaProvider,
InferenceCache,
ModelRegistry,
ReactiveEngine,
Channel,
)Provider SDKs are optional. Install multilingualprogramming[ai] before
constructing the concrete OpenAI, Anthropic, or Ollama providers.
python -m examples.arithmetic
python -m examples.numeral_extended
python -m examples.keywords
python -m examples.datetime_example
python -m examples.lexer_example
python -m examples.parser_example
python -m examples.ast_example
python -m examples.multilingual_parser_example
python -m examples.codegen_example
python -m examples.multilingual_codegen_example
python -m examples.semantic_example
python -m examples.executor_example