Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Полнота по Тьюрингу [ править ]

В статье утверждалось, что Befunge «в отличие от большинства машинных языков не является полным по Тьюрингу».

«Машинные языки» описывают языки, которые описывают работу реальных машин - этот класс языков никогда не бывает полным по Тьюрингу. У компьютеров есть фактические ограничения на объем адресуемой памяти и размер слова, как и в Befunge, поэтому они могут входить только в конечное число состояний.

Только абстрактные языки могут быть полными по Тьюрингу в строгом смысле слова. Например, класс самих машин Тьюринга или лямбда-исчисление. Языки, спецификация которых не включает ограничений на объем памяти, могут быть абстрактно полными по Тьюрингу (но их реализация на реальных машинах - нет).

- Предыдущий неподписанный комментарий добавлен 24.16.144.120 ( обсуждение ) 13:31, 8 сентября 2013 г. (UTC)

Пример сложного Hello World [ править ]

Чтобы это работало должным образом, вам нужен совместимый интерпретатор, который «возвращает» 0, когда вы пытаетесь вытолкнуть пустой стек.

Разве не было бы логичнее и проще просто поместить ноль в стек в самом начале программы? Gereeter ( разговор ) 00:27, 20 ноября 2010 (UTC)

В этом отношении было бы еще более разумным удалить лишний ":"

> 25 * "! Dlrow, olleH" v, _ @ >: ^

Gereeter ( разговор ) 15:16, 20 ноября 2010 (UTC)


Как насчет

"! dlrow olleH">: #, _ @ 

- Предыдущий беззнаковый комментарий добавлен 145.103.102.116 ( обсуждение ) 14:20, 4 июня 2012 г. (UTC)

Последние изменения [ править ]

Здесь не так много активности, но я чувствовал, что нужно немного изменить. Однако я был немного консервативен, поэтому выложу здесь несколько идей.

1). Я нигде не могу найти ссылку на Бетти, но вместо того, чтобы полностью ее удалить, я просто помещаю [[]] вокруг нее (что указывает на пустую страницу по уважительной причине). Если кто-то знает об этом больше, не стесняйтесь добавлять к нему. В остальном упоминать без ссылки бессмысленно.

2). Я добавил две ссылки и переместил ссылку BFC из середины статьи вниз вместе с остальными. Однако я уже могу сказать, что он становится большим, и я знаю, что некоторые строгие администраторы скажут: «Википедия - это не каталог ссылок!» И все же я считаю, что больше ссылок приносит больше пользы, чем меньше (и я все еще могу добавить больше!). Но как бы там ни было.

3). Мне также интересно, следует ли упомянуть различные доступные наборы тестов (Deewiant's Mycology, Jeffrey Lee's Fungus).

4). На самом деле, хотя существует не только Befunge93 и Funge98, кажется, что это самые популярные из них. Возможно, в будущем статью следует разделить (или расширить) на две отдельные. - Armslurp ( разговор ) 20:54, 4 ноября 2009 г. (UTC)

Компиляторы [ править ]

Верно ли утверждение, что «впоследствии было написано несколько компиляторов»? Насколько я понимаю, настоящий компилятор никогда не был написан - все «компиляторы» кода Befunge на самом деле просто связывали программу Befunge и интерпретатор в .exe.

- Herschel 13:44, 21 апреля 2004 г. (UTC)

