バイトコード

バイトコード (bytecode) は、バイト指向の、中間表現のコードすなわち中間コードの総称である。バイトコードという名前は命令の構成がバイト指向であること、すなわち命令長がバイト可変長であったり、命令中のフィールドの区切りがビット単位でなくバイト単位になっているといったことから来ている。特にJavaの場合オペコードが1バイトである(Javaバイトコードの記事を参照)。しかし、仮想マシンの機械語をバイトコードと呼ぶことがJavaで広く一般的になったことから、前述のようなバイト指向でなくともバイトコードと呼んでいることも多い。バイト単位でなくビット単位の場合は、ビットコードとも呼ばれる。ワード指向のためにワードコードという語を使っている例も見られる。

存在意義

ソースコードを直接解釈するインタプリタと同等の移植性を確保した上でのインタプリタのパフォーマンスの高さや、ソースコードの中身を隠蔽するのが目的であれば、なんらかの中間表現で足りる。 それら中間表現の中でのバイトコードの意義は、得られるインタプリタの解釈実行パフォーマンスが最も高いことである。

Unixの普及以来、多くのコンピュータにはバイト単位のメモリアクセスに特化した命令が用意されている。 あるいは、コンピュータのメモリアクセスは、そのコンピュータ固有の大きさのワード単位でのものが最も効率的である。 さらに、実ハードウェアの機械語のパフォーマンスを上げるため、機械語と同様に後続アドレスを順次読み込むメモリアクセスバターンは、多くのコンピュータのメモリシステムで最適化されている。 この、コンピュータにとって最も効率的なメモリ単位とアクセスパターンに、表現体系を合わせたものがバイトコードである。 このパフォーマンス上の利点から、現在の多くのインタプリタ言語は実際にはバイトコードにコンパイルされた後、バイトコードインタプリタによって実行される。

Javaのプログラムは、利用者の環境を選ばずともパフォーマンスを確保できることから、ソースコードだけではなくバイトコードにコンパイルしたものも、標準的に配布されていることが多い。

また、中間表現の中でも実ハードウェアの機械語に最も類似したものなので、機械語に変換する直前の中間表現としても使われることがある。 バイトコードを使用した初期のコンピュータにはSystem/38があり、ソフトウェアのインストール時に機械語に変換された。

スタックマシン vs レジスタマシン - その論点

バイト指向でない中間コードもバイトコードも、その多くは、実ハードウェアの機械語と似た命令フォーマットや命令セットの構成をとっている[1]。ただし、ハードウェアで実装されたプロセッサでは比較的、スタックマシンよりレジスタマシンの方が多いのに対し、ソフトウェアによる仮想機械抽象機械ではJava仮想マシンなどスタックマシンも多いという特徴がある。なお、Luaのバージョン5やDalvik仮想マシンなど、レジスタマシンも多い。

理論的観点

抽象機械」と呼ばれるような計算モデルとしての性格が強い機械の場合、理論的な扱いのためにスタックが使われているものもある。

命令の粒度

レジスタマシン型命令セットではオペランドの位置を命令内で明示する。これに対しスタックマシン型命令セットでは、暗黙のうちにスタックトップをオペランドとして使い、オペランドの位置を明示する領域が不要である。目的のオペランドがスタックトップにない場合にはオペランド移動のための命令を追加する。大まかに言えば、スタックマシン命令一個当たりの長さと機能は、レジスタマシン一命令内の個々のオペランドフィールド一個、またはコードフィールドと同等である。

このためバイトコード全体の長さには大差はなさそうだが、スタックマシンでは命令順を並び換えることでオペランド移動命令を略せる場合がある。レジスタマシンではオペランド指定は省略できないので、オペランド移動を省略した分だけスタックマシンの方が同等のプログラムを短く記述できる場合が多い。又データキャッシュヒット率が高まるので、プログラムサイズ削減は実効速度改善にもなる。

しかしオペランド移動の省略を施しても、スタックマシンの方がレジスタマシンより命令数が多くなる。個々の命令が極めて単純な処理しか行わないバイトコードインタプリタでは、命令の種類を判定して分岐する処理が実行時間の大きな割合を占めるので、この点ではレジスタマシンの方が有利となる。

命令間でのオペランドの受け渡し

