MOV-компилятор
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 25.09.15 11:11
Оценка: 258 (14) :))) :)))
Этот компилятор C прекрасен также, как и работа, на основе которой он был разработан.

  TL/DR
Ассемблерная инструкция x86 MOV является полной по Тьюрингу, что позволяет построить компилятор высокоуровнего языка, генерирующий бинарный код, состояющий только из вариаций этой инструкции.
... << RSDN@Home 1.2.0 alpha 5 rev. 76>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re: MOV-компилятор
От: T4r4sB Россия  
Дата: 25.09.15 17:07
Оценка:
Хотелось бы посмотреть пример асмовыхлопа.
В папке examples только сишные программки, на которых видимо проверяли работоспособность компилятора.

Я правильно понимаю, что они пишут в указатель на текущую инструкцию?
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Отредактировано 25.09.2015 17:08 T4r4sB . Предыдущая версия .
Re: MOV-компилятор
От: nikov США http://www.linkedin.com/in/nikov
Дата: 25.09.15 17:39
Оценка: 305 (12) :)))
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Ассемблерная инструкция x86 MOV является полной по Тьюрингу, что позволяет построить компилятор высокоуровнего языка, генерирующий бинарный код, состояющий только из вариаций этой инструкции.


Это ещё что... Процессор x86 является полным по Тьюрингу, даже если запрещается использовать вообще любые ассемблерные инструкции:
https://github.com/jbangert/trapcc
http://0b4af6cdc2f0c5998459-c0245c5c937c5dedcca3f1764ecc9b2f.r43.cf2.rackcdn.com/12061-woot13-bangert.pdf
Отредактировано 25.09.2015 17:42 nikov . Предыдущая версия .
Re[2]: MOV-компилятор
От: Ops Россия  
Дата: 26.09.15 20:43
Оценка:
Здравствуйте, nikov, Вы писали:

N>Это ещё что... Процессор x86 является полным по Тьюрингу, даже если запрещается использовать вообще любые ассемблерные инструкции:


На всю голову... Троллейбус.жпг
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: MOV-компилятор
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 29.09.15 11:44
Оценка:
Здравствуйте, 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-процессорам вот таким вот экзотическим способом.
Работа в таком вот духе похоже дает намного бОльше обращений к памяти, т.е. реально будет существенное замедление
Отредактировано 29.09.2015 11:49 Pauel . Предыдущая версия .
Re[2]: MOV-компилятор
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.09.15 17:23
Оценка: +3
I>В работе, на основании которой сделан компилер, неверный вывод.

Вообще-то, оно больше на стеб похоже =/

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: MOV-компилятор
От: Michael7 Россия  
Дата: 04.10.15 13:24
Оценка:
Здравствуйте, nikov, Вы писали:

N>Это ещё что... Процессор x86 является полным по Тьюрингу, даже если запрещается использовать вообще любые ассемблерные инструкции:

N>https://github.com/jbangert/trapcc
N>http://0b4af6cdc2f0c5998459-c0245c5c937c5dedcca3f1764ecc9b2f.r43.cf2.rackcdn.com/12061-woot13-bangert.pdf

Шизануться! Первая мысль была — как это без ассемблерных инструкций?!
Почитал и от восторга только "ну, твою мать, что придумал!"
Re[2]: MOV-компилятор
От: Michael7 Россия  
Дата: 04.10.15 13:46
Оценка:
Здравствуйте, 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...

Re[3]: MOV-компилятор
От: vdimas Россия  
Дата: 05.10.15 09:57
Оценка:
Здравствуйте, Michael7, Вы писали:

M>So this is how God created the universe ex nihilo...[/q]


Адресная арифметика зашита в контроллеры, т.е. там стоят сумматоры. На таблицах — ветвление. Не такое уж и "ничего".
Попробовал бы он это сделать на модели "плоской" памяти. ))
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.