Binary translation (original) (raw)
컴퓨팅에서 이진 변환 또는 바이너리 변환(binary translation)은 명령어를 원본(source) 명령어 집합에서 대상(target) 명령어 집합으로 변환하는 바이너리 재컴파일의 일종이다. 등의 경우에 대상 명령어 집합은 원본 명령어 집합과 동일할 수 있으며 명령어 추적, 조건문 브레이크포인트, 핫스팟 감지 등 테스트 및 디버깅 기능을 제공한다. 2가지 주된 유형으로 정적 이진 변환과 동적 이진 변환이 있다. 변환은 하드웨어 수준에서 수행될 수 있고(예: CPU의 회로를 통해) 아니면 소프트웨어 수준에서 수행될 수도 있다.(예: 런타임 엔진, 정적 재컴파일러, 에뮬레이터)
Property | Value |
---|---|
dbo:abstract | في الحوسبة، الترجمة الثنائية (أو إعادة التجميع (الثنائية)) هي محاكاة تنفيذ مجموعة تعليمات ما باستخدام مجموعة تعليمات أخرى عبر ترجمة الكود الثنائي من مجموعة التعليمات الأولى إلى الثانية، حيث تتم ترجمة سلاسل التعليمات من مجموعة التعليمات المصدر (من اللغة الثنائية المصدرية) إلى مجموعة التعليمات الهدف. في بعض الحالات، مثل ، يمكن أن تكون مجموعة التعليمات الهدف هي نفسها مجموعة التعليمات المصدرية، وذلك لتوفير مزايا تفيد في الاختبار والتنقيح مثل تتبع التعليمات، ونقاط التوقف الشرطية وأيضاً اكتشاف (hot spots). هناك نوعين أساسيين للترجمة الثنائية: الترجمة الثنائية الستاتيكية والترجمة الثنائية الديناميكية. يمكن تنفيذ الترجمة عبر عتاد خاص (عبر دارات خاصة في وحدة المعالجة المركزية على سبيل المثال) أو برمجياً (مثل بيئات التنفيذ، المحاكيات). (ar) In computing, binary translation is a form of binary recompilation where sequences of instructions are translated from a source instruction set to the target instruction set. In some cases such as instruction set simulation, the target instruction set may be the same as the source instruction set, providing testing and debugging features such as instruction trace, conditional breakpoints and hot spot detection. The two main types are static and dynamic binary translation. Translation can be done in hardware (for example, by circuits in a CPU) or in software (e.g. run-time engines, static recompiler, emulators). (en) En informatique, la translation de code est une technique d'émulation consistant à traduire (de l'anglais « to translate », traduire) le jeu d'instructions d'une architecture source vers le jeu d'instructions d'une architecture destination. On distingue deux types de translation de code : * la translation statique, dans ce cas un fichier exécutable de la machine source est intégralement traduit en un fichier exécutable de la machine destination ; * la translation dynamique (ou compilation à la volée), dans ce cas les instructions de la machine source sont traduites en instructions de la machine cible au moment même de leur exécution. (fr) 컴퓨팅에서 이진 변환 또는 바이너리 변환(binary translation)은 명령어를 원본(source) 명령어 집합에서 대상(target) 명령어 집합으로 변환하는 바이너리 재컴파일의 일종이다. 등의 경우에 대상 명령어 집합은 원본 명령어 집합과 동일할 수 있으며 명령어 추적, 조건문 브레이크포인트, 핫스팟 감지 등 테스트 및 디버깅 기능을 제공한다. 2가지 주된 유형으로 정적 이진 변환과 동적 이진 변환이 있다. 변환은 하드웨어 수준에서 수행될 수 있고(예: CPU의 회로를 통해) 아니면 소프트웨어 수준에서 수행될 수도 있다.(예: 런타임 엔진, 정적 재컴파일러, 에뮬레이터) (ko) バイナリ変換(英: Binary translation)は、コンピュータの領域において、変換元の命令列を変換先の命令セットに翻訳し、機械語コードを変換することで命令セットのエミュレーションを行うことである。 (ja) Een binaire vertaling is de emulatie van een instructieset door een processor met een andere instructieset door middel van vertaling van de broncode. Hierdoor zou het in theorie mogelijk zijn om Mac OS X (dat de instructieset AMD64 ondersteunt) te draaien op PowerPC-gebaseerde computers. Er zijn twee soorten: statisch en dynamisch. Bij statisch wordt de code niet uitgevoerd, maar gewoon omgezet naar code voor de andere instructieset. Bij dynamische binaire vertaling wordt de code uitgevoerd en zo omgezet naar code voor een andere instructieset. (nl) 在计算机领域中,二进制翻译(binary translation)、二进制转换或二进制重新编译((binary) recompilation)是以翻译二进制代码来仿真另一个。指令按顺序从原指令集翻译为目标指令集。在等某些情况中,目标指令集可能与源指令集是同一指令集,翻译是为提供指令跟踪、条件断点、检测等测试和调试功能。 二进制翻译主要分为静态翻译与动态翻译两种类型。翻译可以由硬件(例如通过CPU中的电路)或软件(例如运行时引擎、静态重编译、仿真器等)完成。 (zh) Двоичная трансляция (англ. binary translation) — эмуляция одного набора инструкций на другом за счёт трансляции машинного кода. Последовательности инструкций переводятся из исходного набора в целевой набор инструкций. Двоичная трансляция позволяет выполнять приложения одной архитектуры при работе на второй, причём для оптимизирующих двоичных компиляторов скорость выполнения кода зачастую выше оригинала. Двоичная трансляция может быть статической и динамической. Динамическая компиляция происходит незаметно для пользователя при запуске приложения. Статический компилятор делает из двоичного кода исходной архитектуры готовое полноценное приложение для целевой архитектуры. При статической динамической трансляции весь исходный исполняемый файл транслируется в исполнимый файл для целевой архитектуры. Это весьма непростая задача — выполнить данную трансляцию абсолютно корректно, так как не весь код сразу считывается транслятором. Например, некоторые части исполнимого кода доступны лишь через косвенные переходы, чьи параметры становятся известны лишь во время исполнения. С другой стороны, динамическая трансляция рассматривает короткие последовательности кода (как правило, это базовый блок: цикл или метод), транслирует его и кэширует результирующую последовательность. Код транслируется не весь, а по мере считывания и, соответственно, возможности его трансляции, и для инструкций ветвления создается контрольная точка в транслируемом коде. Динамическая двоичная трансляция отличается от простой эмуляции удалением основного цикла эмулятора «считывание-декодирование-исполнение» (что является основным его узким местом), расплачиваясь за это большими накладными нагрузками во время процесса трансляции.Эти накладные расходы (нагрузки) несколько нивелируются в дальнейшем благодаря тому, что оттранслированный код будет исполняться несколько раз (то есть без повторной трансляции). Более совершенные динамические трансляторы применяют : транслируемый код инструментируется на предмет выяснения «температуры кода», то есть того, какие фрагменты выполняются довольно часто, и к ним применяется агрессивная оптимизация. Такой подход напоминает JIT-компилятор, и в сущности, такие компиляторы (как например, технология HotSpot от корпорации Sun) можно рассматривать как динамические трансляторы из виртуального набора инструкций (байт-код) в реальный. (ru) |
dbo:wikiPageExternalLink | http://moodle.technion.ac.il/pluginfile.php/373059/mod_resource/content/3/IntroductionToBinaryTranslation-ver2.pdf https://web.archive.org/web/20160309094116/https:/moodle.technion.ac.il/pluginfile.php/373059/mod_resource/content/3/IntroductionToBinaryTranslation-ver2.pdf http://www.cse.iitd.ernet.in/~sbansal/pubs/osdi08_html/index.html https://books.google.com/books%3Fid=U4IKBwAAQBAJ&pg=PA117 https://core.ac.uk/download/pdf/4417669.pdf http://dl.acm.org/citation.cfm%3Fid=956550 http://www.gtoal.com/sbt/ http://www.computer.org/csdl/mags/mi/1998/02/m2056-abs.html |
dbo:wikiPageID | 218708 (xsd:integer) |
dbo:wikiPageLength | 20672 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1113947656 (xsd:integer) |
dbo:wikiPageWikiLink | dbc:Emulation_software dbr:PowerPC dbr:Princeton_University dbr:Memoization dbc:Virtualization dbr:Honeywell dbr:Cube_World dbr:VAX dbr:VLIW dbr:Indirect_branch dbr:Instruction_set_simulator dbr:Peephole_optimization dbr:Pentium_Pro dbr:Massachusetts_Institute_of_Technology dbr:SPARC dbr:GameCube dbr:Game_Boy dbr:Motorola_68000_series dbr:Apple_Computer dbr:Linux dbr:MIPS_architecture dbr:Mac_OS_X dbr:Stanford_University dbr:StarCraft_(video_game) dbr:Comparison_of_platform_virtualization_software dbr:Complex_instruction_set_computer dbr:Computing dbr:Emulator dbr:SUSE_Linux dbr:Micro-operation dbr:Transmeta dbr:Wii dbr:Windows_Server dbr:HPE_Integrity_Servers dbr:HP_9000 dbr:Just-in-time_compilation dbr:ARM_architecture dbr:DEC_Alpha dbr:Dynamic_recompilation dbr:Basic_block dbr:Nintendo dbr:Nintendo_Entertainment_System dbr:Pandora_(console) dbr:Binary_optimization dbr:Transmeta_Crusoe dbr:Video_game dbr:PA-RISC dbr:Procedural_generation dbr:Reverse_engineering dbr:HP-UX dbr:Hewlett-Packard dbr:Itanium dbr:Itanium_2 dbc:Interpreters_(computing) dbr:LLVM dbr:Sun_Microsystems dbr:Super_Mario_Bros. dbr:Honeywell_200 dbr:Digital_Equipment_Corporation dbr:Dolphin_(emulator) dbr:Apple_Macintosh dbr:Bytecode dbr:Classic_(Mac_OS_X) dbr:Mac_OS_X_10.4 dbr:IBM_1400_series dbr:Instruction_(computer_science) dbr:Instruction_set dbr:Intel dbr:Microsoft dbr:Nvidia dbr:Operating_system dbr:Red_Hat dbr:Shadow_memory dbr:CPU dbr:X86 dbr:Bell_Communications_Research dbr:Virtual_machine dbr:Rosetta_(software) dbr:Wabi_(software) dbr:FAQ dbr:FX!32 dbr:Complex_instruction_set_computing dbr:IA-32_Execution_Layer dbr:Liberator_(Honeywell) dbr:QuickTransit dbr:IEEE_Computer_Society dbr:Superoptimization dbr:Executable dbr:Tegra dbr:RISC dbr:JIT_compiler dbr:Transitive_Corporation dbr:HotSpot_(Java) dbr:Hot_spot_(computer_science) dbr:X64 dbr:GDB dbr:Compiler_optimization dbr:Binary_recompilation dbr:Mac_68K_emulator dbr:Mac_OS_X_10.5 dbr:Sorav_Bansal |
dbp:cs1Dates | y (en) |
dbp:date | March 2014 (en) |
dbp:wikiPageUsesTemplate | dbt:Citation_needed dbt:Cite_conference dbt:Cite_journal dbt:Cite_web dbt:Quote dbt:Refbegin dbt:Refend dbt:Reflist dbt:Short_description dbt:Use_mdy_dates |
dcterms:subject | dbc:Emulation_software dbc:Virtualization dbc:Interpreters_(computing) |
gold:hypernym | dbr:Emulation |
rdf:type | dbo:Software |
rdfs:comment | 컴퓨팅에서 이진 변환 또는 바이너리 변환(binary translation)은 명령어를 원본(source) 명령어 집합에서 대상(target) 명령어 집합으로 변환하는 바이너리 재컴파일의 일종이다. 등의 경우에 대상 명령어 집합은 원본 명령어 집합과 동일할 수 있으며 명령어 추적, 조건문 브레이크포인트, 핫스팟 감지 등 테스트 및 디버깅 기능을 제공한다. 2가지 주된 유형으로 정적 이진 변환과 동적 이진 변환이 있다. 변환은 하드웨어 수준에서 수행될 수 있고(예: CPU의 회로를 통해) 아니면 소프트웨어 수준에서 수행될 수도 있다.(예: 런타임 엔진, 정적 재컴파일러, 에뮬레이터) (ko) バイナリ変換(英: Binary translation)は、コンピュータの領域において、変換元の命令列を変換先の命令セットに翻訳し、機械語コードを変換することで命令セットのエミュレーションを行うことである。 (ja) Een binaire vertaling is de emulatie van een instructieset door een processor met een andere instructieset door middel van vertaling van de broncode. Hierdoor zou het in theorie mogelijk zijn om Mac OS X (dat de instructieset AMD64 ondersteunt) te draaien op PowerPC-gebaseerde computers. Er zijn twee soorten: statisch en dynamisch. Bij statisch wordt de code niet uitgevoerd, maar gewoon omgezet naar code voor de andere instructieset. Bij dynamische binaire vertaling wordt de code uitgevoerd en zo omgezet naar code voor een andere instructieset. (nl) 在计算机领域中,二进制翻译(binary translation)、二进制转换或二进制重新编译((binary) recompilation)是以翻译二进制代码来仿真另一个。指令按顺序从原指令集翻译为目标指令集。在等某些情况中,目标指令集可能与源指令集是同一指令集,翻译是为提供指令跟踪、条件断点、检测等测试和调试功能。 二进制翻译主要分为静态翻译与动态翻译两种类型。翻译可以由硬件(例如通过CPU中的电路)或软件(例如运行时引擎、静态重编译、仿真器等)完成。 (zh) في الحوسبة، الترجمة الثنائية (أو إعادة التجميع (الثنائية)) هي محاكاة تنفيذ مجموعة تعليمات ما باستخدام مجموعة تعليمات أخرى عبر ترجمة الكود الثنائي من مجموعة التعليمات الأولى إلى الثانية، حيث تتم ترجمة سلاسل التعليمات من مجموعة التعليمات المصدر (من اللغة الثنائية المصدرية) إلى مجموعة التعليمات الهدف. في بعض الحالات، مثل ، يمكن أن تكون مجموعة التعليمات الهدف هي نفسها مجموعة التعليمات المصدرية، وذلك لتوفير مزايا تفيد في الاختبار والتنقيح مثل تتبع التعليمات، ونقاط التوقف الشرطية وأيضاً اكتشاف (hot spots). (ar) In computing, binary translation is a form of binary recompilation where sequences of instructions are translated from a source instruction set to the target instruction set. In some cases such as instruction set simulation, the target instruction set may be the same as the source instruction set, providing testing and debugging features such as instruction trace, conditional breakpoints and hot spot detection. (en) En informatique, la translation de code est une technique d'émulation consistant à traduire (de l'anglais « to translate », traduire) le jeu d'instructions d'une architecture source vers le jeu d'instructions d'une architecture destination. On distingue deux types de translation de code : (fr) Двоичная трансляция (англ. binary translation) — эмуляция одного набора инструкций на другом за счёт трансляции машинного кода. Последовательности инструкций переводятся из исходного набора в целевой набор инструкций. Двоичная трансляция позволяет выполнять приложения одной архитектуры при работе на второй, причём для оптимизирующих двоичных компиляторов скорость выполнения кода зачастую выше оригинала. (ru) |
rdfs:label | ترجمة ثنائية (ar) Binary translation (en) Translation de code (fr) 이진 변환 (ko) バイナリ変換 (ja) Binaire vertaling (nl) Двоичная трансляция (ru) 二进制翻译 (zh) |
owl:sameAs | freebase:Binary translation wikidata:Binary translation dbpedia-ar:Binary translation dbpedia-fa:Binary translation dbpedia-fr:Binary translation dbpedia-ja:Binary translation dbpedia-ko:Binary translation dbpedia-nl:Binary translation dbpedia-ru:Binary translation dbpedia-zh:Binary translation https://global.dbpedia.org/id/2A8Q9 |
prov:wasDerivedFrom | wikipedia-en:Binary_translation?oldid=1113947656&ns=0 |
foaf:isPrimaryTopicOf | wikipedia-en:Binary_translation |
is dbo:genre of | dbr:Rosetta_(software) |
is dbo:wikiPageRedirects of | dbr:Binary_translator dbr:Dynamic_binary_translation dbr:Dynamic_binary_translator dbr:Static_binary_translation dbr:Static_binary_translator dbr:Static_recompilation |
is dbo:wikiPageWikiLink of | dbr:PowerVM_Lx86 dbr:QEMU dbr:Elbrus-8S dbr:List_of_commercial_video_games_with_available_source_code dbr:VMware dbr:X86_virtualization dbr:Elbrus_2000 dbr:Full_virtualization dbr:Cross-platform_virtualization dbr:MacOS dbr:Hardware-assisted_virtualization dbr:P-code_machine dbr:Transmeta dbr:Wine_(software) dbr:DBT dbr:Just-in-time_compilation dbr:DOSBox dbr:Dynamic_recompilation dbr:Pandora_(computer) dbr:Binary_translator dbr:Source_code dbr:Project_Denver dbr:Dynamic_binary_translation dbr:Dynamic_binary_translator dbr:Static_binary_translation dbr:Static_binary_translator dbr:Jazelle dbr:Wrapper_function dbr:IBM_AS/400 dbr:IBM_System/38 dbr:OVPsim dbr:Object_code_optimizer dbr:RISC-V dbr:Reduced_instruction_set_computer dbr:Shadow_memory dbr:Rosetta_(software) dbr:Simics dbr:Wabi_(software) dbr:FX!32 dbr:Very_long_instruction_word dbr:PowerVM dbr:Outline_of_Apple_Inc. dbr:Static_recompilation |
is dbp:genre of | dbr:Rosetta_(software) |
is foaf:primaryTopic of | wikipedia-en:Binary_translation |