TGViewer
Cross Join - канал о разработке Cross Join - канал о разработке @crossjoin · 3.83K subscribers
Post #7 503
Спасибо Брагилевскому за просвещение, оказывается, Brainfuck - не просто какой-то смешной эзотерический язык. Он основан на языке P′′, придуманном Corrado Böhm аж в 1964 году для описания машины Тьюринга. Т.е. это были вполне себе математические исследования.

P′′ - это первый язык без goto, для которого доказана Тьюринг-полнота. Можно сказать прародитель структурного программирования.

Брейнфак - по сути тот же P′′, почти один в один, только с операторами ввода вывода.

(P.S. В русской Википедии есть интерпретатор Брейнфака на перле. По-моему, по читабельности Перл не очень далеко ушел от брейнфака.)

#!/usr/bin/perl
open F, shift;
@code = grep {/[+-\.,\[\]><]/} split '', <F>;
for (my $_ = 0; $_ < @code; ++$_) {
++$cpu[$i] if $code[$_] eq '+';
--$cpu[$i] if $code[$_] eq '-';
--$i if $code[$_] eq '<';
++$i if $code[$_] eq '>';
print chr $cpu[$i] if $code[$_] eq '.';
$cpu[$i] = ord <STDIN> if $code[$_] eq ',';
if ($code[$_] eq '[') {
if (!$cpu[$i]) {
++$brc;
while ($brc) {
++$_;
++$brc if $code[$_] eq '[';
--$brc if $code[$_] eq ']';
}
} else {
next;
}
} elsif ($code[$_] eq ']') {
if (!$cpu[$i]) {
next;
} else {
++$brc if $code[$_] eq ']';
while ($brc) {
--$_;
--$brc if $code[$_] eq '[';
++$brc if $code[$_] eq ']';
}
--$_;
}
}
}
  • 😁 1
  • 👀 1
More from @crossjoin
  1. Oct 2, 2026Теперь у нас у всех есть простой способ поддерживать знание иностранного языка. Просто раз…
  2. Oct 2, 2026Вышел NATS Server 2.15.0 Самое важное: • Надёжнее работа JetStream-кластера. Масштабирован…
  3. Sep 29, 2026😱 Отправили свое резюме на 129 вакансий на хх, а в ответ тишина .. Думаете, что дело в ры…
  4. Sep 28, 2026Слышал недавно в каком-то подкасте мысль, что Haskell плохо подходит для вайбкодинга прост…
  5. Sep 26, 2026Антон Жиянов написал мини-книгу по Go-concurrency. Это что-то вроде плотного конспекта с и…
  6. Sep 22, 2026photo post
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →