#turing #machine #discursif

cythan

Rust 实现的 Cythan 机器

1 个不稳定版本

0.1.0 2020 年 8 月 25 日

#9 in #turing

Apache-2.0

7KB
64

Cythan v3

Cythan 是一个抽象机器,它的设计比图灵机更简单。这是 Cythan 的 Rust 实现。

为什么选择 Rust ?

  • 惊人的性能
  • 低内存占用
  • 优秀的生态系统
  • 并发处理
  • 内存安全
  • WASM 可编译

如何在项目中使用 Cythan

Cargo.toml

[dependencies]
cythan = "*"

示例

let mut cythan = Cythan::new(vec![12,78,15,21,20]);
for _ in 0..20 {
    cythan.next();
}
println!("{}",cythan);

发现了一个错误,想要贡献或有一个想法?

前往问题区域并提交问题或修复一个!


lib.rs:

  • Cythan 机器仿真库。
  • Cythan 机器是一种数学上的图灵完备计算机。
  • 机器由一个向量组成。向量的每个值都是一个正整数,"指向"另一个值。
  • 对于机器的每次迭代

    • 第一种情况(指针),增加 2。
    • 在增加之前,第一种情况指向的 2 个情况将被"执行"。在执行的一对情况中,索引为第二个值的那个情况被设置为索引为第一个值的情况的值
  • 例如,1,5,3,0,0,999 将将第 5 个情况(999)的内容复制到第 3 个情况中。一次迭代后的结果将是 3,5,3,999,0,999
  • 示例

  • use cythan::Cythan;
  • let mut cythan = Cythan::new( vec![1,9,5,10,1,0,0,11,0,1,20,21] );
  • println!("Cythan start:{:?}",cythan);
  • for a in 0..10 {
  • cythan.next();
  • println!("Cythan iteration {}:{:?}",a,cythan)
  • }

无运行时依赖