レジスタマシン型インタプリタでは番号で仮想レジスタを指定するが、多くの実機では実行時に物理レジスタを番号で参照することができないため、メモリ配列によって仮想レジスタが実装されている場合が多い。これに対しスタックマシン型インタプリタでは、ほとんどの命令のオペランドがスタックトップに決め打ちされ、参照すべき物理レジスタをコンパイル時に決定できるので、スタックトップ数個を物理レジスタで実装している。多くの実機ではレジスタ経由でのデータ受け渡しは1クロックでできるのに対し、メモリ経由でのデータ受け渡しは数クロックを要するので、直前の命令の結果を直後の命令が使う処理が連なった場合は、レジスタマシンは不利となる。

ソースコードからバイトコードへの変換

ALGOL以来、多くのプログラミング言語は文脈自由文法で記述でき、スタックマシンと類似したプッシュダウン・オートマトンで構文解析できる。このため、スタックマシン向けのコード生成器ならば、構文解析器と一体化させて省メモリ・高速なものにできる。

レジスタマシン向けの場合、有限のレジスタを使い回すレジスタ割り付けを行う必要がある。ただし、インタプリタの仮想レジスタはメモリ配列で実装されている場合が多い。このため、メモリ配列の大きさが許す限り、実機では非現実的な膨大な数の仮想レジスタを実装でき、その場合、レジスタの使い回しを省いてレジスタ割り付けを単純化することができる。レジスタ・ウィンドウも僅かなコストでレジスタ1本単位でスライドさせる柔軟なものが実装でき、スタックマシン向けと同様に構文解析器とコード生成器の一体化に役立つ。[1]

使用例

  1. ^ 実機ではデコーダやエンコーダといった論理回路に向いたビットパターンのほうが好まれるといった細かい傾向の違いなどはある。

関連項目

Read other articles:

2005 Hong Kong television series The Herbalist's ManualPosterGenreCostume dramaStarringFrankie LamMichelle YeKenneth MaOpening themeSai Sheung Mo Nan Si (世上無難事) performed by Frankie LamCountry of originHong KongOriginal languageCantoneseNo. of episodes25ProductionRunning time45 minutes per episodeOriginal releaseNetworkTVBReleaseNovember 28 (2005-11-28) –December 30, 2005 (2005-12-30) The Herbalist's ManualTraditional Chinese本草藥王Simplified Chinese�...

 

Pour les articles homonymes, voir Sénat. Public SénatCaractéristiquesCréation 25 avril 2000Slogan « Regarder la différence »Langue FrançaisPays FranceSiège social ParisSite web www.publicsenat.frDiffusionNumérique TNT : chaîne no 13 (temps partiel)Satellite Chaîne no 13 (temps partiel)Câble Chaîne no 13 (temps partiel)IPTV Chaîne no 13 sur les box des opérateurs (temps partiel)Orange : chaîne no 226Bouygues : chaîne no ...

 

Dalam cerita rakyat Omoitsuzura, obake berleher panjang keluar dari dalam keranjang. Lukisan ukiyo-e karya Tsukioka Yoshitoshi. Obake (お化けcode: ja is deprecated ) atau bakemono (化け物code: ja is deprecated ) adalah sejenis yōkai dalam cerita rakyat Jepang. Arti harfiah dari kata obake adalah sesuatu yang sangat besar atau sesuatu yang bentuknya aneh. Istilah bakemono sering diterjemahkan dalam kamus sebagai hantu atau setan, namun istilah ini umumnya dipakai untuk makhluk hidup ata...

У этого термина существуют и другие значения, см. Катушка (значения). Устройство безынерционной катушки: 1 — дуга лесоукладывателя 2 — удилище 3 — крепление к удилищу 4 — рукоятка 5 — кронштейн 6 — фиксатор, наматывание, или наматывание и отматывание лески 7...

 

Canton de Combourg Situation du canton de Combourg dans le département d'Ille-et-Vilaine. Administration Pays France Région Bretagne Département Ille-et-Vilaine Arrondissement(s) Saint-Malo Bureau centralisateur Combourg Conseillersdépartementaux Mandat Béatrice Duguépéroux-HonoréBenoît Sohier 2021-2028 Code canton 35 06 Histoire de la division Création 15 février 1790[1] Modifications 1 : 1801[2],[3]2 : 22 mars 2015 Démographie Population 33 928 hab. (2021) D...

 

