I’ve been playing around with quines in various languages. I searched for one written in SAS, but had no luck. So in accordance with the principle of plentitude, I wrote one. Here it is; tested under SAS versions 9.2 and 9.3.

data _null_;
q = put(byte(34),$char1.);
length C1-C10 $ 80;
array C{10} $ C1-C10 (
" data _null_; " ,
" q = put(byte(34),$char1.); " ,
" length C1-C10 $ 80; " ,
" array C{10} $ C1-C10 ( " ,
" ) ; " ,
" do i = 1 to 4; put C{i}; end; " ,
" do i = 1 to dim(C)-1; put q C{i} q ','; end; " ,
" put q C{dim(C)} q ; " ,
" do i = 5 to dim(C); put C{i}; end; " ,
" run; "
) ;
do i = 1 to 4; put C{i}; end;
do i = 1 to dim(C)-1; put q C{i} q ','; end;
put q C{dim(C)} q ;
do i = 5 to dim(C); put C{i}; end;
run;