They do not "do the actual work", but simply spit out the rules in language defined in problem's description.
For example, sample program in Perl could be:
print <<EOF
000 dada 000 dada da
000 umda 000 dada da
000 shsh 000 shsh da
000 didi 001 didi di
001 dada 002 didi di
EOF
However, nothing is passed to such program's input and it's just another (possibly more convinient?) way besides passing the rules in problem's language as program in "TEXT" language.