Ще про «суржиковий» код на кількох мовах. Насправді я постійно так роблю. Це досить зручно — розміщувати в одному пакетному файлі і код програми (на Джаві, Сі, Паскалі тощо), і інструкції з компіляції та запуску цієї програми.
@(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, щоб у ньому перекомпілювати програму — накладно по часу, мені зручніше все робити в одному текстовому редакторі. Тому текст на довільній мові програмування розміщую в батнику, на початку якого дописую заголовок для виклику компілятора. Так, там є певні складнощі з суміщенням синтаксису різних мов з батником, для кожної мови потрібен свій підхід, але я склав колекцію заголовків для різних мов, і просто підставляю потрібну заготовку.