安装和部署

Windows 环境安装

  1. 下载最新版本的 BCC
  2. 解压到任意目录
  3. 将 bcc.exe 所在目录添加到系统环境变量 PATH 中
  4. 打开命令提示符,输入 bcc --help 验证安装
💡
提示:添加环境变量后需要重新打开命令提示符才能生效。

VSCode 扩展安装

  1. 打开 VSCode
  2. 按 Ctrl+Shift+X 打开扩展面板
  3. 搜索 "BCC"
  4. 点击安装
⚠️
注意:确保已经安装了 BCC 解释器才能使用扩展的全部功能。

快速开始

创建第一个程序

hello.bcs

 // 这是我的第一个 BCC 程序
 x = 5
 y = 3
 
 if(x > y) {
     print("x 大于 y")
 }
                        

运行程序:


 bcc hello.bcs
                        

基本概念

变量

BCC 使用动态类型系统,变量无需声明类型。


 // 数字
 x = 42
 
 // 字符串
 name = "BCC"
 
 // 布尔值
 isValid = true
                        

运算符


 // 算术运算符
 sum = a + b
 diff = a - b
 product = a * b
 quotient = a / b
 
 // 比较运算符
 isEqual = x == y
 isGreater = x > y
 isLess = x < y
                        

语法详解

条件语句


 if(condition) {
     // 代码块
 }
 
 // 示例
 if(score > 60) {
     print("及格")
 }
                        
💡
提示:条件表达式用括号包裹,代码块必须用大括号包裹。

循环语句


 // for 循环
 for(i = 0, i < 5, i = i + 1) {
     print(i)
 }
 
 // while 循环
 while(x < 10) {
     print(x)
     x = x + 1
 }
                        
⚠️
注意:确保循环有正确的终止条件,避免无限循环。

函数系统

函数定义

BCC 支持公共和私有函数定义,使用 def 关键字。

functions.bcs

 // 公共函数,可以被其他模块访问
 def public add(x, y) {
     return x + y
 }
 
 // 私有函数,只能在当前模块内访问
 def private helper() {
     print("辅助函数")
 }
                        
💡
提示:函数必须指定 public 或 private 访问修饰符。

代码块参数

BCC 支持将代码块作为函数参数传递。


 // 定义接受代码块的函数
 def public forEach(block: BCC.Codeblock) {
     block.execute()
 }
 
 // 使用代码块
 forEach {
     print("代码块内容")
 }
                        

模块管理

模块导入

使用 import 关键字导入其他模块。

main.bcs

 // 导入基础模块
 import "basicDef.bcm"
 
 // 使用模块中的函数
 result = max(5, 3)
 print(result)
                        
💡
提示:模块文件使用 .bcm 扩展名,源代码文件使用 .bcs 扩展名。

模块开发

创建可重用的模块。

math.bcm

 def public sum(numbers) {
     temp = 0
     for(i = 0, i < len(numbers) + 1, i = i + 1) {
         temp = numbers[i]     
     }
     return temp
  }
  
  def private validate(x) {
      // 内部验证函数
      return x >= 0
  }
                        
⚠️
注意:只有 public 函数可以被其他模块访问,private 函数用于模块内部实现。

错误处理

常见错误类型


 // 1. 未定义的变量
 print(undefinedVar)  // 错误:未定义的变量
 
 // 2. 函数调用错误
 add()  // 错误:参数数量不匹配
 
 // 3. 类型错误
 x = "5" + 3  // 错误:不能将字符串和数字相加
                        
⚠️
注意:BCC 会提供详细的错误信息,包括错误类型、位置和可能的解决方案。

错误信息解读

错误输出示例

 错误: 在文件 example.bcs 中
 类型: 未定义的标识符
 描述: 尝试使用未声明的变量
 位置: 第 3 行, 第 7 列
 
 相关代码:
   2 │ x = 5
 > 3 │ print(y)
         ^
   4 │ 
 
 可能的解决方案:
 1. 确保在使用变量前已经声明并赋值
 2. 检查变量名的拼写是否正确
 3. 检查变量名的大小写是否正确
                        

最佳实践

代码组织


 // 1. 相关函数分组
 def public validateInput(x) {
     return x > 0
 }
 
 def public processInput(x) {
     if(validateInput(x)) {
         // 处理输入
     }
 }
 
 // 2. 使用有意义的变量名
 score = 85        // 好的命名
 s = 85           // 不好的命名
                        
💡
提示:良好的代码组织能提高代码的可读性和可维护性。

模块化开发

将代码分割成多个功能模块,每个模块负责特定的功能。

项目结构示例

 project/
 ├── main.bcs          # 主程序入口
 ├── modules/
 │   ├── math.bcm      # 数学运算模块
 │   ├── io.bcm        # 输入输出模块
 │   └── utils.bcm     # 工具函数模块
 └── tests/            # 测试文件目录
                        
💡
提示:合理的项目结构有助于代码管理和团队协作。

高级特性

代码块和迭代


 // forEach 代码块
 forEach {
     print("简单代码块")
 }
 
 // 带参数的代码块
 def public process(block: BCC.Codeblock) {
     nsreturn block  // 不停止的返回
 }
 
 process {
     print("处理中...")
 }
                        
💡
提示:nsreturn 允许代码块继续执行而不是立即返回。

数组操作


 // 数组索引访问
 arr = [1, 2, 3, 4, 5]
 first = arr[0]
 
 // 数组长度
 size = len(arr)
 
 // 数组遍历
 for(i = 0, i < len(arr), i = i + 1) {
     print(arr[i])
 }
                        

延迟求值


 // 使用 expr 延迟表达式求值
 condition = expr(x > 5)
 
 while(eval(condition)) {
     print("x 大于 5")
     x = x - 1
 }
                        
⚠️
注意:延迟求值可以提高性能,但要注意变量的作用域。