|
|
|
|
|
by musicnarcoman
1092 days ago
|
|
Nice work, I will have to read the research paper later ("Tacit Programming Code Synthesis and Optimization with Genetic Algorithms"). One question, why did you decide to make the size of cells visible to programs (pointer arithetic)?
Will that not lead to the same portability challenges that we have already had with C and C++? |
|
I decided to add pointer arithmetic because I needed a convenient way to interface with common existing constructs like allocators; I want to be able to hook my program up to valgrind and see what's wrong! But these pointer arithmetic operations are also generic across implementations: the web implementation uses tape indices as pointers (i.e. pointers with element sizes of 1), but the desktop implementation uses malloc/free and uses regular eight byte pointers. The compiler doesn't know the difference! This allows the architecture a large amount of flexibility across lots of different types of backend implementation!
Thanks for the feedback!