自己増殖とかいうとやっぱりスクリプト系なのかな。
ちょっとPerlで書いてみた。
2つの引数を加算する"add.pl"をプログラム内から生成して、
それを呼び出して使用している。

#!/usr/bin/perl

$A1 = '#!/usr/bin/perl';
$A2 = '$A = $ARGV[0] + $ARGV[1];';
$A3 = 'print "$A";';

open (f, "> ./add.pl");
print f "$A1\n";
print f "$A2\n";
print f "$A3\n";
close (f);

`chmod +x ./add.pl`;

$B = `./add.pl 3 5`;
print "3 + 5 is ... $B\n";