Ще про «суржиковий» код на кількох мовах. Насправді я постійно так роблю. Це досить зручно — розміщувати в одному пакетному файлі і код програми (на Джаві, Сі, Паскалі тощо), і інструкції з компіляції та запуску цієї програми.
@(echo ^(^*
@type "%~f0")>"%~dpn0.pas"
@call fpc "%~dpn0.pas" >nul
@del "%~dpn0.pas"
@del "%~dpn0.o"
@"%~dpn0.exe" %*
@goto :eof
:mode=pascal:*)
var
    i, a, b, c: integer;
       //k, v: string;
begin
 writeln;
 a:=ord(' '); b:=255;
 //or get a, b from paramstr
 for i:=1 to paramcount do begin
     
       if paramstr(i)='-f' then
           val(paramstr(i+1), a, c)
       else if paramstr(i)='-t' then
           val(paramstr(i+1), b, c)
       else if paramstr(i)='-F' then 
           a:=ord(paramstr(i+1)[1])
       else if paramstr(i)='-T' then 
           b:=ord(paramstr(i+1)[1])
       {else if }
       end;
 for i:=a to b do begin
     write(i:6,'-',chr(i));
     if i=13 then begin
         writeln;
         writeln('<---------------------------------------------------------------|')
         end;
     if i mod 8 = 7 then writeln;
     end;
 writeln
end.
Йдеться, звичайно, не про комерційний код. Код, який для себе пишу я, не є ні комерційним, ні демонстраційним, ні навіть навчальним, його нема сенсу оформлювати за всіма правилами — ніхто ці ритуальні дії все одно не побачить і не оцінить. Оформлювати маленьку програмку як «Проект» з одним чи кількома допоміжними файлами (мейкфайл чи окремий батник для компіляції) — дещо накладно. Вводити команди компілятора руками — незручно. Запускати щоразу IDE, щоб у ньому перекомпілювати програму — накладно по часу, мені зручніше все робити в одному текстовому редакторі. Тому текст на довільній мові програмування розміщую в батнику, на початку якого дописую заголовок для виклику компілятора. Так, там є певні складнощі з суміщенням синтаксису різних мов з батником, для кожної мови потрібен свій підхід, але я склав колекцію заголовків для різних мов, і просто підставляю потрібну заготовку.