.de Q .nf .na .pso awk 'BEGIN{bs=sprintf("%c",92); pre=bs"&"} {out=pre; for(i=1;i<=length($0);i++){c=substr($0,i,1); if(c==bs) out=out bs bs; else out=out c} print out}' "\n[.F]" .ex .. .Q
nroff -U -Tascii quine.roff | sed -Ez '$ s/\n+$//'
It's possible to write quines in pure C or perl or m4 or python, without shelling out to another language.