Washington Informasi pribadiNama lengkap Washington Stecanela CerqueiraTanggal lahir 1 April 1975 (umur 49)Tempat lahir Brasília, BrasilPosisi bermain PenyerangKarier senior*Tahun Tim Tampil (Gol)1994-1996 Caxias do Sul 1997 Internacional 1998 Ponte Preta 1998-1999 Caxias do Sul 1999-2000 Paraná 2000-2002 Ponte Preta 2002-2003 Fenerbahçe 2004 Atlético Paranaense 2005 Tokyo Verdy 2006-2007 Urawa Reds 2008 Fluminense 2009-2010 São Paulo 2010 Fluminense Tim nasional2001-2002 Brasil 9 ...

Egyptian and American chemist (1946–2016) Ahmed ZewailZewail in 2010BornAhmed Hassan Zewail(1946-02-26)February 26, 1946Damanhur, EgyptDiedAugust 2, 2016(2016-08-02) (aged 70)Pasadena, California, U.S.Nationality EgyptianCitizenship United States (naturalized)[3]Alma mater University of Alexandria (B.S., M.S.) University of Pennsylvania (Ph.D.) Known forFemtochemistryAwards King Faisal International Prize for Science (1989) Wolf Prize (Chemistry) (1993) Order of Merit...

 

Śrī Guru Tegh Bahadur (1º aprile 1621 – 11 novembre 1675) è stato il nono guru dei Sikh. Indice 1 Biografia 2 Note 3 Altri progetti 4 Collegamenti esterni Biografia Fu padre di Guru Gobind Singh. Guru Tegh Bahadur ji è conosciuto anche come Hind di Chadar ovvero salvatore dell'induismo, Guru Tegh Bahadur ji sacrificò la sua vita per salvare la religione induista sotto richiesta di alcuni pandit (sacerdoti hindu). Guru ji il 25 maggio del 1675, decise di andare ad Agra per parlare con ...

 

Voce principale: Juventus Football Club. Juventus FCStagione 1979-1980 Sport calcio Squadra Juventus Allenatore Giovanni Trapattoni Presidente Giampiero Boniperti Serie A2º (in Coppa UEFA) Coppa ItaliaSemifinalista Coppa delle CoppeSemifinalista Maggiori presenzeCampionato: Zoff (30)[1] Miglior marcatoreCampionato: Bettega (16)[1] StadioComunale Abbonati11 124[2] Media spettatori31 144[3]¹ 1978-1979 1980-1981 ¹ considera le partite giocate in...

Diga di HooverHoover DamBoulder DamVista aerea della diga di HooverStato Stati Uniti Stato federato Arizona Nevada FiumeColorado UsoProduzione di energia idroelettrica ProprietarioGoverno degli Stati Uniti Inizio lavori1931 Inaugurazione1935 Tipoarco-gravità Volume del bacino35 200 milioni di m³ Altezza210 m Lunghezza201 (alla base) - 379 (in sommità) m Spessoreda 200 a 14 m Tipo di turbina17 turbine tipo Francis Produzione energetica4200[1] GWh/a...

 

Annual LGBT event in Chicago This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article contains content that is written like an advertisement. Please help improve it by removing promotional content and inappropriate external links, and by adding encyclopedic content written from a neutral point of view. (September 2021) (Learn how and when to remove this message) This article's tone or...

 

这是马来族人名,“尤索夫”是父名,不是姓氏,提及此人时应以其自身的名“法迪拉”为主。 尊敬的拿督斯里哈芝法迪拉·尤索夫Fadillah bin Haji YusofSSAP DGSM PGBK 国会议员 副首相 第14任马来西亚副首相现任就任日期2022年12月3日与阿末扎希同时在任君主最高元首苏丹阿都拉陛下最高元首苏丹依布拉欣·依斯迈陛下首相安华·依布拉欣前任依斯迈沙比里 马来西亚能源转型与�...

本條目存在以下問題,請協助改善本條目或在討論頁針對議題發表看法。 此條目需要編修,以確保文法、用詞、语气、格式、標點等使用恰当。 (2013年8月6日)請按照校對指引,幫助编辑這個條目。(幫助、討論) 此條目剧情、虛構用語或人物介紹过长过细,需清理无关故事主轴的细节、用語和角色介紹。 (2020年10月6日)劇情、用語和人物介紹都只是用於了解故事主軸,輔助�...

 

