История изменений
Исправление Vic, (текущая версия) :
Подобные куски можно встретить в отладчике
Кстати, хорошо что вы обратили внимание на отладчик. После работы компилятора получаются машинные коды. Так вот, для того, что бы убедиться и проверить, что компилятор сделал так, как надо, человеку удобно смотреть именно ассемблерный листинг (в мнемониках), а не машинные коды. Так же удобно отлаживать бинарники и загруженные программы по ассемблерному листингу (в мнемониках), а не по машинным кодам. И это не надо путать с отладкой в IDE по исходному коду или листингу от компилятора.
в генераторе кода любого JIT или AOT компилятора, который умеет делать объектный код самостоятельно без внешних утилит
«JIT» и «AOT» это не сами компиляторы, а классификация возможности в какой-то системе на тему запуска и исполнения пользовательских программ, а не «системных».
Например, если мы возьмем любой классический компилятор Си/С++/Ассемблер/Pascal и т.п. - эти программы относятся к классу AOT.
А если начнем рассматривать системы, которые создают свой промежуточный уровень абстракции (скрывая конкретную аппаратуру), например Android, то для исполнения пользовательских программ в нем уже применяется комбинированная техника JIT+AOT (и не важно сколько разных ли встроенных утилит при этом используется).
Так что как бы кто-то не пытался обмануть природу вычислительной техники, базу, в виде ассемблеров и реассемблеров, никуда не деть, потому что ее определяет текущая информационная модель подавляющего большинства процессоров + относительная легкость восприятия человеком отдельных моментов. Т.е. нам приходится копаться в сделанных программах и делать вставки в новых программах, что бы у нас получилось именно то, что задумано на имеющихся процессорах (их инф. модели).
PS.
Эмуляторами сейчас никого не удивишь, хотя, это интересно, познавательно и вообще, круто! Особенно круто, когда эмулируется целая крупная система.
Исправление Vic, :
Подобные куски можно встретить в отладчике
Кстати, хорошо что вы обратили внимание на отладчик. После работы компилятора получаются машинные коды. Так вот, для того, что бы убедиться и проверить, что компилятор сделал так, как надо, человеку удобно смотреть именно ассемблерный листинг (в мнемониках), а не машинные коды. Так же удобно отлаживать бинарники и загруженные программы по ассемблерному листингу (в мнемониках), а не по машинным кодам. И это не надо путать с отладкой в IDE по исходному коду или листингу от компилятора.
в генераторе кода любого JIT или AOT компилятора, который умеет делать объектный код самостоятельно без внешних утилит
«JIT» и «AOT» это не сами компиляторы, а классификация возможности в какой-то системе на тему запуска и исполнения пользовательских программ, а не «системных».
Например, если мы возьмем любой классический компилятор Си/С++/Ассемблер/Pascal и т.п. - эти программы относятся к классу AOT.
А если начнем рассматривать системы, которые создают свой промежуточный уровень абстракции (скрывая конкретную аппаратуру), например Android, то для исполнения пользовательских программ в нем уже применяется комбинированная техника JIT+AOT (и не важно сколько разных ли встроенных утилит при этом используется).
Так что как бы кто-то не пытался обмануть природу вычислительной техники, базу, в виде ассемблеров и реассемблеров, никуда не деть, потому что ее определяет текущая информационная модель подавляющего большинства процессоров.
PS.
Эмуляторами сейчас никого не удивишь, хотя, это интересно, познавательно и вообще, круто! Особенно круто, когда эмулируется целая крупная система.
Исправление Vic, :
Подобные куски можно встретить в отладчике
Кстати, хорошо что вы обратили внимание на отладчик. После работы компилятора получаются машинные коды. Так вот, для того, что бы убедиться и проверить, что компилятор сделал так, как надо, человеку удобно смотреть именно ассемблерный листинг (в мнемониках), а не машинные коды. Так же удобно отлаживать бинарники и загруженные программы по ассемблерному листингу (в мнемониках), а не по машинным кодам. И это не надо путать с отладкой в IDE по исходному коду или листингу от компилятора.
в генераторе кода любого JIT или AOT компилятора, который умеет делать объектный код самостоятельно без внешних утилит
«JIT» и «AOT» это не сами компиляторы, а классификация возможности в какой-то системе на тему запуска и исполнения пользовательских программ, а не «системных».
Например, если мы возьмем любой классический компилятор Си/С++/Ассемблер/Pascal и т.п. - эти программы относятся к классу AOT.
А если начнем рассматривать системы, которые создают свой промежуточный уровень абстракции (скрывая конкретную аппаратуру), например Android, то для исполнения пользовательских программ в нем уже применяется комбинированная техника JIT+AOT (и не важно сколько разных ли встроенных утилит при этом используется).
Так что как бы кто-то не пытался обмануть природу вычислительной техники, базу, в виде ассемблеров и реассемблеров, никуда не деть, потому что ее определяет текущая информационная модель подавляющего большинства процессоров.
PS. Эмуляторами сейчас никого не удивишь, хотя, это интересно, познавательно и вообще, круто!
Исправление Vic, :
Подобные куски можно встретить в отладчике
Кстати, хорошо что вы обратили внимание на отладчик. После работы компилятора получаются машинные коды. Так вот, для того, что бы убедиться и проверить, что компилятор сделал так, как надо, человеку удобно смотреть именно ассемблерный листинг (в мнемониках), а не машинные коды. Так же удобно отлаживать бинарники и загруженные программы по ассемблерному листингу (в мнемониках), а не по машинным кодам. И это не надо путать с отладкой в IDE по исходному коду или листингу от компилятора.
в генераторе кода любого JIT или AOT компилятора, который умеет делать объектный код самостоятельно без внешних утилит
«JIT» и «AOT» это не сами компиляторы, а классификация возможности в какой-то системе на тему запуска и исполнения пользовательских программ, а не «системных».
Например, если мы возьмем любой классический компилятор Си/С++/Ассемблер/Pascal и т.п. - эти программы относятся к классу AOT.
А если начнем рассматривать системы, которые создают свой промежуточный уровень абстракции (скрывая конкретную аппаратуру), например Android, то для исполнения пользовательских программ в нем уже применяется комбинированная техника JIT+AOT (и не важно сколько разных ли встроенных утилит при этом используется).
Так что как бы кто-то не пытался обмануть природу вычислительной техники, базу, в виде ассемблеров и реассемблеров, никуда не деть, потому что ее определяет текущая информационная модель подавляющего большинства процессоров.
PS. Ну а эмуляторами сейчас никого не удивишь.
Исправление Vic, :
Подобные куски можно встретить в отладчике
Кстати, хорошо что вы обратили внимание на отладчик. После работы компилятора получаются машинные коды. Так вот, для того, что бы убедиться и проверить, что компилятор сделал так, как надо, человеку удобно смотреть именно ассемблерный листинг (в мнемониках), а не машинные коды. Так же удобно отлаживать бинарники и загруженные программы по ассемблерному листингу (в мнемониках), а не по машинным кодам. И это не надо путать с отладкой в IDE по исходному коду.
в генераторе кода любого JIT или AOT компилятора, который умеет делать объектный код самостоятельно без внешних утилит
«JIT» и «AOT» это не сами компиляторы, а классификация возможности в какой-то системе на тему запуска и исполнения пользовательских программ, а не «системных».
Например, если мы возьмем любой классический компилятор Си/С++/Ассемблер/Pascal и т.п. - эти программы относятся к классу AOT.
А если начнем рассматривать системы, которые создают свой промежуточный уровень абстракции (скрывая конкретную аппаратуру), например Android, то для исполнения пользовательских программ в нем уже применяется комбинированная техника JIT+AOT (и не важно сколько разных ли встроенных утилит при этом используется).
Так что как бы кто-то не пытался обмануть природу вычислительной техники, базу, в виде ассемблеров и реассемблеров, никуда не деть, потому что ее определяет текущая информационная модель подавляющего большинства процессоров.
PS. Ну а эмуляторами сейчас никого не удивишь.
Исходная версия Vic, :
Подобные куски можно встретить в отладчике
Кстати, хорошо что вы обратили внимание на отладчик. После работы компилятора получаются машинные коды. Так вот, для того, что бы убедиться и проверить, что компилятор сделал так, как надо, человеку удобно смотреть именно ассемблерный листинг (в мнемониках), а не машинные коды. Так же удобно отлаживать программы по ассемблерному листингу (в мнемониках), а не по машинным кодам.
в генераторе кода любого JIT или AOT компилятора, который умеет делать объектный код самостоятельно без внешних утилит
«JIT» и «AOT» это не сами компиляторы, а классификация возможности в какой-то системе на тему запуска и исполнения пользовательских программ, а не «системных».
Например, если мы возьмем любой классический компилятор Си/С++/Ассемблер/Pascal и т.п. - эти программы относятся к классу AOT.
А если начнем рассматривать системы, которые создают свой промежуточный уровень абстракции (скрывая конкретную аппаратуру), например Android, то для исполнения пользовательских программ в нем уже применяется комбинированная техника JIT+AOT (и не важно сколько разных ли встроенных утилит при этом используется).
Так что как бы кто-то не пытался обмануть природу вычислительной техники, базу, в виде ассемблеров и реассемблеров, никуда не деть, потому что ее определяет текущая информационная модель подавляющего большинства процессоров.
PS. Ну а эмуляторами сейчас никого не удивишь.