#esolang #programming-language #esoteric #calculator #improved #interpreter #rewrite

bin+lib dcim

dc 改进版 - 扩展重写的经典逆波兰表达式计算器/隐秘编程语言

34 个稳定版本

2.3.5 2023年12月24日
2.3.3 2023年11月19日
2.2.2 2023年7月31日
1.7.1 2023年3月28日

#152编程语言

Download history 2/week @ 2024-03-07 36/week @ 2024-03-28 55/week @ 2024-04-04

173 每月下载量

自定义许可LGPL-3.0+

69KB
2K SLoC

╭─────────────────────────╮
│   ╷           •         │
│   │                     │
│ ╭─┤  ╭─╴  •  ╶┤   ┌─┬─╮ │
│ │ │  │        │   │ │ │ │
│ ╰─┘  ╰─╴  •  ╶┴╴  ╵   ╵ │
╰─────────────────────────╯

dc 改进版 - 扩展重写的经典逆波兰表达式计算器/隐秘编程语言

本说明仅提及与 GNU dc 的比较。如果您不熟悉其核心原则,请阅读其 man 页或 维基百科文章

wiki 中的完整文档

构建/安装

(假设已完整且更新了 Rust 环境)

一般

cargo install dcim

特定平台的问题

  • 由于 Unix-like 处理终端控制的方式,导航输入(箭头、home、end...)已损坏。可能会通过添加适当的行编辑器在某个时候修复它。
  • 在 Windows 上,由于某些我无法控制的原因(在 GNU MPFR 内部),一些具有巨大尾数的数字会导致崩溃。如果您想计算到十亿位的数字,请使用 WSL。当有令人满意的纯 Rust 任意精度浮点库可用时,我将切换到该库。

Windows

预构建 x86-64 exe

在此处下载。 存储在我的 NAS 上,不能保证可用或更新。如果您不介意麻烦,强烈建议您自己构建它。

构建

gmp-mpfr-sys 需要特殊的编译环境以链接到 C 库,请按照 此处 的说明进行。在 MinGW 中构建一次后,应该保留工件,并且可以构建新的 dc:im 版本,直到我更新到 gmp-mpfr-sys 的新版本。

Android (Termux)

MAKEFLAGS="-i" cargo install dcim

当前版本的 GNU MPFR 失败了一个无关紧要的测试(不知道为什么),使用 -i 来假装它没有发生。

如果发生其他错误,请使用 clang

export RUSTFLAGS=" -C link-arg=$(clang -print-libgcc-file-name)"

与 GNU dc 相比最重要的变化

  • 新的命令,用于更容易的堆栈/寄存器操作和宏执行。
  • 数字是具有任意精度的二进制浮点数(参数 W)。参数 K 仅适用于输出。
  • 字符串具有完整的 Unicode 支持(以 UTF-8 存储)。
  • 改进和新算术命令。
  • 完整的字符串操作命令套件,包括正则表达式引擎。
  • 可用的寄存器数量是无限的。
  • 数字输入/输出基数无限向上,基数大于36时使用自定义的“任意基数”表示法。
  • 扩展的命令行参数语法,运行dcim -h以获取更多信息。
  • 错误信息更加有用和区分,且总是以! 开头。
  • 用于多线程宏执行的命令。
  • 包含各种命名常量和单位转换系数的库。

将dc:im用作库

箱子文档(自动生成)

  • 主要目的是将逻辑连接到不同的IO流集。
  • 您还可以用它为您的程序计算某些内容,之后从State手动提取结果。

依赖项

~6.5MB
~116K SLoC