# 使用 Homebrew, MacPorts, Nix, apt 安装 ott

查看 ott 的安装路径、可执行文件、元数据以及面向 AI 代理工作流的安全说明。

## 安装

```sh
sudo av install brew:ott
```

其他安装命令:

### macOS

- Homebrew (100%):

```sh
brew install ott
```

  证据: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install ott
```

  证据: MacPorts ports tree: devel/ott/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#ott
```

  证据: nixpkgs package indexes: pkgs/by-name/ot/ott/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- Debian apt (92%):

```sh
sudo apt install libcoq-ott
```

  证据: Debian stable package indexes: libcoq-ott from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

## 软件包事实

- **软件包键:** brew:ott
- **软件包管理器:** Homebrew
- **版本:** 0.34
- **来源摘要:** Tool for writing definitions of programming languages and calculi
- **主页:** <https://www.cl.cam.ac.uk/~pes20/ott/>
- **仓库:** <https://github.com/ott-lang/ott>
- **最后更新:** 2026-07-13T05:11:31Z
- **已生成:** 2026-08-03T19:37:03+00:00

## 可执行文件

- ott (别名)

## 安装行为

- Bottle: 不可用

## 版本和新鲜度

- 页面生成时间: 2026-08-03
- 管理器版本: 0.34
## 项目历史与用法

Ott is a tool and metalanguage for writing definitions of programming languages and calculi. It lets semanticists write syntax, binding structure, and inference rules once, then generate LaTeX, Coq, HOL, Isabelle/HOL, Lem, OCaml, and related artifacts.

### 项目历史

Ott was principally developed by Peter Sewell, Francesco Zappa Nardelli, and Scott Owens, with a wider contributor group. Its design was published at ICFP 2007 and then as a Journal of Functional Programming article in January 2010.

The project arose from a specific pain point in programming-language research: full-scale semantic definitions are valuable but hard to keep consistent when they live only in informal mathematics or inside a single proof assistant. Ott's answer was a readable ASCII notation plus sanity checking and code generation into both publication and mechanized-proof formats.

### 采用历史

The Ott manual and repository document examples spanning untyped and simply typed lambda calculi, ML polymorphism, POPLmark F<:, TAPL systems, a Leroy-style module system, Lightweight Java, Java module-system work, and a substantial OCaml-light semantics. The JFP paper reports larger case studies including OCaml light with 310 rules and mechanized soundness results.

Ott's adoption is strongest in programming-languages research, where the same source definition can support papers, collaborative editing, and proof assistant artifacts. The 2010 'Ott or Nott' workshop abstract is a useful adoption signal: it presents Ott as part of a working language-design process, not merely as a backend generator.

### 使用方式

A typical user writes an .ott source file describing object-language syntax and semantic judgments, then invokes ott with one or more -o outputs such as .tex, .v, .thy, HOL script, Lem, or OCaml files. The tool can also filter embedded terms in LaTeX, Coq, Isabelle/HOL, Lem, or OCaml source.

The generated artifacts reduce drift between the published rules, the parser-level syntax, and the formal definitions used for mechanized reasoning. For package users, the command-line binary is the bridge between a research notation and several proof and documentation ecosystems.

### 为什么软件包爱好者会关心

Ott is a rare package that is both a compiler-like CLI and a research infrastructure artifact. Its package value comes from reproducibility: a language-definition source can be checked, regenerated, versioned, and consumed by multiple proof assistants and typesetting workflows.

### 时间线

- 2007: Ott was presented at ICFP as 'Effective Tool Support for the Working Semanticist'.
- 2010: The Journal of Functional Programming article expanded the Ott design, motivation, and case studies.
- 2010: 'Ott or Nott' discussed the experience of using Ott in programming-language design and mechanized-metatheory workflows.
- 2024: The GitHub README stated that Ott remained in continuous use.

### Related projects

- Ott sits alongside Coq, HOL, Isabelle/HOL, Lem, OCaml, LaTeX, POPLmark, TAPL-style calculi, Lightweight Java, and OCaml-light semantics work.

### 来源

- <https://dl.acm.org/doi/10.1145/1291220.1291155>
- <https://github.com/ott-lang/ott>
- <https://www.cambridge.org/core/journals/journal-of-functional-programming/article/ott-effective-tool-support-for-the-working-semanticist/4F02FB206B5209D42B3BF2ED2240A802>
- <https://www.cis.upenn.edu/~bcpierce/wmm/wmm10/sewell.pdf>
- <https://www.cl.cam.ac.uk/~pes20/ott/top2.html>


## 安全说明

generalized runtime or code generation signal.

- **Geiger 风险:** yellow / 中
- generalized runtime or code generation signal

## 其他软件包管理器记录

- Debian apt - libcoq-ott - 0.34+ds-1+b4: normalized package name match | Debian stable package indexes: libcoq-ott from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Ott tool (Coq plugin) | https://github.com/ott-lang/ott
- Debian apt - ott-tools - 0.34+ds-1+b4: normalized package name match | Debian stable package indexes: ott-tools from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Ott tool (executable) | https://github.com/ott-lang/ott
- Nix - ott: normalized package name match | nixpkgs package indexes: pkgs/by-name/ot/ott/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - libcoq-ott - 0.33+ds-2build3: normalized package name match | Ubuntu 24.04 LTS package indexes: libcoq-ott from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Ott tool (Coq plugin) | https://github.com/ott-lang/ott
- Ubuntu apt - ott-tools - 0.33+ds-2build3: normalized package name match | Ubuntu 24.04 LTS package indexes: ott-tools from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Ott tool (executable) | https://github.com/ott-lang/ott
- MacPorts - ott: normalized package name match | MacPorts ports tree: devel/ott/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Combined YAML source

View the package source record on GitHub. [combined/ott.yml](https://github.com/mxcl/pkgdb/blob/main/combined/ott.yml)


## 来源

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
