"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:

условие
команды

переводит к началу условия (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 с переводом строки
(двоеточие и большая буква "О" или ноль)

A Вывод переменной A без перевода строки
(двоеточие и маленькая "o")
bla-bla Вывод произвольного текста (under constr)
...
shut up!

"text" Вывод строки text

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) Аналог 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]