Иисус отверг Тему - esoteric language [entries|archive|friends|userinfo]
Шансонье Дима Даннер

[ website | Полин Квітне ]
[ userinfo | ljr userinfo ]
[ archive | journal archive ]

esoteric language [Feb. 16th, 2009|11:03 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
[Tags|]
[Current Mood |obfuscated]
[Current Music |ипердэрлара-а-он, инунхуэго, танрэа-а-аль]

Буквально влюбился в язык Thue, пишу на нем генетический метапрограмминг для стратегии в крестики-нолики. Язык безумно красив в своей простоте, а еще именно так работают квантовые компьютеры, ДНК-компьютеры и все такое прочее.

Кроме того, как приятно сказать про себя: я - эзотерический программист.

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

Инджой :)
LinkLeave a comment

Comments:
[User Picture]
From:[info]svonz
Date:February 17th, 2009 - 03:11 am
(Link)
Какие погоды стоят у вас во Львове?
[User Picture]
From:[info]dmitry_danner
Date:February 17th, 2009 - 12:35 pm
(Link)
Сегодня - предсказанные :) Сухо, снег, минус два, даже солнышко проглядывает. Но что-то пообещать у нас сложно...
[User Picture]
From:[info]svonz
Date:February 17th, 2009 - 12:38 pm
(Link)
Тааак..., пока холодно.
From:[info]phantom
Date:February 18th, 2009 - 02:23 pm
(Link)
>язык Thue,

С виду обычный term-rewriting, возможный к программированию во многих general-purpose языках.

>я - эзотерический программист.

Не можешь ли объяснить более подробно, какой смысл ты вкладываешь, а то мне непонятно.

>вебформа, а вот яваскрипт. Качайте быстрее, пока не увял.

На инет-архиве ничего не может увять! :)

>Инджой :)

А мне очень нравилась идея игр по типу Terrarium - это от Микрософта была, надеюсь, помнишь такую. Если нет, напомню.
[User Picture]
From:[info]dmitry_danner
Date:February 18th, 2009 - 03:37 pm
(Link)
Дык понятно, что возможный - а на Thue можно реализовать любой general-purpose ;))))
Во-первых, он недетерминированный, то есть надо придумывать вероятностные алгоритмы. Во-вторых, он настолько простой по синтаксису, что элементарно реализуется метапрограмминг (то есть одна программа пишет другую - только не сама себя, поскольку разделены условия и данные). Веришь, первый раз в жизни чувствую себя ДНК-компьютером получаю кайф от самого процесса программирования - обычно мука страшная, не люблю.

какой смысл ты вкладываешь, а то мне непонятно
There is usually no intention of the language being adopted for real-world programming. Such languages are often popular among hackers and hobbyists. This use of esoteric is meant to distinguish these languages from more popular programming languages. Я не столько смысл вкладываю, сколько звучит красиво, я ж говорю :)

Кстати, копия от декабря 2003 года уже увяла, я качал оттуда по линку в педивикии, а сейчас там "трабл коннектинг", есть уже только на октябре. Вот я тоже думал, что не увядает...

