Comments 25
В попытках найти ответ на сей вопрос, я раз пять переписал эмулятор с C на C++, и обратно.Если переписывание с C на C++ и обратно не даёт полного удовлетворения, то нужно включить в эту цепочку ещё и Rust.
+13
Тогда уж только хардкор, только ассемблер, например под ARM процессор.
P.S. А на Rust уже и реализаций Forth наделали :)
P.S. А на Rust уже и реализаций Forth наделали :)
0
16 битный процессор с регистрами с «R» в начале названия вызывают диссонанс. Почему так сделали? Чтобы было удобнее дебажить?
+3
Что делать дальше?
Делать ПО для эмулированного процессора! :)
P.S. Например, автор TTL компьютера Gigatron сейчас пишет эмуляцию процессора 6502 на данном компьютере.
А, симулятор данного компьютера уже написали и даже в виде одночипового варианта данного компьютера на STM32F405
+1
+2
Что делать дальше?
А нет ли желания попробовать этот процессор написать в железе: сделать ядрышко под FPGA?
Дальше на него можно попробовать портировать линукс).
+1
1) Эмулятор обычно опирается на реальное железо(которое и пытается эмалировать), а все особенности работы железа определены из физических и экономических соображений.
Т.е. почему есть та или иная инструкция, почему есть такое кол-во регистров, и т.д. это все не с потолка. Иначе складывается впечатление что автор слышал, но не понимает природу вещей.
2) «переписал эмулятор с C на C++, и обратно.» — скорее всего автор слаб в Си, и как следствие слабо представляет во что разворачиваются Си++ конструкции, какие, как, когда, где хранятся и т.п…
3) «Что делать дальше?» Как минимум почитать «Цифровая схемотехника
и архитектура компьютера» Дэвид М. Харрис и Сара Л. Харрис. И потратить лет 10-15 на подтягивания понимания Си, архитектуры и желательно плис. И тогда мы от вас получим статью о «никому не нужном эмуляторе», с еще одним абзацем обоснованным фундаментом и исходниками в которых вы по всем параметрам уверенны.
Т.е. почему есть та или иная инструкция, почему есть такое кол-во регистров, и т.д. это все не с потолка. Иначе складывается впечатление что автор слышал, но не понимает природу вещей.
2) «переписал эмулятор с C на C++, и обратно.» — скорее всего автор слаб в Си, и как следствие слабо представляет во что разворачиваются Си++ конструкции, какие, как, когда, где хранятся и т.п…
3) «Что делать дальше?» Как минимум почитать «Цифровая схемотехника
и архитектура компьютера» Дэвид М. Харрис и Сара Л. Харрис. И потратить лет 10-15 на подтягивания понимания Си, архитектуры и желательно плис. И тогда мы от вас получим статью о «никому не нужном эмуляторе», с еще одним абзацем обоснованным фундаментом и исходниками в которых вы по всем параметрам уверенны.
0
а все особенности работы железа определены из физических и экономических соображений.
Процессор виртуальный, придуманный на коленке
скорее всего автор слаб в Си
На некоторых отрезках времени было целесообразно переписать все это дело на плюсы
+1
Эмулятор обычно опирается на реальное железо
Правда? И на какое же железо опирается JVM или CIL?
«переписал эмулятор с C на C++, и обратно.» — скорее всего автор слаб в Си
Простите, а какая тут вообще связь со знанием языка? Что может помешать переписывать тому кто отлично знает оба языка?
+3
Я не увидел у автора статьи обоснования набора инструкции, регистров и т.п…
В кремнии или виртуальный будет ваш конечный результат, все же производительность, энергопотребление, размер на кристалле/в памяти, что-то из всего этого стоит учитывать и стремиться улучшать. И вопрос «что делать дальше» станет более очевидным.
На то, на котором будет запущено jvm. Т.е. и там тоже когда разрабатывали не с потолка инструкции брали, а думали о том на чем будет выполняться. Я думаю что там тоже есть обоснования и что там есть моменты упирающиеся в реальное железо, в реальные архитектуры. А так же я считаю что скорость исполнения байт кода jvm, которая крутится на реальном железе, важна.
Думаю вы согласны с этим.
«кто отлично знает оба языка?» Переписывать туда и обратно? Здравый смысл, и время.
Иначе я начну сомневаться в «отличном знании», но скорей всего выясниться, что я понимаю под знанием языка Си не только его синтаксис. Думаю вы согласны с этим.
В кремнии или виртуальный будет ваш конечный результат, все же производительность, энергопотребление, размер на кристалле/в памяти, что-то из всего этого стоит учитывать и стремиться улучшать. И вопрос «что делать дальше» станет более очевидным.
Правда? И на какое же железо опирается JVM или CIL?
На то, на котором будет запущено jvm. Т.е. и там тоже когда разрабатывали не с потолка инструкции брали, а думали о том на чем будет выполняться. Я думаю что там тоже есть обоснования и что там есть моменты упирающиеся в реальное железо, в реальные архитектуры. А так же я считаю что скорость исполнения байт кода jvm, которая крутится на реальном железе, важна.
Думаю вы согласны с этим.
«переписал эмулятор с C на C++, и обратно.» — скорее всего автор слаб в СиПростите, а какая тут вообще связь со знанием языка? Что может помешать переписывать тому кто отлично знает оба языка?
«кто отлично знает оба языка?» Переписывать туда и обратно? Здравый смысл, и время.
Иначе я начну сомневаться в «отличном знании», но скорей всего выясниться, что я понимаю под знанием языка Си не только его синтаксис. Думаю вы согласны с этим.
0
UFO just landed and posted this here
Что делать дальше?
Прикрутить LLVM вестимо
+1
В универе задали курсовую?
0
UFO just landed and posted this here
https://vm16.ru/
0
Sign up to leave a comment.
Пишем никому не нужный эмулятор