レジスタマシン型命令セットではオペランドの位置を命令内で明示する。これに対しスタックマシン型命令セットでは、暗黙のうちにスタックトップをオペランドとして使い、オペランドの位置を明示する領域が不要である。目的のオペランドがスタックトップにない場合にはオペランド移動のための命令を追加する。大まかに言えば、スタックマシン命令一個当たりの長さと機能は、レジスタマシン一命令内の個々のオペランドフィールド一個、またはコードフィールドと同等である。このためバイトコード全体の長さには大きな差はでなさそうだが、命令の順序を並び換えることにより、オペランド移動をスタックマシンでは省略できる。レジスタマシンではオペランド指定は省略できないので、オペランド移動を省略した分だけスタックマシンの方が同等のプログラムを短く記述できる場合が多い。キャッシュへのヒット率が高まるので、プログラムサイズの削減は実効速度の増加にもなる。しかしオペランド移動の省略を施しても、スタックマシンの方がレジスタマシンより命令数が多くなる。個々の命令が極めて単純な処理しか行わないバイトコードインタプリタでは、命令の種類を判定して分岐する処理が実行時間の大きな割合を占めるので、この点ではレジスタマシンの方が有利となる。
バイトコードを解釈実行するのはソースコードインタプリタと同様にソフトウェアなので、実機の機械語としては複雑過ぎるバイトコードでも原理的には実装できる。しかしその様な複雑なバイトコードを採用すると、それを処理するインタプリタのパフォーマンスもソースコードインタプリタと同等になってしまう。このためバイトコードの多くは、実機の機械語と似た命令セットを使っている。多くのインタプリタ処理系ではスタックマシン型の命令セットが一般的だが、レジスタマシン型を採用しているものもある(Luaのバージョン5やDalvik仮想マシン)。
バイトコードを用いる方式の利点は、ソースコードを直接解釈するインタプリタと同等の移植性を確保した上での、インタプリタのパフォーマンスの高さである。人の手で読み書きされる用途のソースコードよりもバイトコードのほうが、抽象度の低さ、データサイズなどの点で優れておりコンピュータにとって扱いやすいため、パフォーマンスは上回る。このパフォーマンス上の利点から、現在の多くのインタプリタ言語は実際にはバイトコードにコンパイルされた後、バイトコードインタプリタによって実行される。またパフォーマンス以外にも、ソースコードの中身を隠蔽する目的でバイトコードが用いられる場合がある。バイトコードを使用した初期のコンピュータにはSystem/38があり、ソフトウェアのインストール時に機械語に変換された。またJavaのプログラムは、コンパイル済みバイトコードも利用者の環境を選ばないことから、ソースコードだけではなくバイトコードにコンパイルしたものも、標準的に配布されていることが多い。
バイトコード (bytecode) は、仮想マシンによる実行のために設計された、実行可能なプログラムのバイナリ表現である。ソフトウェアによって処理されるため、大抵は実機の機械語より抽象度の高い中間コードになっている。プログラミング言語の実装において、特定のハードウェアへの依存度を下げ、またインタプリタの実装を容易にするために用いられる。コンパイラの中間コードとして用いられることもある。バイトコードという名前は命令の構成がバイト指向であること、すなわち命令長がバイト可変長であったり、命令中のフィールドの区切りがバイト区切りに合っているといったことから来ている。特にJavaの場合オペコードが1バイトである。しかし、仮想マシンの機械語をバイトコードと呼ぶことがJavaで広く一般的になったことから、前述のようなバイト指向でなくともバイトコードと呼んでいることも多い。バイト単位でなくビット単位の場合は、ビットコードとも呼ばれる。ワード指向のためにワードコードという語を使っている例も見られる。バイトコードで記述されたプログラムは通常、バイトコードインタプリタによって解釈・実行される。バイトコードインタプリタは機械語を解釈・実行するCPUとの類似性からバーチャルマシンとも呼ばれる。
ライプツィヒ出身。ライプツィヒ大学医学部卒業。アドルフ・ヒトラーによるユダヤ人弾圧を避けて、1935年2月にイギリスに渡った。1952年にユニヴァーシティ・カレッジ・ロンドン教授に就任し、王立協会の会員に選ばれた。神経末梢部における伝達物質の発見と研究により、1970年ジュリアス・アクセルロッド、ウルフ・スファンテ・フォン・オイラーと共にノーベル生理学・医学賞を受賞した。
以下、『公卿補任』、『尊卑分脈』の内容に従って記述する。建仁4年（1204年）1月5日、叙爵。建保4年（1216年）1月5日、従五位上に昇叙。建保5年（1217年）12月12日、侍従に任ぜられる。安貞元年（1227年）12月25日、左少将に任ぜられる。同年2月1日、上総権介を兼ねる。安貞3年（1229年）4月13日、正五位下に昇叙。寛喜2年（1230年）1月5日、従四位下に昇叙。同月24日、改めて左少将に任ぜられる。貞永2年（1233年）1月24日、能登介を兼ねる。文暦2年（1235年）1月23日、従四位上に昇叙。嘉禎3年（1237年）1月24日、正四位下に昇叙。嘉禎4年（1238年）2月6日、左中将に転任。仁治2年（1241年）3月1日、三河介を兼ねる。仁治3年（1242年）3月7日、蔵人頭に補される。仁治3年（1242年）12月25日、参議に任ぜられる。左中将は元の如し。仁治4年（1243年）2月2日、遠江権守を兼ねる。同年閏7月27日、従三位に昇叙。宝治2年（1248年）1月13日、讃岐権守を兼ねる。同年7月17日、正三位に昇叙。建長2年（1250年）1月13日、権中納言に任ぜられ、帯剣を許される。建長3年（1251年）1月5日、従二位に昇叙。同月22日、右衛門督を兼ね、検非違使別当に補される。建長4年（1252年）12月8日、右衛門督と検非違使別当を辞した。建長6年（1254年）12月25日、権大納言に任ぜられ正二位に昇叙。正嘉3年（1259年）4月17日、権大納言を辞した。文永7年（1270年）6月30日、薨去。享年69。