Этот
компилятор C прекрасен также, как и
работа, на основе которой он был разработан.
| TL/DR |
| Ассемблерная инструкция x86 MOV является полной по Тьюрингу, что позволяет построить компилятор высокоуровнего языка, генерирующий бинарный код, состояющий только из вариаций этой инструкции. |
| |
... << RSDN@Home 1.2.0 alpha 5 rev. 76>>
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Ассемблерная инструкция x86 MOV является полной по Тьюрингу, что позволяет построить компилятор высокоуровнего языка, генерирующий бинарный код, состояющий только из вариаций этой инструкции.
Это ещё что... Процессор x86 является полным по Тьюрингу, даже если запрещается использовать вообще любые ассемблерные инструкции:
https://github.com/jbangert/trapcc
http://0b4af6cdc2f0c5998459-c0245c5c937c5dedcca3f1764ecc9b2f.r43.cf2.rackcdn.com/12061-woot13-bangert.pdf
Хотелось бы посмотреть пример асмовыхлопа.
В папке examples только сишные программки, на которых видимо проверяли работоспособность компилятора.
Я правильно понимаю, что они пишут в указатель на текущую инструкцию?
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Ассемблерная инструкция x86 MOV является полной по Тьюрингу, что позволяет построить компилятор высокоуровнего языка, генерирующий бинарный код, состояющий только из вариаций этой инструкции.
В работе, на основании которой сделан компилер, неверный вывод.
Removing all but the mov instruction from future iterations of
the x86 architecture would have many advantages: the instruction
format would be greatly simplified, the expensive decode unit
would become much cheaper, and silicon currently used for complex
functional units could be repurposed as even more cache. As
long as someone else implements the compiler.
Прежде всего, mov это семейство инструкций, а не одна. Кроме того, упрощение формата инструкций ничего особенного не даёт, в итоге получим обычный RISC процессор, достоинства и недостатки которого давно известны. Просто автор подошел к RISC-процессорам вот таким вот экзотическим способом.
Работа в таком вот духе похоже дает намного бОльше обращений к памяти, т.е. реально будет существенное замедление
Здравствуйте, nikov, Вы писали:
N>Это ещё что... Процессор x86 является полным по Тьюрингу, даже если запрещается использовать вообще любые ассемблерные инструкции:
N>https://github.com/jbangert/trapcc
N>http://0b4af6cdc2f0c5998459-c0245c5c937c5dedcca3f1764ecc9b2f.r43.cf2.rackcdn.com/12061-woot13-bangert.pdf
Шизануться! Первая мысль была — как это без ассемблерных инструкций?!
Почитал и от восторга только "ну, твою мать, что придумал!"
Здравствуйте, nikov, Вы писали:
N>Это ещё что... Процессор x86 является полным по Тьюрингу, даже если запрещается использовать вообще любые ассемблерные инструкции:
N>https://github.com/jbangert/trapcc
N>http://0b4af6cdc2f0c5998459-c0245c5c937c5dedcca3f1764ecc9b2f.r43.cf2.rackcdn.com/12061-woot13-bangert.pdf
Комментарий к видео работы программы на этом принципе (ссылка видео есть на гитхабе) понравился
So this is how God created the universe ex nihilo...