Что ж, похоже, было бы трудно иметь скомпилированный язык, который позволял бы таким же образом самомодифицирующийся код ... - Grouse 13:35, 10 июля 2004 г. (UTC)
Объединение программы и интерпретатора вместе в .exe - это настоящая компиляция, даже если это похоже на обман. - Плач 19:36, 28 июля 2004 г. (UTC)
Я бы сказал, что это псевдокомпиляция, и она заслуживает упоминания как таковая в статье. Однако, через некоторое расследование, я обнаружил , что там есть «настоящий» компилятор находится здесь . (Обратите внимание, что это ссылка на архив страницы, поскольку на самом деле она больше не в сети.) Однако мне не удалось получить какие-либо программы Befunge, которые я пытался скомпилировать для правильной работы - вероятно, из-за некоторых нюансов Windows XP. Хотя мне это кажется довольно искренним. Может ли кто-нибудь убедиться, что он работает, и, возможно, он заслуживает упоминания в статье? - Herschel 18:54, 8 августа 2004 г. (UTC)
mtfi отлично работает, это то, что я использую. (Я на Linux) - плач, 05:01, 9 августа 2004 г. (UTC)
MTFI - это всего лишь интерпретатор, поэтому я предполагаю, что он имел в виду MCBC (который нигде не доступен, AFAICT). Единственный известный мне остаток - это интерпретатор BEFI.COM Райана Куснери для DOS (который был основан на MCBC). - Armslurp ( разговор ) 20:54, 4 ноября 2009 г. (UTC)
MCBC был компилятором, а не встроенным интерпретатором: он решил проблему самомодифицирующегося кода путем компиляции в самомодифицирующийся машинный код x86. Я знаю это, потому что написал это, но у меня нет независимой цитаты. 2620: 0: 1000: 4310: CD4F: 412A: 77AC: 15B3 ( разговор ) 23:00, 9 мая 2016 г. (UTC)
В Интернет-архиве все еще есть копии дистрибутива MCBC , и я могу подтвердить, что это настоящий компилятор, а не встроенный интерпретатор. Однако он 16-битный, поэтому вам понадобится эмулятор виртуальной машины или DOS, если вы хотите использовать его в 64-битной системе. Также не уверен, что это была самая последняя версия, потому что я думаю, что помню, что в ней было несколько ошибок, когда я ее последний раз тестировал, но она в основном работает.
Кстати, я всегда предполагал, что Бетти была первым настоящим компилятором Befunge, просто исходя из того, как об этом говорил Крис (формулировка в этой статье скопирована непосредственно из его вклада в вики Esolangs). Он явно не говорит об этом, но это единственный компилятор, о котором он упоминает, и тот факт, что в настоящее время его невозможно отследить, заставляет меня думать, что он, вероятно, был до интернета. Был ли MCBC до этого? - j4_james ( обсуждение ) 13:36, 18 сентября 2016 г. (UTC)

Как только что указал мне друг, похоже, что программа-пример не может скомпилироваться: нигде не используется символ '@' (конец программы) ;-) Я бы исправил сам, но я не совсем уверен в этом (Я не эксперт в этом языке :-P), и я тоже не уверен, где мне его поставить :-D - Фафнер 11:33, 28 июля 2004 г. (UTC)

Нет, программа правильная. У него нет @, потому что он никогда не останавливается. Это бесконечный цикл. - Плач 19:34, 28 июля 2004 г. (UTC)
Хорошо, '@' - это инструкция «выхода» или «возврата». Но я думаю, что статья стала бы точнее, если бы было дано более точное объяснение алгоритма. Говорят, что «эта стрелочная техника продемонстрирована в программе генератора случайных чисел ниже». Для меня генератор случайных чисел похож на функцию, которая возвращает разные значения при каждом вызове. Я не понимаю, где должен быть бесконечный цикл, если только программа не продолжает бесконечно печатать случайное число. Это так или что-то другое?
Fafner 08:38, 30 июля 2004 г. (UTC)
Эта программа генерирует (бесконечный поток) случайных чисел, поэтому (путем индукции мы заключаем, что) это генератор случайных чисел. Пожалуйста, объясните, какая часть этого неясна.
Дв 12:37, 30 июля 2004 г. (UTC)
Теперь мне все ясно, но я думаю, что то, что делает алгоритм, следует объяснить более точно. Может быть, всего одно или два предложения ;-)
Фафнер 21:07, 1 августа 2004 г. (UTC)
Конечно, вперед :)
Вт 18:23, 2 августа 2004 г. (UTC)
Сделанный.
Стелио 00:19, 3 марта 2006 г. (UTC)