Austrian economist (1851–1914) Eugen von Böhm-BawerkBornEugen Böhm(1851-02-12)12 February 1851Brünn Austrian Empire, now Brno, Czech RepublicDied27 August 1914(1914-08-27) (aged 63)Kramsach, Austria-HungaryNationalityAustria-HungaryAcademic careerFieldPolitical economicsSchool ortraditionAustrian SchoolAlma materUniversity of HeidelbergUniversity of LeipzigUniversity of JenaUniversity of ViennaDoctoraladvisorKarl Knies, Wilhelm Roscher, Bruno HildebrandOther notable studen...

 

This article is part of a series onPolitics of Japan Constitution and Laws Constitution of Japan (1947–present) Meiji Constitution (1890–1947) Laws The Monarchy The Emperor (List) Naruhito Crown Prince Fumihito Imperial House Chrysanthemum Throne Imperial Succession Imperial Household Agency Executive Government Prime Minister (List) Fumio Kishida (LDP) Cabinet (List) Second Kishida Cabinet (Second Reshuffle)(LDP-Komeito coalition) Ministries Administrative Agencies Legislature National D...

Dwayne Johnson Dwayne Johnson en 2023.Información personalNombre de nacimiento Dwayne Douglas JohnsonOtros nombres The RockLa RocaNacimiento 2 de mayo de 1972 (52 años)Hayward, California (Estados Unidos)Residencia Southwest Ranches y Fort Lauderdale Nacionalidad EstadounidenseLengua materna inglésCaracterísticas físicasAltura 1,90 m (6′ 3″)Ojos caféCabello negroFamiliaPadres Rocky Johnson (padre)Cónyuge Dany Garcia (matr. 1997; div. 2007)Lauren Hash...

 

Pemilihan umum Wali Kota Pematangsiantar 2015201020209 Desember 2015Kandidat   Calon Hulman Sitorus Wesly Silalahi Teddy Robinson Siahaan Partai Demokrat PDI-P NasDem Pendamping Hefriansyah Sailanto Zainal Purba Suara rakyat 59.445 25.899 19.282 Persentase 54,49% 23,74% 17,67%   Calon Sujito Partai Independen Pendamping Djumadi Suara rakyat 19.282 Persentase 17,67% Peta persebaran suara Peta lokasi Pematangsiantar Wali Kota petahanaHulman Sitorus Demokrat Wali Kota terpil...

 

Questa voce o sezione sull'argomento partiti politici sammarinesi non cita le fonti necessarie o quelle presenti sono insufficienti. Commento: Unica fonte il sito ufficiale Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Partito Socialista Sammarinese PresidenteAlberto Cecchetti SegretarioMauro Chiaruzzi Stato San Marino SedeVia G. Ordelaffi, 46 - RSM-47893 Borgo Maggiore Fondazione1892 Dissoluzione2005 Conflu...

Hinoemata 檜枝岐村DesaKantor Desa Hinoemata BenderaEmblemLokasi Hinoemata di Prefektur FukushimaHinoemataLokasi di JepangKoordinat: 37°01′27″N 139°23′20″E / 37.02417°N 139.38889°E / 37.02417; 139.38889Negara JepangWilayahTōhokuPrefektur FukushimaDistrikMinamiaizuPemerintahan • WalidesaNobuyuki HiranoLuas • Total390,46 km2 (150,76 sq mi)Populasi (1 Januari 2020) • Total556 • K...

 

Adrian Heath Informasi pribadiNama lengkap Adrian Paul Heath[1]Tanggal lahir 11 Januari 1961 (umur 63)Tempat lahir Newcastle, InggrisTinggi 5 ft 6 in (1,68 m)[2]Posisi bermain StrikerInformasi klubKlub saat ini Minnesota United (pelatih)Karier senior*Tahun Tim Tampil (Gol)1979–1982 Stoke City 95 (16)1982–1988 Everton 226 (71)1988–1989 Espanyol 24 (1)1989–1990 Aston Villa 9 (0)1990–1992 Manchester City 75 (4)1992 Stoke City 6 (0)1992–1995 Burnle...