<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%D0%91%D0%B0%D0%B9%D1%82-%D0%BA%D0%BE%D0%B4</id>
	<title>Байт-код - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%D0%91%D0%B0%D0%B9%D1%82-%D0%BA%D0%BE%D0%B4"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%91%D0%B0%D0%B9%D1%82-%D0%BA%D0%BE%D0%B4&amp;action=history"/>
	<updated>2026-07-16T12:04:12Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%91%D0%B0%D0%B9%D1%82-%D0%BA%D0%BE%D0%B4&amp;diff=19057&amp;oldid=prev</id>
		<title>imported&gt;Cyberkiborg в 19:47, 4 февраля 2026</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%91%D0%B0%D0%B9%D1%82-%D0%BA%D0%BE%D0%B4&amp;diff=19057&amp;oldid=prev"/>
		<updated>2026-02-04T19:47:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{стиль статьи|дата=2023-01-08}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Байт-код&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;байтко́д&amp;#039;&amp;#039;; {{lang-en|bytecode}}, также иногда &amp;#039;&amp;#039;p-код&amp;#039;&amp;#039;, {{Langi-en2|p-code}} от {{Langi-en2|portable code}}) — стандартное [[промежуточное представление]], в которое может быть переведена [[компьютерная программа]] автоматическими средствами. По сравнению с [[Исходный код|исходным кодом]], удобным для создания и чтения человеком, байт-код — это компактное представление программы, уже прошедшей [[Синтаксический анализ|синтаксический]] и [[Семантический анализ|семантический]] анализ. В нём закодированы [[Тип данных|типы]], [[Область видимости|области видимости]] и другие конструкции. С технической точки зрения байт-код представляет собой машинно-независимый [[Низкоуровневый язык программирования|код низкого уровня]], генерируемый [[транслятор]]ом из исходного кода.&lt;br /&gt;
