Программирование смайлами. Новый язык программирования

Модератор: Neoxygen

Ответить
Аватара пользователя
Otello
Юзер
Сообщения: 215
Зарегистрирован: Сб сен 27, 2003 14:18
Контактная информация:

Программирование смайлами. Новый язык программирования

Сообщение Otello »

Вот сама программа:

[q]
:-) i 0
:-) j 0

;) Выведем таблицу 6x6

:) j :[ 5 ;) Строки
i :[] 0 ;) Обнулим i
:) i :[ 5 ;) Столбцы
:o i :) j ;) Выводим сумму
:o " " ;) Выводим пробел
i :) 1 ;) Увеличим i на единичку
8) ;) Делаем цикл (возврат)
(:
:o "\n" ;) Перевод строки (новая строка)
j :) 1 ;) Увеличим j на единичку
8) ;) Возврат к условию
(:
[/q]

А вот результат ее работы:
[q]
0 1 2 3 4 5
1 2 3 4 5 6
2 3 4 5 6 7
3 4 5 6 7 8
4 5 6 7 8 9
5 6 7 8 9 10
[/q]

_http://subway.net.ru/projects/php/smilescript/index.php
Аватара пользователя
Стэлла
Завсегдатай
Сообщения: 2759
Зарегистрирован: Вс апр 20, 2003 13:50
Откуда: Europe

Re: Программирование смайлами. Новый язык программирования

Сообщение Стэлла »

реализация прикольная, идея старовата..
помнится, была такая прога на паскале с асм-вставками, вечеринка называлась.. но она была по приколу, а есть реально работающие проги, читать без слез которые невозможно :lol:
Аватара пользователя
prosecutor
Старожил
Сообщения: 1762
Зарегистрирован: Вт дек 03, 2002 01:16
Откуда: Я тут, Я там, Я везде...
Контактная информация:

Сообщение prosecutor »

Otello,
слушай, нифига не понял, но на сайте прикололся с прог написанных уже!!!
Эх, не программер я...
Аватара пользователя
Белый С.
Завсегдатай
Сообщения: 2526
Зарегистрирован: Пн дек 22, 2003 22:43
Откуда: Выведен из аксиом
Контактная информация:

Сообщение Белый С. »

"Otello", полагаю так будет виднее:

Код: Выделить всё

[q]
:-) i 0
:-) j 0
 
;) Выведем таблицу 6x6 
 
:) j :[ 5            ;) Строки
   i :[] 0           ;) Обнулим i
   :) i :[ 5         ;) Столбцы
      :o i :) j      ;) Выводим сумму
      :o " "         ;) Выводим пробел
      i :) 1         ;) Увеличим i на единичку
      8)             ;) Делаем цикл (возврат)
   (:
   :o "\n"           ;) Перевод строки (новая строка)
   j :) 1            ;) Увеличим j на единичку
8)                   ;) Возврат к условию
(:
[/q]
Прикольно для юзеров, но по сути, лишь замена в алгоритмическом языке ключевых слов смайлами. Никуда не делись ни переменные, ни константы (строки, числа). Без объяснения - груз. Я куда больше прикололся с описания языка Brainfuck!
См. также http://home.planet.nl/~faase009/Ha_BF.html и http://www.ecs.soton.ac.uk/~sdh300/stuffage/bf.net/!

[off]Интерпретатор SmileScript v.0.2
---------------------------------------------------------------------
1. Одна строка - одна команда.
2. Комментарий - ;) и следующий текст до конца строки.
3. Перед использованием переменной, её нужно объявить.
4. OUT - это предопределенная переменная буфера вывода, которой можно пользоваться, как обычной переменной.
5. ERROR [12] означает, что на 12-ой строке произошла ошибка.
6. Числа либо целые, либо с десятичной точкой - float.
7. Если встречается неизвестная команда, то текущая строка выводится с переводом строки
8. Если что-то не работает, улыбайтесь :)
9. Приоритет операторов убывает справа налево, т.е. конструкция:
:-) A B :p "qwe" :p C :/ D :[] 12 :* 12
означает:
объявить A = B.("qwe".(C/(D=(12*12))));
10. Из управляющих конструкций - гибрид if и while:
:) условие
команды
8) ;) переводит к началу условия (continue)
8( ;) выходит из условия (break)
(:
Если требуется перепрыгнуть к началу условия уровнем выше - 8)8), аналог continue 2.
11. Что отсутствует:
1. Обработка "скобочных" приоритетов.
2. Булевы операции.
3. Функции.
4. Встроенные функции
КОМАНДА ЧТО ОЗНАЧАЕТ
---------------------------------------------------------------------
:-) Var_name Объявление переменной.
Переменная может содержать только буквы, цифры
и символ подчеркивания. С цифры начинаться низя

:-) Var statement Объявление со значением-результатом выражения
:-( Var_name Удаление переменной.
:YO! или ;YO! Безусловный выход из программы.
8D Вывод списка всех переменных, кроме OUT
:O A Вывод переменной A с переводом строки
(двоеточие и большая буква "О" или ноль)
:o A Вывод переменной A без перевода строки
(двоеточие и маленькая "o")
bla-bla Вывод произвольного текста (under constr)
...
shut up!
:o "text" Вывод строки text
:o 1234 Вывод 1234
A :[] B A = B
A :p B A .= B (приклеивание B к концу A)
A :) B A += B
A :( B A -= B
A :* B A *= B
A :/ B A /= B
A :\ B A %= B
A (: B A <<= B
A ): B A >>= B
A :p B :) C A .= B + C
A :p B :p C A .= B . C
A :p B :( C A .= B - C
A :p B :* C A .= B * C
A :p B :/ C A .= B / C
A :p B :\ C A .= B % C
A :p B (: C A .= B << C
A :p B ): C A .= B >> C
A :[] B :[ C A = B <= C
A :[] B :] C A = B >= C
A :[] B :[[ C A = B < C
A :[] B :]] C A = B > C
A :[] B :| C A = B == C
A :[] B |: C A = B != C
A :[] !B A = !B
:) условие Условие.
команды Команды выполняются, если условие
команды не ноль и не пустая строка.
8) Переход к началу условия.
8)8) Переход к началу условия этажом выше.
8)8)8) Аналог continue 3;
8( Выход из условия.
8(8(8( Аналог break 3;
(: Конец условия.
%) func a, b, c Имя функции, аргументы функции (under constr)
:-) glob_val Глобальная переменная
%-) local_val Локальная переменная (under constr)
commands... Любые команды
<- A return A
(% Конец объявления
%o func A, 2, "c" o% Вызов. Вместо "о" можно использовать ноль (under constr)[/off]
Ответить

Вернуться в «Юмор»