Эмуляция может казаться пугающей, но на самом деле вполне легче, чем моделирование.
Любой процессор обычно имеет правильно написанную спецификацию, которая описывает состояния, взаимодействия, и т.д.
, Если бы Вы не заботились о производительности вообще, тогда Вы могли бы легко эмулировать большинство процессоров прежних модификаций с помощью очень изящных объектно-ориентированных программ. Например, процессору X86 было бы нужно что-то для поддержания состояния (легких) регистров, что-то для поддержания состояния (легкой) памяти, и что-то, что примет каждое входящее управление и применит его к текущему состоянию машины. Если бы Вы действительно хотели точность, Вы также эмулировали бы переводы памяти, кэширование, и т.д., но это выполнимо.
На самом деле, многие микрочип и тестовые программы производителей ЦП против эмулятора микросхемы и затем против самой микросхемы, которая помогает им узнать, существуют ли проблемы в спецификациях микросхемы, или в фактической реализации микросхемы в аппаратных средствах. Например, возможно записать спецификацию микросхемы, которая привела бы к мертвым блокировкам, и когда крайний срок происходит в аппаратных средствах, важно видеть, могло ли это быть воспроизведено в спецификации, так как это указывает на большую проблему, чем что-то в реализации микросхемы.
, Конечно, эмуляторы для видеоигр обычно заботятся о производительности, таким образом, они не используют наивные реализации, и они также включают код, который взаимодействует через интерфейс с ОС хост-системы, например, для использования рисунка и звука.
Рассмотрение очень медленной производительности старых видеоигр (NES/SNES, и т.д.), эмуляция легка на довольно современных системах. На самом деле еще более удивительно, что Вы могли просто загрузить ряд каждой игры SNES когда-либо или любой игры Atari 2600 когда-либо, полагая, что то, когда эти системы были популярным свободным доступом наличия к каждому картриджу, будет осуществленной мечтой.
Если вы используете какую-либо UNIX (Linux и т. Д.), Вы можете обмануть и отфильтровать ее с помощью команды column (1).
:%!column -t
Вышеупомянутое будет анализировать по разделителям внутри строки литералов, что неверно, поэтому вам, вероятно, потребуются шаги предварительной обработки и указание разделителя для этого файла, например:
%!sed 's/","/\&/' | column -t -s '&'
Как предложил sunny256, команда column
- отличный способ сделать это на машинах Unix / Linux, но если вы хотите сделать это в чистом Vim (чтобы он также может использоваться в Windows), самый простой способ - установить плагин Align , а затем выполнить:
:%Align ,
:%s/\(\s\+\),\s/,\1/g
Первая строка выравнивает записи по запятым, а вторая перемещает запятую так, чтобы она была запятой с предыдущим значением. Вы можете использовать AlignCtrl
для определения настраиваемого сопоставления, которое выполняет всю работу за один раз, но я никогда не могу вспомнить, как его использовать ...
Изменить
Если вы этого не сделаете Не обращайте внимания на два пробела между записями, и вы хотите сделать это одной командой, вы также можете сделать это:
:%Align ,\zs