Новый переводчик [ править ]

Кто-нибудь хочет добавить следующее?

http://yabi93.sf.net

Я согласен. Добавлен - Дугалл, 11:18, 24 июня 2006 г. (UTC).

Моя версия HTML5 Canvas
https://codepen.io/Alikberov/project/full/XVajxm/
https://jsfiddle.net/Alikberov/2m1cuxnw/
Использование цветных пикселей…
Аликберов ( доклад ) 08:43, 28 августа 2018 г. (UTC )

Вредоносное редактирование? [ редактировать ]

Анонимный пользователь здесь изменил слово «нравится» на «не похоже»:

Поскольку программа Befunge-93 может иметь только один стек и ее массив хранения ограничен, язык Befunge-93 в отличие от большинства машинных языков не является полным по Тьюрингу . 

Я не помню, какое утверждение должно быть правдой. Мне казалось, что большинство машинных языков из-за ограничений адресного пространства не являются полными по Тьюрингу, но достаточно близки для практических целей. Кто-нибудь из специалистов по CS хочет решить эту проблему? - Stevage 22:55, 1 декабря 2005 г. (UTC)

Большинство спецификаций компьютерных языков не имеют ограничений по объему. Их реализации, безусловно, есть (если у вас есть такая машина, я бы обязательно ее увидел). Таким образом, жесткое ограничение Befunge-93 в 80x25 символов сделало его по своей сути не полным по Тьюрингу, в отличие от других языков.

- Xbobx 09:13, 11 января 2006 г. (UTC)

Пример Hello World [ править ]

Может быть, было бы полезно какое-нибудь пояснение к примеру? Полагаю, я не слишком внимательно смотрел на это, но мне нужно было, чтобы кто-то объяснил, что 32 - это ascii для пробела, а 10 - это ascii для новой строки.

Сделанный.
Стелио 00:19, 3 марта 2006 г. (UTC)

2D массив? [ редактировать ]

... тогда мы должны использовать таблицу, верно? Думаю, полноценными таблицами слишком сложно управлять (по одному TD для каждого символа!), Поэтому я добавил моноширинные шрифты на данный момент. —Предыдущий неподписанный комментарий, добавленный Jafet.vixle ( обсуждение • вклад ) 09:58, 9 мая 2006 г. (UTC)

Простите, а вы о чем? - ZeroOne 10:45, 9 мая 2006 г. (UTC)

Что ж, для более четкого просмотра кода символы должны быть правильно выровнены, не так ли? Я попытался добавить [span font-family], но это не сработало. Во всяком случае, только мои 0,02 доллара. Джафет

Есть два примера кода, и в обоих символы выравниваются правильно. Кроме того, я не вижу правок в основной статье, сделанной вами, так где именно вы сейчас добавляли моноширинные шрифты? Да, и, пожалуйста, подписывайте свои сообщения четырьмя тильдами: ~~~~. Это автоматически расширяется до вашего имени пользователя и текущего времени / даты. :) - ZeroOne 13:27, 9 мая 2006 г. (UTC)

Befunge-93 против Befunge-98 [ править ]

Я считаю, что следует различать Befunge-93 и Befunge-98. Заголовок раздела «Список инструкций» представляет собой отличный список инструкций Befunge- 93 , однако в Befunge-98 есть гораздо больше, включая «[» (повернуть налево), «]» (повернуть направо), «r» (отразить) и 'n' (очистить стек). Я думаю, что должен быть либо окончательный список (например, найденный [1] ), либо должна быть добавлена ​​строка о том, что это список команд Befunge-93, либо название следует изменить на «Список инструкций Befunge-93» - Дугалл, 11:11, 24 июня 2006 г. (UTC)

