Are there methods how to convert Turing machine (e.g. neural Turing machine or other rigorous Turing machine) into the source code/program that is written in some industrial programming language like C++, Java, JavaScript? There is a lot of work on Turing machine synthesis reinforcement learning, but it is very important to convert such inferred results into a programming language. One should be able to do that because of meta-interpretative learning that allows inferring new predicates/functions and allows to use compositionality for the program synthesis.

Here is a question that asks for a compiler that compiles code in languages such as C++/Java into Turing machines. Stackexchange has not come up with the answer up to now, but some examples are provided in comments, notably, the Turing machine compiler from the Ruby language.

My question is whether the disassembler (transpiler, re-compiler) that takes Turing machine as input (there are low level languages that describe the Turing machine, see for example here — some kind or Turing ASM) can translate this WB language program into Java, C++, Haskell or other high-level programming language that have functions, predicates and higher-order structures.

  • $\begingroup$ Neural Turing machines are a specific type of neural networks with memory. Like all other machine learning models, every implementation of NTMs will include both a training phase and an application phase, which allows running the model on a new input. This is no different from any other neural network, or any other machine learning primitive. $\endgroup$ Aug 26, 2019 at 11:01
  • $\begingroup$ My question was about converting neural or other kind of Turing machine into conscise form in which the meaningful predicates/functions are extracted and composed and which is suitable for the review and maintenance by human programmar and which is efficient for automatic maintenance (which is more efficient if predicates/functions are used). $\endgroup$
    – TomR
    Aug 26, 2019 at 11:42
  • $\begingroup$ I’m not sure machine learning models work this way. $\endgroup$ Aug 26, 2019 at 14:02
  • $\begingroup$ Why note? Clustering algorithms can cluster together the common state transition patterns and denote them by some function, predicate. Clustering is used in such way in the induction of natural language grammar in which the grammar categories are induced from the raw data. Meta-interpretative learning is another example how higher-order functions are induced as the set of operations of lower level functions, calls. $\endgroup$
    – TomR
    Aug 26, 2019 at 14:07
  • 1
    $\begingroup$ Neural networks don’t work this way. Random forests don’t work this way. Support vector machines don’t work this way. $\endgroup$ Aug 26, 2019 at 14:09


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.