C*:开发与证明一体化

安装 C* 工具链

EN | 中文

目前,C* 支持 darwin-x64darwin-x64、darwin-aarch64darwin-aarch64、linux-x64linux-x64 和 linux-aarch64linux-aarch64 平台。 C* 尚不原生支持 Windows,Windows 用户可以通过 WSL 或 Docker 使用 C* 工具链。

通过 VSCode 扩展安装(推荐)

  1. 在 VSCode 中搜索 CStar Language 扩展,安装其预发布版本(pre-release)。
  2. 按 ctrl+shift+pctrl+shift+p(macOS 上为 shift+cmd+pshift+cmd+p)打开命令面板,输入并选择 CStar IDE: Download CStar ToolchainCStar IDE: Download CStar Toolchain。
  3. 在弹出的对话框中确认安装脚本将从 https://cstarlang.orghttps://cstarlang.org 下载,然后点击“Yes”开始下载。
  4. 下载完成后,VSCode 会提示重启并启用扩展;如果没有出现提示,请手动重启 VSCode。
  5. 新建一个文件夹(例如 hellohello),在其中初始化 C* 项目(例如 cd hello ; cstarc initcd hello ; cstarc init),然后在 VSCode 中打开该文件夹。
  6. 将 clangdclangd 指向 C* 修改版(cst_clangdcst_clangd)以获得更好的编辑体验。

    • 选项一:在 VSCode 设置界面中,将工作空间的 clangd.pathclangd.path 设置为 cst_clangdcst_clangd。
    • 选项二:在 .vscode/settings.json.vscode/settings.json 中添加 { "clangd.path": "cst_clangd" }{ "clangd.path": "cst_clangd" }。
    • 如果编辑 C* 文件时仍提示无法识别 C* 语法,请再次重启 VSCode。
  7. 如果 HOL Light 服务器没有使用默认端口 70007000,请将扩展的 cstar.portcstar.port 设置为相应端口。

通过命令行安装

  1. 在 Linux 或 macOS 上执行 curl -fsSL https://cstarlang.org/install/unix.sh | bashcurl -fsSL https://cstarlang.org/install/unix.sh | bash。
  2. 运行 cstarc --helpcstarc --help 查看命令行工具的使用说明。

使用预制 Docker 镜像

我们提供的 Docker 镜像预置了 C* 工具链,可用作 VSCode Dev Container,无需在本地安装工具链。

  1. 拉取预制镜像:docker pull stonebuddha/cstar:latestdocker pull stonebuddha/cstar:latest。
  2. 在项目根目录下创建 .devcontainer/devcontainer.json.devcontainer/devcontainer.json,内容如下。
  3. 在 VSCode 中安装 Dev Containers 扩展,然后执行命令 Dev Containers: Reopen in ContainerDev Containers: Reopen in Container。
{
"name": "C* (CStar)",
"image": "stonebuddha/cstar:latest",
"customizations": {
"vscode": {
"extensions": [
"cstar-team.cstarlang@prerelease",
"llvm-vs-code-extensions.vscode-clangd"
],
"settings": {
"clangd.path": "cst_clangd",
"clangd.checkUpdates": false
}
}
}
}
{
"name": "C* (CStar)",
"image": "stonebuddha/cstar:latest",
"customizations": {
"vscode": {
"extensions": [
"cstar-team.cstarlang@prerelease",
"llvm-vs-code-extensions.vscode-clangd"
],
"settings": {
"clangd.path": "cst_clangd",
"clangd.checkUpdates": false
}
}
}
}