Я сделал это сам (но забыл использовать функцию описания редактирования). Если у кого-то есть возражения, не стесняйтесь сообщить мне - Дугалл 07:56, 28 июня 2006 г. (UTC)
Мне кажется, что самая последняя версия языка должна быть описана наиболее подробно. Так почему бы нам не заменить список инструкций B-93 списком для B-98? Я сделаю это, если ни у кого не будет возражений. Стеббинс 20:53, 4 декабря 2006 г. (UTC)
Я думаю, это было бы хорошо, если бы там говорилось, какие инструкции можно использовать только в 98, а какие можно использовать в обоих. 12Me21 ( разговорное ) 03:20, 18 апреля 2015 (UTC)

Пространство Лахи против тора [ править ]

«В этой модели сетка ведет себя как тор конечного размера относительно обертывания, но при этом позволяет неограниченно расширять себя».

Это вообще не кажется точным описанием. В Funge-98 компьютер может двигаться по диагонали. Затем, когда он уходит в бесконечность и замыкается, он всегда остается на одной и той же линии. В общем случае на торе это было бы неверно.

На самом деле пространство Лахи - это расширение евклидова пространства, в котором «концы» линии соединены на бесконечности. Я не уверен, можно ли его разумно сравнивать с проективным пространством . Кто-нибудь может придумать лучшее описание? - Smjg 18:46, 19 сентября 2007 г. (UTC)

Что означает название? [ редактировать ]

Кто-нибудь знает этимологию названия "Befunge"? wr 87.139.81.19 ( разговорное ) 11:19, 10 апреля 2008 г. (UTC)


Да - изначально Befunge ошибочно напечатали слово «раньше». См .: http://esolangs.org/wiki/Befunge 99.224.153.68 ( обсуждение ) 13:55, 8 августа 2009 г. (UTC)

Lahey-space [ править ]

Ага. Описание там совершенно неверное. Когда я придумал Lahey-space, меня вдохновила сфера Римана . Каждая линия соединяется бесконечной точкой с другим концом той же линии. И когда вы вернетесь к началу, вы окажетесь в той же точке.

Когда ПК движется с любой скоростью, отличной от 1, в кардинальном направлении, после выполнения последней инструкции перед переходом в бесконечность он находит последнюю инструкцию в другом направлении и начинает выполнение оттуда.

Вдохновленный сферой Римана, я действительно хотел иметь возможность определять инструкцию в бесконечной точке, но я не мог придумать каких-либо интересных применений, поэтому я не знаю, предлагал ли я это вообще.

Я полагаю, вы могли бы сказать, что он действует как тор, когда ПК движется с нормальной скоростью ((0,1), (0, -1), (1,0), (-1,0),), но когда Используется инструкция X, она имеет стандартное поведение, независимо от размера сетки. Если вы использовали тор, то размер сетки повлиял бы на поведение.

Я не уверен, комфортно ли мне редактировать эту страницу, поскольку на меня ссылаются. Можно ли изменить описание математики?

clahey ( разговор ) 17:41, 3 декабря 2009 (UTC)

Полагаю, я должен сказать: «После выполнения последней инструкции перед переходом к бесконечности он находит последнюю инструкцию в другом направлении и начинает выполнение оттуда». Не имеет значения, простая ли это скорость, но когда это так, схема обертывания соответствует простой схеме обертывания тора.

clahey ( разговор ) 17:44, 3 декабря 2009 (UTC)

Разделить на ноль [ править ]

Я не могу найти ни одного списка инструкций, в котором говорилось бы, что делать при делении на ноль для операторов / или%, которые не выглядят так, как будто они были скопированы с этой страницы. Отмечено как сомнительное. Кто-нибудь может подтвердить? 80.177.127.228 ( разговорное ) 16:23, 2 апреля 2011 (UTC)

