IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Путеводитель автостопщика по потаенным знаниям, Эзотерические языки программирования
сообщение
Сообщение #1


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Рекомендую к прочтения статью http://www.rsdn.ru/article/philosophy/languages.xml


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Altair, респект! Кажется у меня новая мания...

[Ушёл выпадать из реальности, к обеду не ждать]


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
//типы данных:
х: сомнительное целое;
а: мало_похоже_на массив [x..y а_может_быть z] каких_нибудь символов;
L: безнадежно_поврежденный список слишком_маленьких целых;
//присвоение значения переменной:
x ТОЧНО 3;
x ЧЕСТНОЕ_СЛОВО 3;
x МАМОЙ_КЛЯНУСЬ 3;
//условия:
ЕСЛИ y ЧТО_ТО_ОКОЛО 8 ...
ПРИ_МАЛЕЙШЕМ_ПОДОЗРЕНИИ_ЧТО x < 100...
//вызов процедуры:
СБЕГАЙ_КА_ПОИЩИ имяпроцедуры;
lol.gif А это идея... Надо взять на вооружение...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


В оригинале интереснее lol.gif : paranoid (ссылка из статьи на источник)
Цитата
#distrust(procedure)

to put extra suspicion on a procedure,
#ignore(procedure)

to totally forget about any calls to a procedure,
#blame(procedure)

to pin the blame on this procedure whenever something dies
#hide(procedure)

to forget that a procedure ever existed.
Это бы пригодилось smile.gif


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
lol.gif А это идея... Надо взять на вооружение...

Во-во! Мне тоже понравилось smile.gif главное, программист сразу избавляется от стольких проблемм - такой язык частенько совпадает с его мыслями blum.gif


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Чёрт! Уже час бьюсь над созданием самовыводящейся программы на BrainF*ck'е. Кто-нибудь знает, это возможно? Если да, не подсказывать как!


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Возможно smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Подсказывать не будем, но если что Задача Quine

smile.gif


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Кстати, BF можно использовать в качестве микрокода CPU - будет полезнее, чем просто "native BF CPU". Т. е. BF CPU с интерпретатором основной системы команд в качестве программы. Полезность, естественно, в основном академическая (есть свободная EPM3064, аж попробовать хочется - синдром маньяка с новой бензопилой) smile.gif


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


@#$%! По ходу, из за ошибки переполнения невозможно корректно выводить строки длиннее 1024 символов, а моя программа вышла 1693 sad.gif . Можно, конечно, заморочиться с ентерами, но сократить программу - интереснее. Как сократить на ~350 символов я кажется придумал, ещё столько же и можно пить шампанское. cool.gif


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Покажешь потом код?

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


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Вот! Мозг дал трещину но выдал код:
Код
>>++++++>>++++>>+++>>+>>+++>>+>>+++>>+>>+>>+++++++>>+++>>+>>++++++>>++++>>+++>>+
++>>+>>++++>>+++>>+>>+>>++++++>>++++++>>++>>+>>++++++>>+++>>+++>>+++>>+++>>+++++
+>>++++>>+++>>+>>+>>++++>>+>>++++>>+>>++++>>+>>++++>>+>>++++>>+>>++++>>+>>++++>>
+>>++++>>+>>++++>>+>>++++>>+++>>+++>>+>>++++++>>++++++>>++>>+>>++++>>+>>++++>>+>
>++++>>+++>>+>>++++++>>++++>>+>>++++++>>++++++>>++>>+++>>+>>++++++>>++>>+++>>+>>
++++++>>++++>>+++>>+++>>+++>>+++>>++++++>>++++>>+++>>+++>>+++>>+++>>+>>+++++++>>
+++>>+>>+++>>+>>+++>>+>>+>>++++>>+++>>+++>>+>>++++++>>++++++>>++>>+++>>+++>>+++>
>+++>>+>>++++++>>+>>++++++>>+>>++++++>>+>>++++++>>+>>++++++>>+>>++++++>>+>>+++++
+>>+>>++++++>>+>>++++++>>+>>++++++>>+>>++++++>>+>>++++++>>+>>++++++>>+>>++++++>>
+>>++++++>>+>>++++++>>+>>++++++>>+>>++++++>>+>>++++++>>+>>+++++++>>+>>+++++++>>+
>>++++>>+>>++++>>+++>>+>>+++>>+>>+++>>+>>++++++>>++++>>+++>>+++>>+++>>+++>>+++>>
+++>>+>>++++>>+>>++++>>+>>++++>>+>>++++>>+>>++++>>+>>++++>>+++>>+>>+++>>+>>+++>>
+>>+>>++++++>>++++++>>++>>+>>++++>>+>>++++>>+>>++++>>+>>++++>>+>>++++>>+>>++++>>
+>>++++>>+>>++++>>+>>++++>>+>>++++>>+++>>+++>>++++++>>++>>+++>>+++>>+++>>+++>>++
++++>>++++>>+++>>+>>+++>>+>>++++++>>++[<<]>>[>++++++++++[-<<<++++++>>>]<<<++..--
----------------->>[->+<<<.>>]>>]<[<[-]<+++[->++++++++++<]>>-[-<+>]<.<<<]
В приципе, программу можно сократить раза в полтора, я сейчас этим занимаюсь. Дело в том, что здесь я одну команду кодирую в 2 ячейках памяти, а мне вот по ходу в голову пришло как можно 1-ой!
Цитата
Кстати о философии - каким требованиям должен отвечать язык, что бы на нем можно было написать программу, выводящую саму себя на экран?
Да, мне тоже интересно! Если кто знает, поделитесь мыслями.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(Altair @ 9.01.2007 11:25) *

