MiniLang 1.6
零信任云原生 BASIC完全操作手册
2025-07-16 最终版
📘 目录
1. 快速上手
2. 安装与编译
3. 语言语法总览
4. 零信任安全模型
5. 网络与数据库
6. 协程与并发
7. 虚拟文件系统(VFS)
8. 包管理器 & 插件
9. 部署模式
10. 监控与调试
11. 常见错误与 FAQ
12. 升级路径
1️⃣ 快速上手(30 秒)
```bash
# 1. 获取
git clone https://github.com/MiniLang/minic16.git
cd minic16
# 2. 编译
make # Linux/macOS/WSL
mingw32-make # Windows MinGW
make wasm # WebAssembly
# 3. 运行
./minic16 cloud_echo.bas
```
浏览器打开 `http://localhost:8080/hello?name=Alice`
→ `"Hello Alice"`
---
2️⃣ 安装与编译
平台 命令 输出
Linux / macOS `make` `minic16`
Windows MinGW `mingw32-make` `minic16.exe`
Docker `docker run -p 8080:8080 miniclang/minic16 cloud_echo.bas`
Kubernetes `kubectl apply -f k8s/helm/`
WebAssembly `make wasm && open dist/index.html`
---
3️⃣ 语言语法总览
3.1 基本类型
类型 示例 范围
int64 `LET x = 1234567890123LL` -2⁶³ 2⁶³-1
double `LET pi = 3.1415926` IEEE-754 64-bit
string `LET s$ = "hello"` 最长 65535
3.2 变量与数组
```basic
LET playerScore = 0
DIM big(10000000) # 动态 64 位数组
REDIM big(n*2) # 运行期重设大小
```
3.3 控制结构
```basic
FOR I=1 TO 10 STEP 2
PRINT I
NEXT I
IF score>0 THEN
PRINT "positive"
ELSE
PRINT "zero or negative"
END IF
WHILE EVENT
' 事件循环
WEND
```
---
4️⃣ 零信任安全模型
4.1 启用沙箱
```basic
SANDBOX ON # 默认开启
SANDBOX FILE /tmp/* # 白名单路径
SANDBOX NET 127.0.0.1/24 # 网络白名单
```
4.2 运行时限制
- 文件系统:白名单路径
- 网络:仅允许白名单 IP/域名
- 内存:默认 512 MB,可 `ENV MINIC_MEM_LIMIT=1g`
- 系统调用:Seccomp-bpf 过滤
---
5️⃣ 网络与数据库
5.1 网络套接字
```basic
# 客户端
SOCK = OPEN "tcp://example.com:80"
SEND SOCK, "GET / HTTP/1.1\r\nHost:example.com\r\n\r\n"
RECV SOCK, LINE$
CLOSE SOCK
# 服务器
SOCK = OPEN "tcp://0.0.0.0:8080"
ON SOCK EVENT GOTO 100
```
5.2 数据库连接池
```basic
# PostgreSQL
DB POOL "pg://user:pass@db:5432/mydb"
DB EXEC "INSERT INTO t(name) VALUES (?)", "Alice"
# MySQL
DB POOL "mysql://user:pass@db:3306/mydb"
# SQLite
DB POOL "sqlite:///app.db"
```
---
6️⃣ 协程与并发
6.1 分布式云函数
```basic
CLUSTER FN add(a,b) = a + b
```
自动注册到 Kubernetes Service Mesh。
6.2 协程
```basic
COBEGIN
PRINT "task1"
COEND
```
6.3 通道通信
```basic
CHANNEL c = NEW
COBEGIN
SEND c, 42
COEND
RECV c, x
```
---
7️⃣ 虚拟文件系统(VFS)
协议 示例 说明
本地 `OPEN "vfs://./data.txt"`
HTTP `OPEN "vfs://https://site.com/file.json"`
ZIP `OPEN "vfs://archive.zip/data.txt"`
---
8️⃣ 包管理器 & 插件
8.1 安装包
```basic
PKG INSTALL "math"
IMPORT "math"
PRINT math::sqrt64(2)
```
8.2 插件接口
```c
// plugin_api.h
float plugin_sqrt64(float x);
```
动态加载 `.dll` / `.so` / `.wasm`。
---
9️⃣ 部署模式
场景 命令 备注
本地单进程 `./minic16 script.bas`
Docker 容器 `docker run -p 8080:8080 miniclang/minic16 cloud_echo.bas`
K8s 集群 `kubectl apply -f k8s/helm/`
边缘裸机 `scp minic16 root@edge:/opt && ./minic16 edge.bas`
WebAssembly `make wasm && open dist/index.html`
---
🔍 10. 监控与调试
工具 启用 输出
链路追踪 `TRACE ON` OpenTelemetry → Jaeger
Prometheus `METRICS ON` `curl localhost:9090/metrics`
日志级别 `ENV MINIC_LOG=debug` stdout/json
---
❗ 11. 常见错误与 FAQ
报错 原因 解决
`Subscript out of range` 数组越界 检查 `DIM` 边界
`SANDBOX: access denied` 沙箱限制 调整白名单
`DB: pool exhausted` 连接池满 `ENV MINIC_DB_MAX=200`
`JIT: illegal instruction` CPU 不支持 `JIT OFF` 回退解释器
---
🔄 12. 升级路径
旧版本 升级动作
1.4 → 1.5 脚本无需修改,重新编译
1.3 → 1.5 替换 `DIM` 大数组即可
---
✅ 现在你可以把 BASIC 脚本一键变成零信任云函数!
祝部署愉快!
38

被折叠的 条评论
为什么被折叠?