Это поведение оригинального интерпретатора befunge. IIRC, befunge-98 явно изменили это поведение. ~~ - Предыдущий беззнаковый комментарий добавлен 87.222.26.125 ( обсуждение ) 11:44, 25 сентября 2011 г. (UTC)

Просматривая соответствующие первоисточники, мы находим это , которое указывает, что деление на ноль спрашивает пользователя, а модуль на ноль дает сбой. Я не уверен, что такое поведение упоминалось в каких-либо надежных вторичных источниках, и это маловероятно. (Кроме того, я только что заметил, что эта статья цитирует меня лично как доказательство того, кто является автором языка. Я почти уверен, что я не являюсь надежным источником в том смысле, который использует Википедия. Эта статья определенно нуждается в некоторых своего рода очистка источника или, возможно, удаление в WP: V ; хотя я думаю, что есть минимальная основа поиска, которая примечательна(что есть), уровень достоверной непервичной информации о самом языке гораздо ниже.) - ais523 12:44, 31 октября 2014 г. ( U T C )
Если вам нужна ссылка, вы всегда можете процитировать спецификацию Funge-98, в которой утверждается, что «Befunge-93 [...] должен спрашивать пользователя, каким должен быть результат деления» [1] . Но в исходной спецификации Befunge-93 ничего подобного не говорилось, и исходная эталонная реализация Befunge никогда не следовала такому поведению (вы можете видеть это в некоторых старых версиях исходного кода, распространяющихся по сети). Из комментариев в журнале изменений я подозреваю, что деление на нулевую обработку было добавлено в эталонную реализацию только в январе 1998 года.
Лично я считаю, что это утверждение следует исключить из статьи - здесь не место пытаться строго специфицировать язык, когда он никогда не был четко определен с самого начала. То же самое касается утверждения о том, что "get" за пределами границ подталкивает ноль, что также никогда не было частью спецификации или исходной эталонной реализации. На практике это все неопределенное поведение. - j4_james ( обсуждение ) 02:09, 28 ноября 2015 (UTC)
Обратите внимание, что теперь я удалил из списка инструкций поведение "получить" деление на ноль и выход за границы по причинам, упомянутым выше. Если кто-то считает, что такие подробности действительно необходимо включить в статью, я предлагаю вам поместить их в отдельный раздел, в котором четко указаны ограниченные обстоятельства, в которых они применимы. - j4_james ( разговор ) 23:39, 17 августа 2016 (UTC)
  1. ^ Пресси, Крис. «Окончательная спецификация Funge-98» .

Ошибки? [ редактировать ]

Здесь не сказано, что делать в случае возможных ошибок. Например, что, если отрицательное число передается в,? следует ли печатать; ничего, абсолютное значение, 128- #, выдает ошибку ??? 12Me21 ( разговор ) 12:29, 24 апреля 2015 (UTC)

Ссылочный спам [ править ]

Как объясняется в политике содержания , Википедия не является средством продвижения и не хранилищем ссылок . В этой статье нет никакой необходимости включать ссылки на все интерпретаторы Befunge или связанные с Befunge веб-сайты в Интернете, что, кажется, является направлением, в котором она движется. Я рекомендую избавиться от всего, что есть в разделе « Внешние ссылки », за исключением официальных ссылок на две основные спецификации и справочного интерпретатора Befunge.

Я также рекомендую очистить раздел компиляции, который, похоже, тоже стал магнитом для саморекламы . Я был бы в порядке, если бы оставил раздел на bef2c, учитывая, что он является частью официального дистрибутива, и компилятор Betty, возможно, известен как первый компилятор (?), Но я думаю, что остальные обязательно должны уйти.

Если у кого-то нет возражений, я внесу эти изменения примерно на следующей неделе. Если вы считаете, что существует причина, по которой следует сохранить конкретную ссылку, пожалуйста, объясните, почему вы думаете, что она примечательна и повышает ценность статьи (а не просто еще один интерпретатор / компилятор / веб-страницу Befunge).