Terrarium, судя по гуглу, перегружена всякими майкрософтовскими фичами, а идея вообще клевая. Я в свое время радовался снейк-бэттлу, а тут, конечно, возможности открываюцца, да. Еще бывает лукасартовская Gungan Frontier, там вообще надо строить целую экосистему самому, сломит черт голову :) Но это из другой оперы немножко.
From:[info]mvmn.livejournal.com
Date:March 12th, 2009 - 04:06 am
(Link)
> Во-первых, он недетерминированный
Отчегоже нет? Очень даже детерминированный
From:[info]mvmn.livejournal.com
Date:March 12th, 2009 - 04:14 am
(Link)
> var selected = random_choice(matching_rules)
Да, сильный "недетерминизм" (((-:
From:[info]mvmn.livejournal.com
Date:March 12th, 2009 - 04:15 am
(Link)
function random_choice(a)
{
// Returns a random element from an array
return a[Math.floor(Math.random() * a.length)]
}
From:[info]mvmn.livejournal.com
Date:March 12th, 2009 - 04:30 am
(Link)
> одна программа пишет другую
Вообще-то тут одна программа пишет какую-то херню что-нибудь, но не обязательно тоже "программу".
Скажем прямо, чтоб на Thue вывести программу например на Java скорее всего прийдётся сначала написать программу на Java (-;
Очень обидно что "сегмент кода" не доступен и программа не может самомодифицироватся.
Также жаль что никак нельзя програмно повлиять на выбор правила.
Вобщем не фонтан (-;

В оправдание своего критиканства сейсас накидаю интерпретатор на Java...
From:[info]mvmn.livejournal.com
Date:March 12th, 2009 - 04:40 am
(Link)
P.S. Как жаль что токен "::=" заменить нельзя ((-;
From:[info]mvmn.livejournal.com
Date:March 12th, 2009 - 05:47 am

v.00.00.00.00.00.00.00.1 (-;

(Link)
Текст программы в коммент не влазит, посему см
http://cachexy.ho.com.ua/thueinterpreter-src.jar
JAR можно запускать + внутри есть сорс
From:[info]mvmn.livejournal.com
Date:March 12th, 2009 - 05:50 am

Re: v.00.00.00.00.00.00.00.1 (-;

(Link)
P.S. В верхнее поле вводишь текст программы, в нижнее initial state данных.
Строчка-разделитель с пустым условием (которая "::=") соответственно не нужна (и даже запрещена).
[User Picture]
From:[info]dmitry_danner
Date:March 12th, 2009 - 01:10 pm

Re: v.00.00.00.00.00.00.00.1 (-;

(Link)
Большое спасибо! Но где же ввод-вывод? О_о Он это тоже умеет!
:)
From:[info]mvmn.livejournal.com
Date:March 12th, 2009 - 01:20 pm

Re: v.00.00.00.00.00.00.00.1 (-;

(Link)
Ввода пока нет, а версия с выводом уже готова.
Сейчас залью jar - дам ссылку.
From:[info]mvmn.livejournal.com
Date:March 12th, 2009 - 01:19 pm

00.01 (-:

(Link)
Сделал более полноценную версию.
Выглядит так:


/n в аутпат работает как перевод строки (вариантов вывести собственно токен /n пока нет, гг) - такчто в примере треугольника Серпинского   заменяешь на пробел а
на /n
From:[info]mvmn.livejournal.com
Date:March 12th, 2009 - 01:25 pm

Re: 00.01 (-:

(Link)
\n тоесть

JAR with sources:
http://cachexy.ho.com.ua/thueinterpreter00.01-src.jar
Enjoy (-;
[User Picture]
From:[info]dmitry_danner
Date:March 12th, 2009 - 02:26 pm

Re: 00.01 (-:

(Link)
Ой клево :))))
Ну еще ввод добей для полного счастья? :)
From:[info]mvmn.livejournal.com
Date:March 12th, 2009 - 02:29 pm

Re: 00.01 (-:

(Link)
Ок, вечером добавлю.
From:[info]mvmn.livejournal.com
Date:March 12th, 2009 - 02:04 pm

Re: 00.01 (-:

(Link)
> Серпинского заменяешь на пробел а на /n Серпинского &nbsp; заменяешь на пробел а <br> на /n
[User Picture]
From:[info]dmitry_danner
Date:March 12th, 2009 - 01:11 pm
(Link)
Также жаль что никак нельзя програмно повлиять на выбор правила.
Потому он и недетерминированный :)
From:[info]mvmn.livejournal.com
Date:March 12th, 2009 - 05:23 pm

Thue in Java ver.1.0 (-;

(Link)
From:[info]mvmn.livejournal.com
Date:March 12th, 2009 - 10:40 pm

Final release - Thue in Java v.1.1

(Link)
http://cachexy.ho.com.ua/thueinjava-v1.1-src.jar

На этом пожалуй можно закончить.
[User Picture]
From:[info]dmitry_danner
Date:March 13th, 2009 - 01:09 pm

Re: Final release - Thue in Java v.1.1

(Link)
Спасибо. Мошшная штука получилась. :)
From:[info]mvmn.livejournal.com
Date:March 13th, 2009 - 03:21 pm

Re: Final release - Thue in Java v.1.1

(Link)
You're welcome.
Yup, аж самому нравится (-: