I’m looking for the most suitable programing language that would fit the most those requirements (by order of importance):

  1. Able to communicate with another “master” program running on the same machine (this one could be developed in python for instance, but it’s not defined yet).

  2. Permissive: the program should be able to have syntax issue, but it should not be a problem until this part of the code actually has to run. Not clear enough? Check this out (in js):

    function OK() {
        return;
    }
    
    Function notOK() {
         “~ù*^ SOME MESS HERE THAT HAS NO SENSE $”ér+
    }
    
    OK();       // perfectly run
    NotOK();    // crash only when it reaches this instruction
    
  3. Minimalist: the less instruction characters, the better (brainfuck is an extreme example of such a programming language as it only requires 8 instructions ;) ). Of course, weak typing is preferred.

For this moment, I think of using JS and node.js, but maybe you will have a better suggestion...

Thank you for your helpful advice !

Cheers


More about this project :

In this project, we aim to reproduce bacteria comportment and evolution. Each script will represent a bacterium. Thus, it will be often copied, but some random “mutations” will be applied on the code (delete, add or modify a character in the code). If the new code generated is viable, then the script continues to exist. Else, it will be deleted.

That said,

  1. Communication has to be possible because a master program will regulate all the “bacteria”.
  2. Permissive would be better as it will allow silent mutation (code modification that has, yet, no impact on the process), which could lead to much more flexibility and more complex mutations.
  3. Minimalist is better as it will reduce the number of possible mutations to apply.

Sorry, I know this project might sound silly :D

  • 1
    Please tell us why you want to do this. Above looks like a strategy to achieve a goal. What is your goal? (xy problem) – guettli Jul 31 at 11:05
  • 1
    I've added some precisions in the main post – Alexandre Guillot Jul 31 at 14:03
  • 1
    It actually sounds cool - A few bazillon calls to rand() and we created a Linux kernel! :) . Would be double cool if DNA# would work for your needs esolangs.org/wiki/DNA-Sharp – ivanivan Aug 1 at 1:26
  • Why not use HTTP for communication, with a RESTful API? – Mawg Sep 11 at 13:49
  • Anything wrong with Python as your language? it is hugely popular and has many exellecent libraries, sone of which mihght be useful to you – Mawg Sep 11 at 13:50

Lua might fit the bill. It is pretty simple as far as languages go, and it is interpreted so it won't fail until the offending instruction is encountered.

Note that there is litterature on this concept of evolving code. I think you might want to evolve the AST instead of the code itself.

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.