minilang1.0操作手册(Keep Basic)

MiniLang 1.0操作手册(MiniLang Language Manual)

版本:2025-05-16

---

目录  

1. 产品定位  

2. 运行环境  

3. 快速开始(30 秒上手)  

4. 语言参考  

5. 标准库速查表  

6. 文件 I/O、REPL 与调试器  

7. 典型应用场景  

8. 常见问题 FAQ  

9. 社区与贡献  

---

1. 产品定位

MiniLang 1.0 是一款 单文件、零依赖、跨平台 的 BASIC 方言实现,目标是把 1980 年代 BASIC 的简洁 与 现代轻量级脚本语言 的便利合二为一:  

- 适合 教育、嵌入式原型、算法验证、数据脚本。  

- 单文件 ≤ 2 000 行 C 源码,可 gcc 一行编译,也可 直接拖进 DOSBox 运行 .COM。  

---

2. 运行环境  

平台 最小配置 编译指令 备注 

Linux / macOS / WSL 任何带 gcc/clang `gcc minic10.c -lm -o minic10` 默认 REPL 

Windows MinGW-W64 或 MSVC `gcc minic10.c -lm -o minic10.exe` 同样一行 

DOSBox / FreeDOS 8086 实模式 `gcc minic10.c -o minic10 && ./minic10 file.bas > a.com` 生成 .COM 

---

3. 快速开始(30 秒上手)  

```bash

# 1. 获取源码

curl -O https://github.com/MiniLang/minic10/raw/main/minic10.c

# 2. 一行编译

gcc minic10.c -lm -o minic10

# 3. 批处理脚本

echo '10 PRINT "Hello MiniLang"' > demo.bas

./minic10 demo.bas # 立即运行

# 或者

./minic10 # REPL 模式

> PRINT 2+3*4 : PRINT RND(100)

```

---

4. 语言参考  

4.1 行格式  

```

[行号] 语句 [: 语句 ...]

```

行号可省略(REPL 自动递增),批处理建议使用 10 20 30… 方便插入。

4.2 数据类型  

- INTEGER 32-bit 有符号  

- FLOAT IEEE-754 单精度  

- STRING 最长 255 字节,自动 `\0` 结尾  

4.3 变量  

- 数值:`A` … `Z`  

- 字符串:`A$` … `Z$`  

- 数组:一维到三维  

 

```

  DIM A(10)

  DIM B(2,3,4)

  LET A(5)=123

  ```

4.4 运算符  

- 算术:`+ - * / ^`(幂)  

- 关系:`= < > <= >= <>`  

- 逻辑:`AND OR NOT`  

4.5 控制结构  

```

FOR I = 1 TO 10 STEP 2

    ...

NEXT I

IF X>0 THEN PRINT "positive" ELSE PRINT "zero or neg"

GOTO 100

CALL MySub

RETURN

WHILE X<10

    ...

WEND

```

4.6 函数定义  

- 单行表达式

  `DEF FN SQR(X)=X*X`  

- 多行过程  

```

  DEF FN MySub

      PRINT "Hi"

  RETURN

  ```

调用  

```

PRINT FN SQR(9)

CALL MySub

``

---

5. 标准库速查表  

数值 字符串 

`ABS(x)` `SIN(x)` `COS(x)` `TAN(x)` `LOG(x)` `EXP(x)` `SQR(x)` `INT(x)` `RND(n)` `LEN(s$)` `ASC(s$)` `CHR$(n)` `MID$(s$,p,l)` `LEFT$(s$,l)` `RIGHT$(s$,l)` `STR$(x)` 

---

6. 文件 I/O、REPL 与调试器  

6.1 文件 I/O  

```

OPEN "DATA.TXT" FOR INPUT AS #1

OPEN "LOG.TXT" FOR OUTPUT AS #2

INPUT #1, A$, B

PRINT #2, "Result="; A$, B

CLOSE #1

CLOSE #2

```

 

6.2 REPL 交互  

- 启动:`./minic10`  

- 提示符 `>`  

- 支持行编辑、历史记录(终端自带)  

- 多语句行同样支持  

```

> LET A$="REPL" : PRINT "Hello "; A$

Hello REPL

```

6.3 调试器  

```

TRACE ON /* 每行执行前打印行号 */

STOP /* 手动断点 */

CONT /* 继续 */

```

---

7. 典型应用场景  

场景 示例脚本片段 

算法教学 `FOR I=1 TO 100 : PRINT I*I : NEXT I` 

数据脚本 `OPEN "sales.csv" FOR INPUT AS #1 …` 

嵌入式原型 生成 .COM 后烧录到 8086 单板,直接运行 

竞赛脚本 `WHILE T<1000 : T=T+1 : WEND` 快速验证逻辑 

复古游戏 `DEF FN Fire` 多行动画子程序 

---

8. 常见问题 FAQ  

Q1 如何生成 DOS .COM?

A:运行批处理后,MiniLang 会把字节流直接写 `prog.com`,用 `dosbox prog.com` 即可。

Q2 浮点精度?

A:单精度(≈7 位有效数字),足够教育使用;如需双精度请自行修改源码。

Q3 数组最大维度?

A:三维,每维 ≤32767,总和受 `MAXSTR` 限制。

Q4 如何扩展新函数?

A:在 `call_builtin()` 里加一行映射即可,重新编译即可生效。

---

9. 社区与贡献  

- GitHub 仓库:https://github.com/MiniLang/minic10  

- Issue 与 PR 随时欢迎  

- 教学案例、示例脚本持续更新

---

🎉 至此,MiniLang 1.0 操作手册完毕。

祝编码愉快,Keep BASIC alive!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值