Кстати о философии - каким требованиям должен отвечать язык, что бы на нем можно было написать программу, выводящую саму себя на экран?

Делал когда-то давно и на паскале и на С и на ассемблере. Главное (имхо) уметь представить символ ковычек любым другим способом (#39 например).. smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Цитата
Главное (имхо) уметь представить символ ковычек любым другим способом (#39 например)..
На паскале точно видел другим способом. Поищу...

Добавлено:
По ссылке выше есть примеры.

PS Глянул решения на BF... Марьванна! Я не списывал! Чесна... smile.gif

Сообщение отредактировано: Archon -


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
Главное (имхо) уметь представить символ ковычек любым другим способом (#39 например).. smile.gif

Вот тебе язык:

Алфавит
{"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","w","v","x","y","z", "0","1","2","3","4","5","6","7","8","9", "#", "(", ")", "'",":","="}

Операторы
block
начало блока или программы

endb
конец блока или программы.

writeln(x1,x2, ... , xn)
выводит на экран аргументы x1, x2 ... до xn независимо от их типа и количества.

;
разделитель операторов

#
оператор возвращает ASCII символ

:=
Оператор присвоения

типы данных отсутствуют (компилятор сам выбирает)
Переменные могут состоять только из символов, не совпадать с зарезервированными словами (это все операторы)

пример программы:
Цитата
block;writeln(#32;#65;#65);endb;


еще пример
Цитата
block;var1:=#32;var2:=#45;var3:=var1;writeln(var3);endb;


На таком языке составишь программу которая выведет себя?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Ой, сейчас составлю! applause.gif Жди... (добавлено: ) Вероятно, до завтра... ;)
(добавлено: )
Который раз убеждаюсь, что для решения нетривиальной задачи достаточно (и, почему-то, необходимо) полчасика помедитировать перед сном ;).
Код
block;a:='write(#2;#12;#15;#3;#11;#43;#1;#41;#42;#40;a;#40;#43;a;#5;#14;#4;#2;#43);';write(#2;#12;#15;#3;#11;#43;#1;#41;#42;#40;a;#40;#43;a;#5;#14;#4;#2;#43);endb;
Номера символов взяты из алфавита. Символ ";" ты забыл, я присвоил ему номер 43. Небольшие непонятки с разделителем внутри write'а. Если чего не так, сам исправишь.

Сообщение отредактировано: Archon -


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Да, все верно smile.gif
В алфавит ты верно добавил ";" и
разделители в writeln тоже верно понял...

хех.

т.к. компилятора нет, проверил на глазок...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Профи
****

Группа: Пользователи
Сообщений: 930
Пол: Мужской

Репутация: -  11  +


Цитата(Altair @ 9.01.2007 8:25) *

Покажешь потом код?

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

На спектрум бейсике такое работало, если не ошибаюсь List 0 Все строки в обязательном порядке пронумерованы, номера идут по порядку. Никаких процедур и функкций. только подпрограммы на Gosub имя строки и Return. Вот там то и постигаешь всю красоту и мощь оператора Goto. К сожалению сабж по GOTO++ не на русском sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 2.10.2020 3:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name