• Авторизация


Befunge 10-03-2008 22:47 к комментариям - к полной версии - понравилось!


Befunge — стековый, эзотерический язык программирования. Считается двумерным, так как программа на Befunge записывается в таблицу со сшитыми краями (тор), по которой в различных направлениях перемещается интерпретатор, исполняя команды, расположенные в её ячейках.

Первая версия языка Befunge была создана Крисом Пресси в 1993. Как утверждал автор, его целью было разработать язык, максимально сложный для компиляции. Сложность обеспечивается командами p и g, модифицирующими текст программы.

Версия Befunge-93 ограничена таблицей 25X80 (стандартный размер текстового экрана) и потому не обладает тьюринговской полнотой. Befunge на бесконечной таблице полон по Тьюрингу.


Система команд Befunge

Ниже перечислены команды языка Befunge. Каждая команда кодируется одним ASCII-символом. Для стековых операций в скобках дан их эквивалент в языке Forth. Команды, берущие параметры из стека, удаляют их со стека.перемещение (9):
> Двигаться вправо
< Двигаться влево
^ Двигаться вверх
v Двигаться вниз
_ Двигаться вправо, если на вершине стека 0, иначе — влево.
| Двигаться вниз, если на вершине стека 0, иначе — вверх.
? Двигаться в случайном направлении
# Пропустить следующую ячейку ("трамплин")
@ Конец программы
манипулирование со стеком (3):
: Поместить в стек копию вершины (forth:DUP)
\ Обменять местами вершину и подвершину (forth:SWAP)
$ Удалить вершину (forth:DROP)
модификация кода программы (2):
p "PUT": со стека извлекаются координаты ячейки и ASCII-код символа, которой помещается по этим координатам
g "GET": со стека извлекаются координаты ячейки; ASCII-код символа по этим координатам помещается в стек
константы (2):
0-9 Поместить число в стек
" Начало/конец символьного режима, в котором ACSII-коды всех текущих символов программы помещаются в стек
стековые арифметические операции (5):
+ Сложение вершины и подвершины (forth:+)
- Вычитание вершины и подвершины (forth:-)
* Умножение вершины и подвершины (forth:*)
/ Целочисленное деление (forth:/)
% Остаток от деления (forth:MOD)
стековые логические операции (2):
! Отрицание: нуль на вершине заменяется на 1, ненулевое значение — на 0 (forth:0=)
` Сравнение "больше, чем": если подвершина больше вершины, в стек помещается 1, иначе 0 (forth:>)
ввод-вывод (4):
& Запросить у пользователя число и поместить его в стек
~ Запросить у пользователя символ и поместить в стек его ASCII-код
. Распечатать вершину стека как целое число (forth:.)
, Распечатать символ, соответствующий ASCII-коду на вершине стека (forth:EMIT)



Примеры программ

Программа, печатающая «Hello World!»
> v
@,,,,,,,,,,,,"Hello World!"<

Генератор случайных чисел
vv < <
2
^ v<
v1 ?>5^
v v
v9
вверх^ к полной версии понравилось! в evernote
Комментарии (2):
ebaut 10-03-2008-22:48 удалить
абалденный язык... для расшевеливания мозга %)
11-03-2008-15:29 удалить
привет! я нашел сайт, где можно отправить смс от чужого имени! 100% работает, только что проверил - www.
Kathy_kitten 02-04-2008-22:57 удалить
оо) крут... никогда не понимала, что они там химичат) ща дошло)
21-08-2024-19:36 удалить
Создание консольного приложения "Калькулятор" на C++

Операторы #include позволяют ссылаться на код, расположенный в других файлах. Иногда отображается имя файла, заключенное в угловые скобки (<>), а в других случаях — в кавычки (" "). В общем случае угловые скобки используются при ссылке на стандартную библиотеку C++, а кавычки — для других файлов. Строка using namespace std; сообщает компилятору ожидать данные от стандартной библиотеки C++ для использования в этом файле. Без этой строки каждое ключевое слово из библиотеки должно быть предшествует для std:: обозначения область. Например, без этой строки каждую ссылку на cout потребовалось бы записывать в виде std::cout. Оператор using добавляется, чтобы сделать код более понятным.


// CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include

int main()
{
std::cout << "Hello World!\n";
}

// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu

U2FsdGVkX1/+zCErPxB+J7GVGEJhi80mirK8Aq7ObMe5o46KkjE14mzXr6eHCz4+MKKRzrvfCF7R4Pp/9DfC8Yl2H+xv8EBgrHnCqhCx56CR2GWRCqp62a/su8eowSrcAeVzqWJzqbV67ir/PdELzAevqdE4H58xuHWpXx/SJagAEsMLq7z6QffX7opLmU4697VQXIJSqeaVbloWocF7FCddHltnEviiAd12YHyH57EklHwvilEYxoV7L5H6k0eFoGXry50a0QTs798rtPXKiXB5SnqQyx7pwNCYXN2/N2pPC2Wzm/L+c1gMGnTFjpC649ZDevpCt1FcYsYPWqnaqx72fsjRcpWI/yEmNDjnvNF3097vT2QqRQXFXkmig1pjPRaPKTqMFQQMeYj7sxbIrbFNk7Snf/4CX8d8TR3GzOfhJKmyNiyrUrms4nKm/VqoSleiJCL+e2IpuE5mJGNeEEsGRJUrGJZHMXd3F5WjwcDxSGNff7y/p8gxK5ywkv59dnjliGZPfdY7KaG4C9cagYAVoZxv/auSQd3pleMXfT9wL/zWSBqXZhY/tFOzCATQFvJCxeXaT7g1rrMqVPmfc6WpbR/juEh4yK0ku7aKIVTRHbRkYDYdYYGzj6DtZY1WTE9xJNqiRBq4JhZozugmPQ==


// Tips for Getting Started:
// 1. Use the Solution Explorer window to add/manage files
// 2. Use the Team Explorer window to connect to source control
// 3. Use the Output window to see build output and other messages
// 4. Use the Error List window to view errors
// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file


Комментарии (2): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Befunge | ebaut - Вшфкн | Лента друзей ebaut / Полная версия Добавить в друзья Страницы: раньше»