?

Log in

No account? Create an account

Миниатюрное программистское - Общество дровосеков Бердичева по изучению Мишны

Nov. 5th, 2014

11:39 am - Миниатюрное программистское

Previous Entry Share Next Entry



http://github.com/rswier/c4 via reddit.

Компилирует и исполняет hello, world за 9 команд; сам себя, компилирующего и исполняющего hello, world - за 22614 команд; и еще раз вложить - 9273075 команд; и еще раз - 933197195 команд.

Comments:

[User Picture]
From:janatem
Date:November 5th, 2014 08:03 pm (UTC)
(Link)
Надо его в суперкомпилятор засунуть, тогда процесс может сойтись.
(Reply) (Thread)
[User Picture]
From:spamsink
Date:November 5th, 2014 08:25 pm (UTC)
(Link)
Если суперкомпилятор настолько умен, что умеет находить идемпотентность, то наверное.

Да и так забавно: 410x, 100x... Если еще раз вложить, то 32 бита переполнятся, так что разве что время засечь. Тройное вложение работает 4 секунды user time, уж порядка 400 секунд я смогу подождать. Ну-ка... 382 секунды. Вышли на режим. Как и ожидалось, у наивного интерпретатора коэффициент около 100.
(Reply) (Parent) (Thread)
[User Picture]
From:janatem
Date:November 5th, 2014 08:44 pm (UTC)
(Link)
Вообще технология позволяет доказывать некоторые довольно нетривиальные свойства. Но, к сожалению, сколь-нибудь осмысленная суперкомпиляция для Си, по-видимому, невозможна в принципе. Разве что взять какое-то подмножество Си, где, например, будет запрещено разыменовывание произвольного указателя.
(Reply) (Parent) (Thread)
[User Picture]
From:yatur
Date:November 6th, 2014 12:09 am (UTC)
(Link)
Это, безусловно, круто. Но я слово "мини" проглядел и решил, что это полный компилятор С. А там даже struct нету. И #include он просто игнорирует, потому что не в состоянии обработать системные заголовочные файлы. Из всего набора системных функций он, судя по всему, поддерживает только open, read, close, printf, malloc, memset, memcmp и exit. Все остальное должно быть определено в том же файле, что и main().
(Reply) (Thread)
[User Picture]
From:spamsink
Date:November 6th, 2014 12:26 am (UTC)
(Link)
Всё так; исключительно как демонстрация техники компиляции. Пожалуй, это не столь круто, как OTCC, но более машинно-независимо и более пригодно в образовательных целях.
(Reply) (Parent) (Thread)
[User Picture]
From:fatoff
Date:November 6th, 2014 02:55 am (UTC)
(Link)
It compiles C code about 10x faster than GCC

But cannot be used for real. What a pity.
(Reply) (Thread)
[User Picture]
From:archaicos
Date:November 6th, 2014 06:25 am (UTC)
(Link)
Use mine. Windows support is coming soon.
(Reply) (Parent) (Thread)
[User Picture]
From:fatoff
Date:November 6th, 2014 06:41 am (UTC)
(Link)
Worth to look at.
(Reply) (Parent) (Thread)
[User Picture]
From:dluciv
Date:November 6th, 2014 05:52 am (UTC)
(Link)
Раскрутка интерпретатора, бессмысленная и жестокая.
(Reply) (Thread)
[User Picture]
From:spamsink
Date:November 6th, 2014 06:18 am (UTC)
(Link)
Я удивился, что произвольно взятый интерпретатор раскручивается ровно в хрестоматийные 100х.
(Reply) (Parent) (Thread)
[User Picture]
From:archaicos
Date:November 6th, 2014 06:28 am (UTC)
(Link)
Нишмагла. MIPS32 эмулятор без премудростей на MIPS32 же у меня где-то раз в 20-25 только по инструкциям был медленнее прямого исполнения.
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:November 6th, 2014 06:59 am (UTC)
(Link)
Сравни его, вложенного дважды, с ним же, вложенным трижды.
(Reply) (Parent) (Thread)
[User Picture]
From:archaicos
Date:November 7th, 2014 01:08 am (UTC)
(Link)
Медленно!
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:November 7th, 2014 01:12 am (UTC)
(Link)
Жалко; интересно же, к чему коэффициент сходится не у игрушечного, а у индустриального эмулятора.
(Reply) (Parent) (Thread)
[User Picture]
From:archaicos
Date:November 7th, 2014 09:03 am (UTC)
(Link)
Я индустриальным не пользовался пока. Свой простой.
(Reply) (Parent) (Thread)
[User Picture]
From:archaicos
Date:November 6th, 2014 08:21 am (UTC)
(Link)
Заявка на пример для поцражания для кармад*очеров.
За такой пасквиль срубить более тысячи звёзд за пару дней — это вам не тут.
(Reply) (Parent) (Thread)
[User Picture]
From:dluciv
Date:November 6th, 2014 08:25 am (UTC)
(Link)
Шёл себе ежик по лесу, шёл, и так незаметно получил люлей...

Пирожок на полке проверили?
(Reply) (Parent) (Thread)
[User Picture]
From:archaicos
Date:November 6th, 2014 08:26 am (UTC)
(Link)
¿Qué?
(Reply) (Parent) (Thread)
[User Picture]
From:dluciv
Date:November 6th, 2014 08:29 am (UTC)
(Link)
¿Hay patty en un estante? =)
(Reply) (Parent) (Thread)
[User Picture]
From:archaicos
Date:November 6th, 2014 08:34 am (UTC)
(Link)
Ninguno. ¿Por qué me preguntas eso?
(Reply) (Parent) (Thread)
[User Picture]
From:dluciv
Date:November 6th, 2014 08:39 am (UTC)
(Link)
По-моему очень просто понять, почему.

Потому что первый мой коммент стал идеальной мишенью для довольно очевидного замечания, хотя, когда я его писал, мне в голову никак не приходило, что это произойдёт =).
(Reply) (Parent) (Thread)
[User Picture]
From:archaicos
Date:November 6th, 2014 09:16 am (UTC)
(Link)
Entonces, perdona.
(Reply) (Parent) (Thread)
[User Picture]
From:dluciv
Date:November 6th, 2014 09:46 am (UTC)
(Link)
Да ну ладно, что Вы =)
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:November 6th, 2014 04:34 pm (UTC)
(Link)
Замечание archaicos'а забавно тем, что его денотат неясен до самого конца. Что имеется в виду под "заявкой" и "пасквилем"? То ли Ваш коммент, то ли мой пост. И только упоминание тысячи звезд (у проекта на гитхабе) разъясняет дело.
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:November 6th, 2014 04:12 pm (UTC)
(Link)
В связи с первой фразой правильнее было бы смотреть не на звёзды, а на вилки. Срубить более полусотни вилок за пару дней - вот это да.
Пасквиль оказался большой поучительной силы.
(Reply) (Parent) (Thread)
[User Picture]
From:archaicos
Date:November 7th, 2014 01:06 am (UTC)
(Link)
Получительная силища! :)
(Reply) (Parent) (Thread)
[User Picture]
From:livejournal
Date:November 6th, 2014 08:45 am (UTC)

Минимализм

(Link)
User mynine referenced to your post from Минимализм saying: [...] = 9 exit(0) cycle = 22609 exit(0) cycle = 9212725 exit(0) cycle = 926770891 подглядел у spamsink'a [...]
(Reply) (Thread)