- j4_james ( обсуждение ) 17:25, 18 августа 2016 (UTC)

Внешние ссылки изменены [ править ]

Привет, друзья Википедии,

Я только что изменил одну внешнюю ссылку на Befunge . Пожалуйста, найдите время, чтобы просмотреть мою правку . Если у вас есть какие-либо вопросы или вам нужно, чтобы бот игнорировал ссылки или страницу в целом, посетите этот простой FAQ для получения дополнительной информации. Я внес следующие изменения:

  • Добавлен архив https://web.archive.org/web/20160105200447/http://jargon-file.org/archive/jargon-4.4.7.dos.txt в http://jargon-file.org/archive/ jargon-4.4.7.dos.txt

Когда вы закончите просмотр моих изменений, установите для отмеченного ниже параметра значение true или не сообщите другим (документация по адресу ).{{Sourcecheck}}

☒N Редактор определил, что редактирование где-то содержит ошибку. Следуйте приведенным ниже инструкциям и отметьте |checked=значение true.

  • Если вы обнаружили URL-адреса, которые бот ошибочно считал мертвыми, вы можете сообщить о них с помощью этого инструмента .
  • Если вы обнаружили ошибку в каких-либо архивах или самих URL-адресах, вы можете исправить их с помощью этого инструмента .

Ура. - InternetArchiveBot ( Сообщить об ошибке ) 21:37, 29 октября 2016 г. (UTC)

Я просмотрел вашу правку, и ссылка на файл жаргона, которую вы пометили как мертвую, у меня работала нормально (я проверял несколько раз). Поэтому я отменил это изменение. - j4_james ( обсуждение ) 14:20, 1 ноября 2016 (UTC)

Внешние ссылки изменены [ править ]

Привет, друзья Википедии,

Я только что изменил одну внешнюю ссылку на Befunge . Пожалуйста, найдите время, чтобы просмотреть мою правку . Если у вас есть какие-либо вопросы или вам нужно, чтобы бот игнорировал ссылки или страницу в целом, посетите этот простой FAQ для получения дополнительной информации. Я внес следующие изменения:

  • Добавлен архив https://web.archive.org/web/20160105200447/http://jargon-file.org/archive/jargon-4.4.7.dos.txt в http://jargon-file.org/archive/ jargon-4.4.7.dos.txt

Когда вы закончите просматривать мои изменения, вы можете следовать инструкциям в шаблоне ниже, чтобы исправить любые проблемы с URL-адресами.

По состоянию на февраль 2018 г. разделы страницы обсуждения «Изменены внешние ссылки» больше не создаются и не отслеживаются InternetArchiveBot . В отношении этих уведомлений на странице обсуждения не требуется никаких специальных действий, кроме регулярной проверки с использованием приведенных ниже инструкций инструмента архивации. Редакторы имеют разрешение удалить эти разделы «Внешние ссылки изменены» на странице обсуждения, если они хотят убрать беспорядок на страницах обсуждения, но перед массовым систематическим удалением просматривают RfC . Это сообщение динамически обновляется с помощью шаблона (последнее обновление: 15 июля 2018 г.) .{{sourcecheck}}

  • Если вы обнаружили URL-адреса, которые бот ошибочно считал мертвыми, вы можете сообщить о них с помощью этого инструмента .
  • Если вы обнаружили ошибку в каких-либо архивах или самих URL-адресах, вы можете исправить их с помощью этого инструмента .

Ура. - InternetArchiveBot ( Сообщить об ошибке ), 03:00, 17 июля 2017 г. (UTC)

Тег внешних ссылок [ править ]

Удален тег 2012 «Внешние ссылки»: когда статья была помечена для проблем с внешними ссылками, было что-то вроде 17 ссылок. Это было сокращено до трех, поэтому кажется, что теги просто не были удалены. Otr500 ( разговорное ) 01:38, 19 февраля 2020 (UTC)