What Ben and Ivan say: . On Sun, May 7, 2017 at 10:03 PM, Ben Goertzel <[email protected]> wrote:
> In principle the opencog Rule Engine and backward chainer can do this... > In principle, yes. In practice, you should get to know the internals of gcc or of clang/llvm or the java bytecode compiler, or even the guile-scheme bytecode compiler. All of these have "intermediate languages" (IL) inside of them. The IL are design to be -- easy to machine-read -- easy to machine-write -- easy to machine-apply rewrite rules. The rewrite rules are typically optimizations. That is, IL is a kind of "programming language" designed for use by algorithms rather than by humans. In pretty strong sense, opencog "atomese" is meant to be a super-general, super-whizzy IL. However, the way that it is designed would make it rather inefficient for use as in IL inside of a compiler: gcc and llvm have nearly a century worth of hand-crafting to make them extremely fast and well suited for compilation. If you don't know IL, then I'd recommend looking ath the guile IL. I've never had to use it, but I've skimmed it, and it looks ... interesting as far as such things go. Note that the guile IL has both scheme, and some version of javascript sitting on top of it. Anyway .. kind of the point of having atomese is in order to *avoid* the problem you mention: using a machine to synthesize "mainstream high-level languages" is kind of awkward, precisely because those languages are designed for use by humans, not by machines. There has been some work in this area; for example, if I recall correctly, "stalin" was a compiler that converted scheme to C code, which you could then compile with gcc, to get high-performance compiled scheme. Cython does something similar: it generates C code too, although "high performance" is not what it does. Also, the generated code is just barely human-readable. Its not obfuscated on purpose, its just not... human. --linas > > O > -- You received this message because you are subscribed to the Google Groups "opencog" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/opencog. To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CAHrUA36FyccCvDm4sQXKK3CP96QUVENohX3ujh1jhO5K85zxeg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
