multilingualprogramming 0.5.1__tar.gz → 0.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- multilingualprogramming-0.7.0/PKG-INFO +288 -0
- multilingualprogramming-0.7.0/README.md +243 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/__init__.py +1 -5
- multilingualprogramming-0.7.0/multilingualprogramming/__main__.py +824 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/codegen/build_orchestrator.py +67 -9
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/codegen/executor.py +69 -23
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/python_generator.py +1929 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/codegen/runtime_builtins.py +377 -3
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/ui_lowering.py +1342 -0
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/wat_generator.py +2954 -0
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/wat_generator_core.py +3057 -0
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/wat_generator_expression.py +185 -0
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/wat_generator_loop.py +186 -0
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/wat_generator_manifest.py +452 -0
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/wat_generator_match.py +348 -0
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/wat_generator_oop.py +496 -0
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/wat_generator_orchestrator.py +312 -0
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/wat_generator_print.py +392 -0
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/wat_generator_runtime.py +1243 -0
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/wat_generator_sequence.py +1012 -0
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/wat_generator_support.py +250 -0
- multilingualprogramming-0.7.0/multilingualprogramming/codegen/wat_ir_adapter.py +762 -0
- multilingualprogramming-0.7.0/multilingualprogramming/core/__init__.py +29 -0
- multilingualprogramming-0.7.0/multilingualprogramming/core/effects.py +27 -0
- multilingualprogramming-0.7.0/multilingualprogramming/core/ir_nodes.py +1144 -0
- multilingualprogramming-0.7.0/multilingualprogramming/core/semantic_analyzer.py +1101 -0
- multilingualprogramming-0.7.0/multilingualprogramming/core/semantic_lowering.py +1872 -0
- multilingualprogramming-0.7.0/multilingualprogramming/core/types.py +114 -0
- multilingualprogramming-0.7.0/multilingualprogramming/core/validators.py +296 -0
- multilingualprogramming-0.7.0/multilingualprogramming/datetime/__init__.py +11 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/imports.py +19 -17
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/keyword/keyword_registry.py +33 -5
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/lexer/lexer.py +109 -4
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/lexer/token.py +3 -1
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/lexer/token_types.py +1 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/parser/__init__.py +0 -3
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/parser/ast_nodes.py +120 -4
- multilingualprogramming-0.7.0/multilingualprogramming/parser/lexer.py +11 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/parser/parser.py +735 -53
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/resources/usm/builtins_aliases.json +652 -5
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/resources/usm/keywords.json +706 -22
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/resources/usm/operators.json +65 -0
- multilingualprogramming-0.7.0/multilingualprogramming/resources/usm/ui_lowering.json +275 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/__init__.py +149 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/ai_runtime.py +292 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/ai_types.py +191 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/anthropic_provider.py +272 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/runtime/backend_selector.py +64 -7
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/channel.py +104 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/inference_cache.py +236 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/memory_store.py +150 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/model_registry.py +321 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/multimodal_runtime.py +252 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/observability.py +173 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/ollama_provider.py +320 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/openai_provider.py +265 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/placement.py +60 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/prompt_optimizer.py +302 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/reactive.py +302 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/retrieval_runtime.py +143 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/semantic_match.py +115 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/swarm.py +131 -0
- multilingualprogramming-0.7.0/multilingualprogramming/runtime/tool_runtime.py +264 -0
- multilingualprogramming-0.7.0/multilingualprogramming/source_extensions.py +55 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/version.py +1 -1
- multilingualprogramming-0.7.0/multilingualprogramming.egg-info/PKG-INFO +288 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming.egg-info/SOURCES.txt +41 -3
- multilingualprogramming-0.7.0/multilingualprogramming.egg-info/requires.txt +26 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/pyproject.toml +13 -2
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/setup.py +2 -1
- multilingualprogramming-0.5.1/PKG-INFO +0 -413
- multilingualprogramming-0.5.1/README.md +0 -377
- multilingualprogramming-0.5.1/multilingualprogramming/__main__.py +0 -410
- multilingualprogramming-0.5.1/multilingualprogramming/codegen/python_generator.py +0 -597
- multilingualprogramming-0.5.1/multilingualprogramming/codegen/wat_generator.py +0 -1339
- multilingualprogramming-0.5.1/multilingualprogramming/core/__init__.py +0 -12
- multilingualprogramming-0.5.1/multilingualprogramming/core/ir.py +0 -29
- multilingualprogramming-0.5.1/multilingualprogramming/core/lowering.py +0 -24
- multilingualprogramming-0.5.1/multilingualprogramming/datetime/__init__.py +0 -11
- multilingualprogramming-0.5.1/multilingualprogramming/parser/semantic_analyzer.py +0 -689
- multilingualprogramming-0.5.1/multilingualprogramming.egg-info/PKG-INFO +0 -413
- multilingualprogramming-0.5.1/multilingualprogramming.egg-info/requires.txt +0 -14
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/LICENSE +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/codegen/__init__.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/codegen/encoding_guard.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/codegen/repl.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/codegen/wasm_generator.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/datetime/date_parser.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/datetime/mp_date.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/datetime/mp_datetime.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/datetime/mp_time.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/datetime/resource_loader.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/exceptions.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/keyword/__init__.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/keyword/keyword_validator.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/keyword/language_pack_validator.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/lexer/__init__.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/lexer/source_reader.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/numeral/__init__.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/numeral/abstract_numeral.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/numeral/complex_numeral.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/numeral/fraction_numeral.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/numeral/mp_numeral.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/numeral/numeral_converter.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/numeral/roman_numeral.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/numeral/unicode_numeral.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/parser/ast_printer.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/parser/error_messages.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/parser/surface_normalizer.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/resources/datetime/eras.json +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/resources/datetime/formats.json +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/resources/datetime/months.json +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/resources/datetime/weekdays.json +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/resources/parser/error_messages.json +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/resources/repl/commands.json +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/resources/usm/schema.json +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/resources/usm/surface_patterns.json +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/runtime/numeric_primitives.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/runtime/python_fallbacks.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/unicode_string.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/wasm/loader.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/wasm/tuple_abi.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/wasm/tuple_memory.py +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming.egg-info/dependency_links.txt +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming.egg-info/entry_points.txt +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming.egg-info/top_level.txt +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/setup.cfg +0 -0
- {multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/tests/tests.py +0 -0
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: multilingualprogramming
|
|
3
|
+
Version: 0.7.0
|
|
4
|
+
Summary: Python application for multilingual programming
|
|
5
|
+
Author-email: John Samuel <johnsamuelwrites@example.com>
|
|
6
|
+
License-Expression: GPL-3.0-or-later
|
|
7
|
+
Project-URL: Homepage, https://github.com/johnsamuelwrites/multilingual
|
|
8
|
+
Project-URL: Documentation, https://johnsamuel.info/multilingual/
|
|
9
|
+
Project-URL: Repository, https://github.com/johnsamuelwrites/multilingual
|
|
10
|
+
Project-URL: Issues, https://github.com/johnsamuelwrites/multilingual/issues
|
|
11
|
+
Project-URL: Changelog, https://github.com/johnsamuelwrites/multilingual/blob/main/CHANGELOG.md
|
|
12
|
+
Keywords: programming-language,multilingual,compiler,transpiler,education
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Topic :: Software Development :: Compilers
|
|
18
|
+
Classifier: Topic :: Software Development :: Interpreters
|
|
19
|
+
Classifier: Development Status :: 4 - Beta
|
|
20
|
+
Requires-Python: >=3.12
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Requires-Dist: roman>=3.3
|
|
24
|
+
Requires-Dist: python-dateutil>=2.8
|
|
25
|
+
Provides-Extra: dev
|
|
26
|
+
Requires-Dist: pytest; extra == "dev"
|
|
27
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
28
|
+
Requires-Dist: pylint; extra == "dev"
|
|
29
|
+
Provides-Extra: wasm
|
|
30
|
+
Requires-Dist: wasmtime>=1.0.0; extra == "wasm"
|
|
31
|
+
Provides-Extra: ai
|
|
32
|
+
Requires-Dist: openai>=1.0.0; extra == "ai"
|
|
33
|
+
Requires-Dist: anthropic>=0.25.0; extra == "ai"
|
|
34
|
+
Requires-Dist: ollama>=0.2.0; extra == "ai"
|
|
35
|
+
Provides-Extra: performance
|
|
36
|
+
Requires-Dist: wasmtime>=1.0.0; extra == "performance"
|
|
37
|
+
Requires-Dist: numpy>=1.20.0; extra == "performance"
|
|
38
|
+
Provides-Extra: all
|
|
39
|
+
Requires-Dist: wasmtime>=1.0.0; extra == "all"
|
|
40
|
+
Requires-Dist: numpy>=1.20.0; extra == "all"
|
|
41
|
+
Requires-Dist: openai>=1.0.0; extra == "all"
|
|
42
|
+
Requires-Dist: anthropic>=0.25.0; extra == "all"
|
|
43
|
+
Requires-Dist: ollama>=0.2.0; extra == "all"
|
|
44
|
+
Dynamic: license-file
|
|
45
|
+
|
|
46
|
+
# multilingual
|
|
47
|
+
Not yet another programming language. A multilingual one.
|
|
48
|
+
|
|
49
|
+
> **One semantic core. Many human languages.**
|
|
50
|
+
>
|
|
51
|
+
> Build software through human-language-first syntax with native support for AI,
|
|
52
|
+
> multimodal workflows, reactive interfaces, and portable execution.
|
|
53
|
+
|
|
54
|
+
## Vision
|
|
55
|
+
|
|
56
|
+
`multilingual` is becoming a programming language for the age of human
|
|
57
|
+
language, AI, multimodal computing, and living interfaces.
|
|
58
|
+
|
|
59
|
+
Its purpose is bigger than keyword translation. The goal is to make it possible
|
|
60
|
+
to express the same precise program semantics across human languages while also
|
|
61
|
+
making modern software primitives feel native:
|
|
62
|
+
|
|
63
|
+
- structured data and pattern matching
|
|
64
|
+
- AI generation, extraction, planning, and tool use
|
|
65
|
+
- multimodal input and output
|
|
66
|
+
- reactive state and interfaces
|
|
67
|
+
- portable execution across environments
|
|
68
|
+
|
|
69
|
+
Read the language direction here:
|
|
70
|
+
|
|
71
|
+
- Vision: [docs/vision.md](docs/vision.md)
|
|
72
|
+
- Core 1.0: [docs/spec/core_1_0.md](docs/spec/core_1_0.md)
|
|
73
|
+
- 1.0 roadmap: [docs/roadmaps/multilingual_1_0.md](docs/roadmaps/multilingual_1_0.md)
|
|
74
|
+
|
|
75
|
+
## Strategic Direction
|
|
76
|
+
|
|
77
|
+
The project is moving toward a clearer identity:
|
|
78
|
+
|
|
79
|
+
- one semantic programming model expressed through many human languages
|
|
80
|
+
- first-class semantics for AI, retrieval, tools, and multimodal workflows
|
|
81
|
+
- structured concurrency, observability, memory, and agent coordination
|
|
82
|
+
- reactive and distributed programs that span browser, device, edge, and cloud
|
|
83
|
+
- portable execution where semantics stay stable while backends adapt
|
|
84
|
+
|
|
85
|
+
The repository already contains early pieces of that future, but the current
|
|
86
|
+
implementation is still a transitional platform between the historical
|
|
87
|
+
multilingual compiler pipeline and the fuller Core 1.0 language model.
|
|
88
|
+
|
|
89
|
+
## What Multilingual Is
|
|
90
|
+
|
|
91
|
+
- a human-language-first programming language
|
|
92
|
+
- a shared semantic model expressed through multiple language surfaces
|
|
93
|
+
- an AI-native language platform, not just a syntax experiment
|
|
94
|
+
- a research and implementation space for multilingual programming systems
|
|
95
|
+
|
|
96
|
+
## Why Multilingual
|
|
97
|
+
|
|
98
|
+
- **Human-language-first programming**: code should not force people to abandon
|
|
99
|
+
their language or mode of expression.
|
|
100
|
+
- **Shared semantics**: different human-language surfaces should express the
|
|
101
|
+
same underlying program.
|
|
102
|
+
- **AI-native direction**: models, tools, retrieval, and semantic workflows are
|
|
103
|
+
becoming first-class language concepts.
|
|
104
|
+
- **Portable architecture**: one language should move across runtimes and
|
|
105
|
+
environments without losing meaning.
|
|
106
|
+
|
|
107
|
+
### Pipeline Illustration
|
|
108
|
+
|
|
109
|
+

|
|
110
|
+
|
|
111
|
+
## Current Platform
|
|
112
|
+
|
|
113
|
+
Today the repository already provides:
|
|
114
|
+
|
|
115
|
+
- multilingual frontends driven by the USM keyword model
|
|
116
|
+
- a shared parser, AST, and semantic-IR direction
|
|
117
|
+
- semantic analysis plus Python and WAT/WASM code generation
|
|
118
|
+
- Python execution support
|
|
119
|
+
- WAT/WASM generation and backend selection
|
|
120
|
+
- browser demos and DOM-oriented workflows
|
|
121
|
+
|
|
122
|
+
This is an active language platform in motion, not just a whitepaper.
|
|
123
|
+
|
|
124
|
+
## Current Limitations
|
|
125
|
+
|
|
126
|
+
- the current semantic core is still thinner than the long-term Core 1.0 model
|
|
127
|
+
- some localized surfaces still feel less natural than they should
|
|
128
|
+
- parts of the implementation still reflect the historical compiler pipeline
|
|
129
|
+
more than the future language experience
|
|
130
|
+
- AI-native, multimodal, reactive, concurrent, and distributed constructs are
|
|
131
|
+
in mixed stages of design, prototyping, and rollout
|
|
132
|
+
- documentation still needs ongoing migration from "current compiler" wording
|
|
133
|
+
toward "future language platform" wording
|
|
134
|
+
|
|
135
|
+
Details:
|
|
136
|
+
|
|
137
|
+
- Word order and naturalness: [docs/word_order_and_naturalness.md](docs/word_order_and_naturalness.md)
|
|
138
|
+
- Controlled language scope: [docs/cnl_scope.md](docs/cnl_scope.md)
|
|
139
|
+
- Current compatibility matrix: [docs/compatibility_matrix.md](docs/compatibility_matrix.md)
|
|
140
|
+
|
|
141
|
+
## Quick Start
|
|
142
|
+
|
|
143
|
+
Source files now prefer the `.multi` extension. The legacy `.ml` extension
|
|
144
|
+
remains fully supported for compatibility. Running the current implementation
|
|
145
|
+
requires Python 3.12 or newer.
|
|
146
|
+
|
|
147
|
+
### Try The Playground
|
|
148
|
+
|
|
149
|
+
You can try `multilingual` directly in your browser:
|
|
150
|
+
|
|
151
|
+
- Playground: https://johnsamuel.info/multilingual/playground.html
|
|
152
|
+
|
|
153
|
+
The playground lets you:
|
|
154
|
+
|
|
155
|
+
- write code in supported human languages
|
|
156
|
+
- run execution in Pyodide
|
|
157
|
+
- inspect generated Python
|
|
158
|
+
- inspect generated WAT/WASM output
|
|
159
|
+
- inspect generated Wasmtime bridge code
|
|
160
|
+
|
|
161
|
+
## Install
|
|
162
|
+
|
|
163
|
+
PyPI package: https://pypi.org/project/multilingualprogramming/
|
|
164
|
+
|
|
165
|
+
Option 1:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
python3 -m venv .venv
|
|
169
|
+
source .venv/bin/activate
|
|
170
|
+
python -m pip install --upgrade pip
|
|
171
|
+
python -m pip install multilingualprogramming
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Option 2:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
pipx install multilingualprogramming
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
For local development from source:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
pip install -r requirements.txt
|
|
184
|
+
pip install .
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Optional runtime extras:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
pip install "multilingualprogramming[wasm]"
|
|
191
|
+
pip install "multilingualprogramming[ai]"
|
|
192
|
+
pip install "multilingualprogramming[all]"
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Hello World
|
|
196
|
+
|
|
197
|
+
```text
|
|
198
|
+
# English
|
|
199
|
+
print("Hello world")
|
|
200
|
+
|
|
201
|
+
# French
|
|
202
|
+
afficher("Bonjour le monde")
|
|
203
|
+
|
|
204
|
+
# Spanish
|
|
205
|
+
imprimir("Hola mundo")
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Use the REPL
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
multilingual
|
|
212
|
+
multilingual repl
|
|
213
|
+
multilingual repl --lang fr
|
|
214
|
+
multilingual repl --show-python
|
|
215
|
+
multilingual repl --show-wat
|
|
216
|
+
multilingual repl --show-rust
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
REPL commands:
|
|
220
|
+
|
|
221
|
+
- `:help` show commands
|
|
222
|
+
- `:language <code>` switch language
|
|
223
|
+
- `:python` toggle generated Python display
|
|
224
|
+
- `:wat` toggle generated WAT display
|
|
225
|
+
- `:rust` toggle generated Wasmtime bridge display
|
|
226
|
+
- `:reset` clear session state
|
|
227
|
+
- `:kw [XX]` show language keywords
|
|
228
|
+
- `:ops [XX]` show operators and symbols
|
|
229
|
+
- `:q` exit
|
|
230
|
+
|
|
231
|
+
## Run a Program
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
multilingual hello_en.multi
|
|
235
|
+
multilingual run hello_en.multi
|
|
236
|
+
multilingual run hello_fr.multi --lang fr
|
|
237
|
+
multilingual run hello_en.multi --show-backend
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## Cross-Language Module Imports
|
|
241
|
+
|
|
242
|
+
You can import `.multi` and `.ml` modules across language surfaces in one program.
|
|
243
|
+
|
|
244
|
+
`module_fr.multi`:
|
|
245
|
+
|
|
246
|
+
```text
|
|
247
|
+
soit valeur = 41
|
|
248
|
+
def incremente(x):
|
|
249
|
+
retour x + 1
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
`main_en.multi`:
|
|
253
|
+
|
|
254
|
+
```text
|
|
255
|
+
import module_fr
|
|
256
|
+
print(module_fr.incremente(module_fr.valeur))
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Run:
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
multilingual run main_en.multi --lang en
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## Roadmap
|
|
266
|
+
|
|
267
|
+
Near-term priorities:
|
|
268
|
+
|
|
269
|
+
- stabilize the Core 1.0 semantic model
|
|
270
|
+
- strengthen the semantic IR and capability-aware analysis pipeline
|
|
271
|
+
- ship more unmistakable language features such as `fn`, `var`, `enum`, `|>`,
|
|
272
|
+
`par`, `spawn`, `memory`, and observability primitives
|
|
273
|
+
- continue building AI-native, multimodal, reactive, and distributed features
|
|
274
|
+
on top of that core
|
|
275
|
+
|
|
276
|
+
See:
|
|
277
|
+
|
|
278
|
+
- [docs/roadmaps/multilingual_1_0.md](docs/roadmaps/multilingual_1_0.md)
|
|
279
|
+
|
|
280
|
+
## More Documentation
|
|
281
|
+
|
|
282
|
+
- Usage examples: [USAGE.md](USAGE.md)
|
|
283
|
+
- Language design overview: [docs/design.md](docs/design.md)
|
|
284
|
+
- Frontend contracts: [docs/frontend_contracts.md](docs/frontend_contracts.md)
|
|
285
|
+
- Core spec draft: [docs/spec/core_1_0.md](docs/spec/core_1_0.md)
|
|
286
|
+
|
|
287
|
+
## Architect and Creator
|
|
288
|
+
- John Samuel
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
# multilingual
|
|
2
|
+
Not yet another programming language. A multilingual one.
|
|
3
|
+
|
|
4
|
+
> **One semantic core. Many human languages.**
|
|
5
|
+
>
|
|
6
|
+
> Build software through human-language-first syntax with native support for AI,
|
|
7
|
+
> multimodal workflows, reactive interfaces, and portable execution.
|
|
8
|
+
|
|
9
|
+
## Vision
|
|
10
|
+
|
|
11
|
+
`multilingual` is becoming a programming language for the age of human
|
|
12
|
+
language, AI, multimodal computing, and living interfaces.
|
|
13
|
+
|
|
14
|
+
Its purpose is bigger than keyword translation. The goal is to make it possible
|
|
15
|
+
to express the same precise program semantics across human languages while also
|
|
16
|
+
making modern software primitives feel native:
|
|
17
|
+
|
|
18
|
+
- structured data and pattern matching
|
|
19
|
+
- AI generation, extraction, planning, and tool use
|
|
20
|
+
- multimodal input and output
|
|
21
|
+
- reactive state and interfaces
|
|
22
|
+
- portable execution across environments
|
|
23
|
+
|
|
24
|
+
Read the language direction here:
|
|
25
|
+
|
|
26
|
+
- Vision: [docs/vision.md](docs/vision.md)
|
|
27
|
+
- Core 1.0: [docs/spec/core_1_0.md](docs/spec/core_1_0.md)
|
|
28
|
+
- 1.0 roadmap: [docs/roadmaps/multilingual_1_0.md](docs/roadmaps/multilingual_1_0.md)
|
|
29
|
+
|
|
30
|
+
## Strategic Direction
|
|
31
|
+
|
|
32
|
+
The project is moving toward a clearer identity:
|
|
33
|
+
|
|
34
|
+
- one semantic programming model expressed through many human languages
|
|
35
|
+
- first-class semantics for AI, retrieval, tools, and multimodal workflows
|
|
36
|
+
- structured concurrency, observability, memory, and agent coordination
|
|
37
|
+
- reactive and distributed programs that span browser, device, edge, and cloud
|
|
38
|
+
- portable execution where semantics stay stable while backends adapt
|
|
39
|
+
|
|
40
|
+
The repository already contains early pieces of that future, but the current
|
|
41
|
+
implementation is still a transitional platform between the historical
|
|
42
|
+
multilingual compiler pipeline and the fuller Core 1.0 language model.
|
|
43
|
+
|
|
44
|
+
## What Multilingual Is
|
|
45
|
+
|
|
46
|
+
- a human-language-first programming language
|
|
47
|
+
- a shared semantic model expressed through multiple language surfaces
|
|
48
|
+
- an AI-native language platform, not just a syntax experiment
|
|
49
|
+
- a research and implementation space for multilingual programming systems
|
|
50
|
+
|
|
51
|
+
## Why Multilingual
|
|
52
|
+
|
|
53
|
+
- **Human-language-first programming**: code should not force people to abandon
|
|
54
|
+
their language or mode of expression.
|
|
55
|
+
- **Shared semantics**: different human-language surfaces should express the
|
|
56
|
+
same underlying program.
|
|
57
|
+
- **AI-native direction**: models, tools, retrieval, and semantic workflows are
|
|
58
|
+
becoming first-class language concepts.
|
|
59
|
+
- **Portable architecture**: one language should move across runtimes and
|
|
60
|
+
environments without losing meaning.
|
|
61
|
+
|
|
62
|
+
### Pipeline Illustration
|
|
63
|
+
|
|
64
|
+

|
|
65
|
+
|
|
66
|
+
## Current Platform
|
|
67
|
+
|
|
68
|
+
Today the repository already provides:
|
|
69
|
+
|
|
70
|
+
- multilingual frontends driven by the USM keyword model
|
|
71
|
+
- a shared parser, AST, and semantic-IR direction
|
|
72
|
+
- semantic analysis plus Python and WAT/WASM code generation
|
|
73
|
+
- Python execution support
|
|
74
|
+
- WAT/WASM generation and backend selection
|
|
75
|
+
- browser demos and DOM-oriented workflows
|
|
76
|
+
|
|
77
|
+
This is an active language platform in motion, not just a whitepaper.
|
|
78
|
+
|
|
79
|
+
## Current Limitations
|
|
80
|
+
|
|
81
|
+
- the current semantic core is still thinner than the long-term Core 1.0 model
|
|
82
|
+
- some localized surfaces still feel less natural than they should
|
|
83
|
+
- parts of the implementation still reflect the historical compiler pipeline
|
|
84
|
+
more than the future language experience
|
|
85
|
+
- AI-native, multimodal, reactive, concurrent, and distributed constructs are
|
|
86
|
+
in mixed stages of design, prototyping, and rollout
|
|
87
|
+
- documentation still needs ongoing migration from "current compiler" wording
|
|
88
|
+
toward "future language platform" wording
|
|
89
|
+
|
|
90
|
+
Details:
|
|
91
|
+
|
|
92
|
+
- Word order and naturalness: [docs/word_order_and_naturalness.md](docs/word_order_and_naturalness.md)
|
|
93
|
+
- Controlled language scope: [docs/cnl_scope.md](docs/cnl_scope.md)
|
|
94
|
+
- Current compatibility matrix: [docs/compatibility_matrix.md](docs/compatibility_matrix.md)
|
|
95
|
+
|
|
96
|
+
## Quick Start
|
|
97
|
+
|
|
98
|
+
Source files now prefer the `.multi` extension. The legacy `.ml` extension
|
|
99
|
+
remains fully supported for compatibility. Running the current implementation
|
|
100
|
+
requires Python 3.12 or newer.
|
|
101
|
+
|
|
102
|
+
### Try The Playground
|
|
103
|
+
|
|
104
|
+
You can try `multilingual` directly in your browser:
|
|
105
|
+
|
|
106
|
+
- Playground: https://johnsamuel.info/multilingual/playground.html
|
|
107
|
+
|
|
108
|
+
The playground lets you:
|
|
109
|
+
|
|
110
|
+
- write code in supported human languages
|
|
111
|
+
- run execution in Pyodide
|
|
112
|
+
- inspect generated Python
|
|
113
|
+
- inspect generated WAT/WASM output
|
|
114
|
+
- inspect generated Wasmtime bridge code
|
|
115
|
+
|
|
116
|
+
## Install
|
|
117
|
+
|
|
118
|
+
PyPI package: https://pypi.org/project/multilingualprogramming/
|
|
119
|
+
|
|
120
|
+
Option 1:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
python3 -m venv .venv
|
|
124
|
+
source .venv/bin/activate
|
|
125
|
+
python -m pip install --upgrade pip
|
|
126
|
+
python -m pip install multilingualprogramming
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Option 2:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
pipx install multilingualprogramming
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
For local development from source:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
pip install -r requirements.txt
|
|
139
|
+
pip install .
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Optional runtime extras:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
pip install "multilingualprogramming[wasm]"
|
|
146
|
+
pip install "multilingualprogramming[ai]"
|
|
147
|
+
pip install "multilingualprogramming[all]"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Hello World
|
|
151
|
+
|
|
152
|
+
```text
|
|
153
|
+
# English
|
|
154
|
+
print("Hello world")
|
|
155
|
+
|
|
156
|
+
# French
|
|
157
|
+
afficher("Bonjour le monde")
|
|
158
|
+
|
|
159
|
+
# Spanish
|
|
160
|
+
imprimir("Hola mundo")
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Use the REPL
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
multilingual
|
|
167
|
+
multilingual repl
|
|
168
|
+
multilingual repl --lang fr
|
|
169
|
+
multilingual repl --show-python
|
|
170
|
+
multilingual repl --show-wat
|
|
171
|
+
multilingual repl --show-rust
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
REPL commands:
|
|
175
|
+
|
|
176
|
+
- `:help` show commands
|
|
177
|
+
- `:language <code>` switch language
|
|
178
|
+
- `:python` toggle generated Python display
|
|
179
|
+
- `:wat` toggle generated WAT display
|
|
180
|
+
- `:rust` toggle generated Wasmtime bridge display
|
|
181
|
+
- `:reset` clear session state
|
|
182
|
+
- `:kw [XX]` show language keywords
|
|
183
|
+
- `:ops [XX]` show operators and symbols
|
|
184
|
+
- `:q` exit
|
|
185
|
+
|
|
186
|
+
## Run a Program
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
multilingual hello_en.multi
|
|
190
|
+
multilingual run hello_en.multi
|
|
191
|
+
multilingual run hello_fr.multi --lang fr
|
|
192
|
+
multilingual run hello_en.multi --show-backend
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Cross-Language Module Imports
|
|
196
|
+
|
|
197
|
+
You can import `.multi` and `.ml` modules across language surfaces in one program.
|
|
198
|
+
|
|
199
|
+
`module_fr.multi`:
|
|
200
|
+
|
|
201
|
+
```text
|
|
202
|
+
soit valeur = 41
|
|
203
|
+
def incremente(x):
|
|
204
|
+
retour x + 1
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
`main_en.multi`:
|
|
208
|
+
|
|
209
|
+
```text
|
|
210
|
+
import module_fr
|
|
211
|
+
print(module_fr.incremente(module_fr.valeur))
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Run:
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
multilingual run main_en.multi --lang en
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## Roadmap
|
|
221
|
+
|
|
222
|
+
Near-term priorities:
|
|
223
|
+
|
|
224
|
+
- stabilize the Core 1.0 semantic model
|
|
225
|
+
- strengthen the semantic IR and capability-aware analysis pipeline
|
|
226
|
+
- ship more unmistakable language features such as `fn`, `var`, `enum`, `|>`,
|
|
227
|
+
`par`, `spawn`, `memory`, and observability primitives
|
|
228
|
+
- continue building AI-native, multimodal, reactive, and distributed features
|
|
229
|
+
on top of that core
|
|
230
|
+
|
|
231
|
+
See:
|
|
232
|
+
|
|
233
|
+
- [docs/roadmaps/multilingual_1_0.md](docs/roadmaps/multilingual_1_0.md)
|
|
234
|
+
|
|
235
|
+
## More Documentation
|
|
236
|
+
|
|
237
|
+
- Usage examples: [USAGE.md](USAGE.md)
|
|
238
|
+
- Language design overview: [docs/design.md](docs/design.md)
|
|
239
|
+
- Frontend contracts: [docs/frontend_contracts.md](docs/frontend_contracts.md)
|
|
240
|
+
- Core spec draft: [docs/spec/core_1_0.md](docs/spec/core_1_0.md)
|
|
241
|
+
|
|
242
|
+
## Architect and Creator
|
|
243
|
+
- John Samuel
|
{multilingualprogramming-0.5.1 → multilingualprogramming-0.7.0}/multilingualprogramming/__init__.py
RENAMED
|
@@ -25,7 +25,7 @@ from multilingualprogramming.lexer.token import Token
|
|
|
25
25
|
from multilingualprogramming.lexer.token_types import TokenType
|
|
26
26
|
from multilingualprogramming.parser.parser import Parser
|
|
27
27
|
from multilingualprogramming.parser.ast_printer import ASTPrinter
|
|
28
|
-
from multilingualprogramming.
|
|
28
|
+
from multilingualprogramming.core.semantic_analyzer import (
|
|
29
29
|
Symbol, Scope, SymbolTable, SemanticAnalyzer,
|
|
30
30
|
)
|
|
31
31
|
from multilingualprogramming.parser.error_messages import ErrorMessageRegistry
|
|
@@ -34,8 +34,6 @@ from multilingualprogramming.codegen.wat_generator import WATCodeGenerator
|
|
|
34
34
|
from multilingualprogramming.codegen.runtime_builtins import RuntimeBuiltins
|
|
35
35
|
from multilingualprogramming.codegen.executor import ProgramExecutor, ExecutionResult
|
|
36
36
|
from multilingualprogramming.codegen.repl import REPL
|
|
37
|
-
from multilingualprogramming.core.ir import CoreIRProgram
|
|
38
|
-
from multilingualprogramming.core.lowering import lower_to_core_ir
|
|
39
37
|
from multilingualprogramming.runtime.numeric_primitives import (
|
|
40
38
|
Vec2,
|
|
41
39
|
ComplexScalar,
|
|
@@ -76,8 +74,6 @@ __all__ = [
|
|
|
76
74
|
"ProgramExecutor",
|
|
77
75
|
"ExecutionResult",
|
|
78
76
|
"REPL",
|
|
79
|
-
"CoreIRProgram",
|
|
80
|
-
"lower_to_core_ir",
|
|
81
77
|
"Vec2",
|
|
82
78
|
"ComplexScalar",
|
|
83
79
|
"FastRNG",
|