1 unstable release
0.1.0 | Aug 25, 2020 |
---|
#11 in #turing
7KB
64 lines
Cythan v3
Cythan is an abstract machine that has been created to be simpler than Turing's one. This is the Rust implementation of Cythan.
Why Rust ?
- Blazingly fast performances
- Low memory foot-print
- Great ecosystem
- Concurrency
- Memory safety
- WASM compilable
How to use Cythan in a project
Cargo.toml
[dependencies]
cythan = "*"
Example
let mut cythan = Cythan::new(vec![12,78,15,21,20]);
for _ in 0..20 {
cythan.next();
}
println!("{}",cythan);
Have found a bug, want to contribute or had an idea ?
Go in the issue section and leave an issue or fix one!
lib.rs
:
- The Cythan machine emulator librairy.
- The Cythan machine is a mathematical Turing Complete computer.
- The machine is composed of one vector. Each value of the vector is a positive integer, "pointing" to another value.
-
For every iteration of the machine
-
- The first case (the pointer), is incremented by 2.
-
- The 2 cases pointed by the first case before the incrementation is "executed". In a pair of executed cases, the case that as for index the second value is set to the value of the case that have as index the first value
- For instance,
1,5,3,0,0,999
will copy the content of the 5th case (999) into the 3rd one. The result after one iteration will be3,5,3,999,0,999
-
Example
-
- 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)
- }
-