&lt;br /&gt;
Многие современные [[Язык программирования|языки программирования]], в особенности [[Интерпретируемый язык программирования|интерпретируемые]], используют байт-код для облегчения и ускорения работы [[интерпретатор]]а. Трансляция в байт-код является методом, промежуточным по эффективности между прямой [[Интерпретация (программирование)|интерпретацией]] и [[Компиляция (программирование)|компиляцией]] в машинный код.&lt;br /&gt;
&lt;br /&gt;
По форме байт-код похож на [[машинный код]], но предназначен для исполнения не реальным [[процессор]]ом, а [[Виртуальная машина|виртуальной машиной]], в качестве которой обычно выступает [[интерпретатор]] соответствующего [[Язык программирования|языка программирования]], иногда дополненный [[JIT-компиляция|JIT-]] или [[AOT-компиляция|AOT-компилятором]].Спецификации байт-кода и исполняющих его виртуальных машин могут сильно различаться для разных языков: часто байт-код состоит из [[Инструкция (информатика)|инструкций]] для {{нп5|стековая архитектура|стековой|en|Stack machine}} [[Виртуальная машина|виртуальной машины]]&amp;lt;ref name=&amp;quot;parr09stack&amp;quot;&amp;gt;Terence Parr. Language Implementation Patterns — Pragmatic Bookshelf, December 2009, ISBN 978-1-934356-45-6 [https://www.safaribooksonline.com/library/view/language-implementation-patterns/9781680500097/f_0093.html «Part 3: Building Interpreters. Pattern 27 Stack-Based Bytecode Interpreter»] {{Wayback|url=https://www.safaribooksonline.com/library/view/language-implementation-patterns/9781680500097/f_0093.html|date=20150626120226}}&amp;lt;/ref&amp;gt;, однако могут использоваться и [[Машина Минского|регистровые]] машины&amp;lt;ref name=&amp;quot;parr09reg&amp;quot;&amp;gt;Terence Parr. Language Implementation Patterns — Pragmatic Bookshelf, December 2009, ISBN 978-1-934356-45-6 [https://www.safaribooksonline.com/library/view/language-implementation-patterns/9781680500097/f_0094.html «Part 3: Building Interpreters. Pattern 28 Register-Based Bytecode Interpreter»] {{Wayback|url=https://www.safaribooksonline.com/library/view/language-implementation-patterns/9781680500097/f_0094.html|date=20150626151817}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;virmshowdown-yshi2005&amp;quot;&amp;gt;{{статья|автор=Yunhe Shi, David Gregg, Andrew Beatty, M. Anton Ertl|заглавие=Virtual Machine Showdown: Stack Versus Registers|язык=en|издание=VEE &amp;#039;05: Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments|место=Chicago, Illinois, USA|издательство=ACM|год=2005|страницы=153 - 163 |isbn=1-59593-047-7|doi=10.1145/1064979.1065001}}&amp;lt;/ref&amp;gt;. Тем не менее, большинство инструкций байт-кода обычно эквивалентны одной или нескольким командам [[Язык ассемблера|ассемблера]].&lt;br /&gt;
&lt;br /&gt;
Название Байт-кода происходит от длины каждого [[Код операции|кода операции]], которая обычно составляет один [[байт]]. Каждая инструкция обычно представляет собой однобайтовый код операции (от 0 до 255), за которым могут следовать различные параметры, например, номер [[Регистр процессора|регистра]] или [[Адрес (информатика)|адрес]] в памяти.&lt;br /&gt;
&lt;br /&gt;
== Исполнение ==&lt;br /&gt;
Программа на байт-коде обычно выполняется &amp;#039;&amp;#039;интерпретатором байт-кода&amp;#039;&amp;#039;. Преимущество байт-кода в большей эффективности и [[Портирование программного обеспечения|портируемости]]: один и тот же байт-код может исполняться на разных [[Архитектура компьютера|архитектурах]], для которых реализован интерпретатор. Такое же преимущество дают непосредственно интерпретируемые языки, однако, поскольку байт-код обычно менее абстрактен и более компактен, чем исходный код, эффективность интерпретации байт-кода обычно выше, чем чистая интерпретация исходного кода или интерпретация [[Абстрактное синтаксическое дерево|АСД]]. Кроме того, интерпретатор байт-кода зачастую проще интерпретатора исходного кода и его проще перенести (портировать) на другую аппаратную платформу.&lt;br /&gt;
&lt;br /&gt;
В высокопроизводительных реализациях виртуальных машин может применяться комбинация интерпретатора и [[JIT|JIT-компилятора]], который во время исполнения программы транслирует часто используемые фрагменты байт-кода в машинный код, применяя при этом различные оптимизации. Вместо JIT-компиляции может применяться [[AOT-компиляция|AOT-компилятор]], транслирующий байт-код в машинный код предварительно, до исполнения.&lt;br /&gt;
&lt;br /&gt;
В то же время возможно создание процессоров, для которых данный байт-код является непосредственно машинным кодом (такие экспериментальные процессоры создавались, например, для языков [[Java]] и [[Форт (язык программирования)|Форт]]).&lt;br /&gt;
&lt;br /&gt;
== История ==&lt;br /&gt;
Среди первых систем, использовавших байт-код, были O-code для BCPL (1960-е), Smalltalk (1976)&amp;lt;ref&amp;gt;[https://www.cs.purdue.edu/homes/jv/events/PBD13/slides/MarioWolczko.pdf Bringing Performanceand Scalability toDynamic Languages]{{Недоступная ссылка|date=Май 2018 |bot=InternetArchiveBot }} // Mario Wolczko, Oracle 2012 слайд 7&amp;lt;/ref&amp;gt;, SIL (System Implementation Language) для языка Snobol-4 (1967), и &amp;#039;&amp;#039;&amp;#039;[[p-код]]&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;p-code&amp;#039;&amp;#039;, 1970-е, при участии [[Вирт, Никлаус|Никлауса Вирта]]) для [[UCSD p-System|переносимых компиляторов]] языка программирования [[Паскаль (язык программирования)|Pascal]]&amp;lt;ref&amp;gt;[http://www.osp.ru/pcworld/2001/04/161427/ Руслан Богатырев. Летопись языков Паскаль] {{Wayback|url=http://www.osp.ru/pcworld/2001/04/161427/ |date=20150530051641 }}, Мир ПК, № 04/2001&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[https://books.google.ru/books?id=7EES26vGz38C&amp;amp;pg=PA517&amp;amp;lpg=PA517&amp;amp; Компиляторы: принципы, технологии и инструментарий] {{Wayback|url=https://books.google.ru/books?id=7EES26vGz38C&amp;amp;pg=PA517&amp;amp;lpg=PA517&amp;amp;|date=20160304231018}} — Вильямс, ISBN 9785845901897, стр 517 «12.2 Компиляторы Pascal»&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://www.threedee.com/jcm/psystem/ THE UCSD P-SYSTEM MUSEUM] {{Wayback|url=http://www.threedee.com/jcm/psystem/ |date=20150217045428 }}, 2004&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Варианты p-кода широко использовались в различных реализациях языка Pascal, например, в [[UCSD p-System]] ([[UCSD Pascal]]).&amp;lt;ref name=msil2002/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Применение ==&lt;br /&gt;
К интерпретируемым языкам, использующим байт-код, относятся [[Perl]], [[PHP]] (например [[Zend Engine]]), [[Ruby]] (начиная с версии 1.9), [[Python]], [[Erlang]] и многие другие.&lt;br /&gt;
&lt;br /&gt;
Широко распространённые платформы, использующие байт-код&amp;lt;ref name=sharp-java-dobbs2001/&amp;gt;&amp;lt;!-- java, dalvik, .NET, флеш — это ± по миллиарду установок (1.5 +5G javacards, 1, 1.25, 1.3), могу АИ; еще более миллиарда js/ecma но оно более фрагментированы по байткодам; --&amp;gt;:&lt;br /&gt;
* [[Байт-код Java]] (стековая виртуальная машина), исполняемый различными [[Java Virtual Machine|виртуальными машинами Java]]&amp;lt;ref&amp;gt;http://www.javaworld.com/article/2077233/core-java/bytecode-basics.html {{Wayback|url=http://www.javaworld.com/article/2077233/core-java/bytecode-basics.html |date=20150519071206 }} 1996&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|url=http://www.osp.ru/cw/2001/06/9339/|title=Компиляторы, интерпретаторы и байт-код|author=Алан Джок|publisher=«Computerworld Россия», № 06, 2001|access-date=2015-05-18|archive-date=2010-10-28|archive-url=https://web.archive.org/web/20101028100552/http://www.osp.ru/cw/2001/06/9339/|url-status=live}}&amp;lt;/ref&amp;gt;. Платформа была создана компанией [[Sun Microsystems|Sun]] для языка [[Java]], но стала использоваться и для других языков; существуют десятки высокопроизводительных реализаций JVM, использующих JIT-компиляторы;&lt;br /&gt;
** Существуют варианты трансляции Java в байт-код регистровых машин, например, в виртуальной машине [[Dalvik]] (с JIT-компиляцией) или при AOT-компиляции в [[Android Runtime|ART]];&lt;br /&gt;
* Платформа [[Microsoft .NET]] использует стековый байт-код [[MSIL|Intermediate Language]] (&amp;#039;&amp;#039;CIL&amp;#039;&amp;#039;, &amp;#039;&amp;#039;MSIL&amp;#039;&amp;#039;)&amp;lt;ref name=&amp;quot;msil2002&amp;quot;&amp;gt;[https://books.google.ru/books?id=2J72ZJOwr_gC&amp;amp;pg=PA92&amp;amp;lpg=PA92&amp;amp; Understanding .NET: A Tutorial and Analysis] {{Wayback|url=https://books.google.ru/books?id=2J72ZJOwr_gC&amp;amp;pg=PA92&amp;amp;lpg=PA92&amp;amp;|date=20160306093011}}, David Chappell, David Wayne Chappell, 2002, ISBN 9780201741629 page 92&amp;lt;/ref&amp;gt;, исполняемый с помощью [[Common Language Runtime]] (&amp;#039;&amp;#039;CLR&amp;#039;&amp;#039;). Создана Microsoft для C# и некоторых других языков;&lt;br /&gt;
* Сценарный язык [[JavaScript]] выполняется различными высокопроизводительными «[[Движок JavaScript|движками]]», в основном, встроенными в веб-браузеры, часто с возможностью JIT-оптимизации. Многие интерпретаторы построены с применением байт-кода, однако программы на JavaScript распространяются в виде исходных кодов;&lt;br /&gt;
* Сценарный язык [[ActionScript]] транслируется в стековый байт-код, распространяется в составе swf- и pdf-файлов, и выполняется виртуальными машинами в [[Adobe Flash]] и [[Adobe Acrobat]].&lt;br /&gt;
&lt;br /&gt;
Компилятор [[Clipper]] создает исполняемый файл, в который включен байт-код, транслированный из исходного текста программы, и виртуальная машина, исполняющая этот байт-код.&lt;br /&gt;
&lt;br /&gt;
Программы на Java обычно компилируются в {{нп3|class-файл|class-файлы|en|Java class file}}, содержащие [[байт-код Java]]. Эти универсальные файлы передаются на различные целевые машины.&lt;br /&gt;
&lt;br /&gt;
В ранних реализациях [[Visual Basic]] (до версии 6) использовался высокоуровневый [[:en:Microsoft P-Code|Microsoft p-code]]&amp;lt;ref name=sharp-java-dobbs2001&amp;gt;[http://www1.cs.columbia.edu/~eaddy/publications/csharpvsjava-eaddy-ddj-feb01.htm C# Versus Java] {{Wayback|url=http://www1.cs.columbia.edu/~eaddy/publications/csharpvsjava-eaddy-ddj-feb01.htm |date=20160406001502 }} / Dr. Dobb’s Journal February 2001&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Высокоуровневые p-коды и байт коды применялись в [[СУБД]], некоторых реализациях [[Бейсик]]а и [[Паскаль (язык программирования)|Паскаля]].&lt;br /&gt;
&lt;br /&gt;
В стандарте открытых загрузчиков [[Open Firmware]] фирмы [[Sun Microsystems]] байт-код представляет операторы языка [[Форт (язык программирования)|Форт]].&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
=== Python ===&lt;br /&gt;
Код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;Hello, World!&amp;quot;)&lt;br /&gt;
Hello, World!&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Байт-код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import dis #импортируем модуль &amp;quot;dis&amp;quot; - Disassembler of Python byte code into mnemonics.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dis.dis(&amp;#039;print(&amp;quot;Hello, World!&amp;quot;)&amp;#039;)&lt;br /&gt;
  1           0 LOAD_NAME                0 (print)&lt;br /&gt;
              2 LOAD_CONST               0 (&amp;#039;Hello, World!&amp;#039;)&lt;br /&gt;
              4 CALL_FUNCTION            1&lt;br /&gt;
              6 RETURN_VALUE&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;br /&gt;
Код:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
outer:&lt;br /&gt;
for (int i = 2; i &amp;lt; 1000; i++) {&lt;br /&gt;
    for (int j = 2; j &amp;lt; i; j++) {&lt;br /&gt;
        if (i % j == 0)&lt;br /&gt;
            continue outer;&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(i);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Байт-код:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
  0:   iconst_2&lt;br /&gt;
  1:   istore_1&lt;br /&gt;
  2:   iload_1&lt;br /&gt;
  3:   sipush  1000&lt;br /&gt;
  6:   if_icmpge       44&lt;br /&gt;
  9:   iconst_2&lt;br /&gt;
  10:  istore_2&lt;br /&gt;
  11:  iload_2&lt;br /&gt;
  12:  iload_1&lt;br /&gt;
  13:  if_icmpge       31&lt;br /&gt;
  16:  iload_1&lt;br /&gt;
  17:  iload_2&lt;br /&gt;
  18:  irem&lt;br /&gt;
  19:  ifne    25&lt;br /&gt;
  22:  goto    38&lt;br /&gt;
  25:  iinc    2, 1&lt;br /&gt;
  28:  goto    11&lt;br /&gt;
  31:  getstatic       #84; //Field java/lang/System.out:Ljava/io/PrintStream;&lt;br /&gt;
  34:  iload_1&lt;br /&gt;
  35:  invokevirtual   #85; //Method java/io/PrintStream.println:(I)V&lt;br /&gt;
  38:  iinc    1, 1&lt;br /&gt;
  41:  goto    2&lt;br /&gt;
  44:  return&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Критика ==&lt;br /&gt;
Обычно байт-код проектируется в стиле стековых виртуальных машин, что упрощает генерацию из [[Абстрактное синтаксическое дерево|AST]], позволяет использовать более простую и компактную кодировку байт-кода, упростить интерпретатор и уменьшить количество машинного кода, требуемого для исполнения одной инструкции байт-кода. С другой стороны, такие варианты байт-кода для заданной программы содержат большее количество инструкций, чем байт-коды регистровых виртуальных машин, из-за чего интерпретатор должен совершить больше непрямых переходов&amp;lt;!-- из instruction-dispatch switch конструкции--&amp;gt;, для которых плохо работает [[предсказание переходов]]&amp;lt;ref name=&amp;quot;virmshowdown-yshi2005&amp;quot;/&amp;gt;. Байт-код для регистровых виртуальных машин имеет немного больший размер машинных кодов, однако количество инструкций по сравнению со стековым байт-кодом примерно в два раза меньше, а интерпретатор — быстрее на десятки процентов&amp;lt;ref name=&amp;quot;virmshowdown-yshi2005&amp;quot;/&amp;gt;. Также байт-код стековых машин сложнее для проведения оптимизаций (выражения становятся неявными, связанные инструкции не сгруппированы, выражения распределены по нескольким [[базовый блок|базовым блокам]])&amp;lt;ref name=saabas07&amp;gt;{{статья|автор=Ando Saabas, Tarmo Uustalu|заглавие=Type systems for optimizing stack-based code|ссылка=http://cs.ioc.ee/~tarmo/papers/bytecode07.pdf|издание=Electronic Notes in Theoretical Computer Science|год=2007|выпуск=190.1|страницы=103-119.|doi=10.1016/j.entcs.2007.02.063|archive-url=https://web.archive.org/web/20160526172309/http://cs.ioc.ee/~tarmo/papers/bytecode07.pdf|archive-date=2016-05-26}}: «virtual stack or virtual register VMs can be executed more efficiently using an interpreter. Virtual register machines can be an attractive alternative to stack architectures because they allow the number of executed VM instructions to be substantially reduced.»&amp;lt;/ref&amp;gt; и требует верификации корректности использования стека&amp;lt;ref&amp;gt;Gerwin Klein and Martin Wildmoser, [https://www4.in.tum.de/publ/papers/KleinW-TPHOLs03.pdf Verified Bytecode Subroutines] {{Wayback|url=https://www4.in.tum.de/publ/papers/KleinW-TPHOLs03.pdf |date=20170810061732 }} // Journal of Automated Reasoning 30.3-4 (2003): 363—398. «Bytecode verification is a static check for bytecode safety. Its purpose is to ensure that the JVM only executes safe code: no operand stack over- or underflows, no ill-formed instructions, no type errors»&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ошибки верификации байт-кода стековых машин приводили к появлению множества экстремально опасных уязвимостей, в частности десятков в виртуальной машине AVM2, используемой в Adobe Flash для исполнения скриптов ActionScript&amp;lt;ref&amp;gt;Mark Dowd (X-Force Researcher IBM Internet Security Systems), [http://www.inf.fu-berlin.de/groups/ag-si/compsec_assign/Dowd2008.pdf Leveraging the ActionScript Virtual Machine]{{Недоступная ссылка|date=Май 2018 |bot=InternetArchiveBot }}, IBM 2008 «if there was a way to execute AS3 instructions that had never been verified, it would be quite dangerous. Unverified instructions would be able to manipulate the native runtime stack … The attack works by manipulating a data structure used by the AVM2 verifier such that it doesn’t correctly verify the ActionScript instructions for a given method»&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Haifei Li, [http://www.fortiguard.com/files/CanSecWest2011_Flash_ActionScript.pdf Understanding and Exploiting Flash ActionScript Vulnerabilities] {{webarchive|url=https://web.archive.org/web/20131126092058/http://www.fortiguard.com/files/CanSecWest2011_Flash_ActionScript.pdf |date=2013-11-26 }}, 2011 «Bytecode -&amp;gt; Verification process … ActionScript Vulnerabilities are due to various program flow calculating errors in the Verification/Generation Process (the Verification Flow and the Execution Flow are not the same)»&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Haifei Li (Microsoft), [http://recon.cx/2012/schedule/attachments/43_Inside_AVM_REcon2012.pdf Inside AVM] {{Wayback|url=http://recon.cx/2012/schedule/attachments/43_Inside_AVM_REcon2012.pdf |date=20141121023804 }} // REcon 2012, Montreal «Most Flash vulnerabilities are ActionScript-related … Faults on verification cause highly-dangerous JIT type confusion vulnerabilities. • highly-dangerous means perfect exploitation: bypassing ASLR+DEP, with %100 reliability, no heapSpray, no JITSpray. • JIT type confusion bugs are due to faults in the verification of AVM!»&amp;lt;/ref&amp;gt; и нескольких в ранних популярных системах исполнения Java (JVM).&amp;lt;ref&amp;gt;The last stage of delirium research group, [http://www.blackhat.com/presentations/bh-asia-02/LSD/bh-asia-02-lsd.pdf Java and Java Virtual Machine security vulnerabilities and their exploitation techniques] {{Wayback|url=http://www.blackhat.com/presentations/bh-asia-02/LSD/bh-asia-02-lsd.pdf |date=20160312131952 }}, BlackHat 2002: «The flaw stemmed from the fact that Bytecode Verifier did not properly perform the bytecode flow analysis»&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://www.ijarcsse.com/docs/papers/Volume_3/3_March2013/V3I3-0108.pdf Verification of Bytecode in a Virtual machine] {{webarchive|url=https://web.archive.org/web/20130430100332/http://ijarcsse.com/docs/papers/Volume_3/3_March2013/V3I3-0108.pdf |date=2013-04-30 }} // International Journal of Advanced Research in Computer Science and Software Engineering Vol.3 Issue 3 March 2013, ISSN 2277-128X: «Java byte code verification has been studied extensively from a correctness perspective, and several vulnerabilities have been found and eliminated in this process»&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В конце 2000-х — начале 2010-х авторы компиляторов [[V8 (движок JavaScript)|V8]] (для языка JavaScript, часто реализуемого через байт-код)&amp;lt;ref&amp;gt;{{cite web|title=Dynamic Machine Code Generation|url=https://developers.google.com/v8/design#mach_code|publisher=Google|access-date=2015-05-18|archive-date=2013-09-17|archive-url=https://web.archive.org/web/20130917191010/https://developers.google.com/v8/design#mach_code|url-status=live}}&amp;lt;/ref&amp;gt; и [[Dart]]&amp;lt;ref&amp;gt;{{cite web|last=Loitsch|first=Florian|title=Why Not a Bytecode VM?|url=http://www.dartlang.org/articles/why-not-bytecode/|publisher=Google|access-date=2015-05-18|archive-date=2013-05-12|archive-url=https://web.archive.org/web/20130512215811/http://www.dartlang.org/articles/why-not-bytecode/|url-status=live}}&amp;lt;/ref&amp;gt; усомнились в том, что промежуточные байт-коды обязательны для быстрых и эффективных виртуальных машин. В этих проектах была реализована непосредственная [[JIT-компиляция]] (компиляция во время исполнения) из исходных кодов сразу в машинный код.&amp;lt;ref&amp;gt;{{cite web|title=JavaScript myth: JavaScript needs a standard bytecode|url=http://www.2ality.com/2012/01/bytecode-myth.html|author=Dr. Axel Rauschmayer|lang=en|access-date=2015-05-18|archive-date=2015-05-19|archive-url=https://web.archive.org/web/20150519211505/http://www.2ality.com/2012/01/bytecode-myth.html|url-status=live}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{примечания}}&lt;br /&gt;
{{Выполнение программы}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Байт-код]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Cyberkiborg</name></author>
	</entry>
</feed>