stanford-oval/wikipedia huggingface dataset:
1989年シーズンのフェニックス・カージナルス
直近のチーム成績

| 年 | 成績 | NFC | 地区 | 勝 | 敗 | 分 | 率 | Div | Con | 平均得点 | 平均失点 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1989 | レギュラー敗退 | 12位 | 4位 | 5 | 11 | 0 | .313 | 2-6 | 4-8 | 16.1 | 23.6 |

| 1988 | レギュラー敗退 | 9位 | 4位 | 7 | 9 | 0 | .438 | 3-5 | 6-6 | 21.5 | 24.9 |
| 1987 | レギュラー敗退 | 8位 | 3位 | 7 | 8 | 0 | .467 | 3-5 | 7-7 | 24.1 | 24.5 |
| 1986 | レギュラー敗退 | 12位 | 5位 | 4 | 11 | 1 | .281 | 1-6-1 | 3-10-1 | 13.6 | 21.9 |
| 1985 | レギュラー敗退 | 11位 | 5位 | 5 | 11 | 0 | .313 | 1-7 | 3-9 | 17.4 | 25.9 |
| 1984 | レギュラー敗退 | 6位 | 3位 | 9 | 7 | 0 | .563 | 5-3 | 6-6 | 26.4 | 21.6 |
| 1983 | レギュラー敗退 | 6位 | 3位 | 8 | 7 | 1 | .531 | 3-4-1 | 5-6-1 | 23.4 | 26.8 |
| 1982 | 1回戦敗退 | 6位 | 3位 | 5 | 4 | 0 | .556 | 2-3 | 5-4 | 15.0 | 18.9 |
| 1981 | レギュラー敗退 | 10位 | 5位 | 7 | 9 | 0 | .438 | 2-6 | 4-8 | 19.7 | 25.5 |
| 1980 | レギュラー敗退 | 12位 | 4位 | 5 | 11 | 0 | .313 | 2-6 | 4-10 | 18.7 | 21.9 |
| 1979 | レギュラー敗退 | 11位 | 5位 | 5 | 11 | 0 | .313 | 2-6 | 4-8 | 19.2 | 22.4 |
プレシーズン

| 週 | 日 | 相手 | 結果 | 戦績 | 開催地 | 観客数 |
| --- | --- | --- | --- | --- | --- | --- |
 勝利   敗戦  at：敵地での対戦
レギュラーシーズン

| 前年 | AFC> 西地区 | AFC> 中地区 | AFC> 東地区 | NFC> 西地区 | NFC> 中地区 | NFC> 東地区 |
| --- | --- | --- | --- | --- | --- | --- |
| 1位 | シーホークス | ベンガルズ | ビルズ | 49ers | ベアーズ | イーグルス |
| 2位 | ブロンコス | ブラウンズ | コルツ | ラムズ | バイキングス | ジャイアンツ |
| 3位 | レイダース | オイラーズ | ペイトリオッツ | セインツ | バッカニアーズ | レッドスキンズ |
| 4位 | チャージャーズ | スティーラーズ | ジェッツ | ファルコンズ | ライオンズ | カージナルス |
| 5位 | チーフス |  | ドルフィンズ |  | パッカーズ | カウボーイズ |
：1度対戦　 ：2度対戦
| 週 | 日 | 相手 | 結果 | 戦績 | 開催地 | 観客数 |
| --- | --- | --- | --- | --- | --- | --- |
 勝利   敗戦  at：敵地での対戦
※ 同地区の対戦相手を太文字で表示
レギュラーシーズン > 順位表

| NFC東地区 1989> チーム | NFC東地区 1989> 勝 | NFC東地区 1989> 敗 | NFC東地区 1989> 分 | NFC東地区 1989> 勝率 | NFC東地区 1989> Div | NFC東地区 1989> Con | NFC東地区 1989> 総得点 | NFC東地区 1989> 総失点 | NFC東地区 1989> 平均得点 | NFC東地区 1989> 平均失点 | NFC東地区 1989> SOS | NFC東地区 1989> SOV | NFC東地区 1989>  | NFC東地区 1989>  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| (2)ニューヨーク・ジャイアンツ | 12 | 4 | 0 | .750 | 6-2 | 8-4 | 348 | 252 | 21.8 | 15.8 |  |  |  |  |
| (4)フィラデルフィア・イーグルス | 11 | 5 | 0 | .688 | 7-1 | 8-4 | 342 | 274 | 21.4 | 17.1 |  |  |  |  |
| ワシントン・レッドスキンズ | 10 | 6 | 0 | .625 | 4-4 | 8-4 | 386 | 308 | 24.1 | 19.3 |  |  |  |  |
| フェニックス・カージナルス | 5 | 11 | 0 | .313 | 2-6 | 4-8 | 258 | 377 | 16.1 | 23.6 |  |  |  |  |
| ダラス・カウボーイズ | 1 | 15 | 0 | .063 | 1-7 | 1-13 | 204 | 393 | 12.8 | 24.6 |  |  |  |  |
| NFC 1989> 順 位.地区優勝 | NFC 1989> チーム.地区優勝 | NFC 1989> 地 区.地区優勝 | NFC 1989> 勝.地区優勝 | NFC 1989> 敗.地区優勝 | NFC 1989> 分.地区優勝 | NFC 1989> 勝率.地区優勝 | NFC 1989> DIV.地区優勝 | NFC 1989> CON.地区優勝 | NFC 1989> SOS.地区優勝 | NFC 1989> SOV.地区優勝 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | サンフランシスコ・49ers | 西 | 14 | 2 | 0 | .875 | 5-1 | 10-2 |  |  |
| 2 | ニューヨーク・ジャイアンツ | 東 | 12 | 4 | 0 | .750 | 6-2 | 8-4 |  |  |
| 3 | ミネソタ・バイキングス | 中 | 10 | 6 | 0 | .625 | 6-2 | 8-4 |  |  |
ワイルドカード
| 4 | フィラデルフィア・イーグルス | 東 | 11 | 5 | 0 | .688 | 7-1 | 8-4 |  |  |
| 5 | ロサンゼルス・ラムズ | 西 | 11 | 5 | 0 | .688 | 4-2 | 8-4 |  |  |

| 6 | グリーンベイ・パッカーズ | 中 | 10 | 6 | 0 | .625 | 5-3 | 10-4 |  |  |
| 7 | ワシントン・レッドスキンズ | 東 | 10 | 6 | 0 | .625 | 4-4 | 8-4 |  |  |
| 8 | ニューオーリンズ・セインツ | 西 | 9 | 7 | 0 | .563 | 3-3 | 5-7 |  |  |
| 9 | デトロイト・ライオンズ | 中 | 7 | 9 | 0 | .438 | 4-4 | 6-6 |  |  |
| 10 | シカゴ・ベアーズ | 中 | 6 | 10 | 0 | .375 | 2-6 | 4-8 |  |  |
| 11 | タンパベイ・バッカニアーズ | 中 | 5 | 11 | 0 | .313 | 3-5 | 5-7 |  |  |
| 12 | フェニックス・カージナルス | 東 | 5 | 11 | 0 | .313 | 2-6 | 4-8 |  |  |
| 13 | アトランタ・ファルコンズ | 西 | 3 | 13 | 0 | .188 | 0-6 | 1-11 |  |  |
| 14 | ダラス・カウボーイズ | 東 | 1 | 15 | 0 | .063 | 1-7 | 1-13 |  |  |
タイブレーク
1988年シーズンのフェニックス・カージナルス

| フェニックス・カージナルス 1988 |
| --- | --- |
成績:  7勝9敗
地区:  NFC東地区4位
CON:  NFC9位
結果:  レギュラーシーズン敗退
組織
オーナー:  ビル・ビドウィル
GM:  ラリー・ウィルソン
HC:  ジーン・スターリングス（英語版）
ホーム:  サン・デビル・スタジアム（英語版）
« 19871989 » 
1988年シーズンは、フェニックス・カージナルスのNFL69年目のシーズンであり、ジーン・スターリングス・ヘッドコーチの3年目のシーズン。
直近のチーム成績

| 年 | 成績 | NFC | 地区 | 勝 | 敗 | 分 | 率 | Div | Con | 平均得点 | 平均失点 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1988 | レギュラー敗退 | 9位 | 4位 | 7 | 9 | 0 | .438 | 3-5 | 6-6 | 21.5 | 24.9 |

| 1987 | レギュラー敗退 | 8位 | 3位 | 7 | 8 | 0 | .467 | 3-5 | 7-7 | 24.1 | 24.5 |
| 1986 | レギュラー敗退 | 12位 | 5位 | 4 | 11 | 1 | .281 | 1-6-1 | 3-10-1 | 13.6 | 21.9 |
| 1985 | レギュラー敗退 | 11位 | 5位 | 5 | 11 | 0 | .313 | 1-7 | 3-9 | 17.4 | 25.9 |
| 1984 | レギュラー敗退 | 6位 | 3位 | 9 | 7 | 0 | .563 | 5-3 | 6-6 | 26.4 | 21.6 |
| 1983 | レギュラー敗退 | 6位 | 3位 | 8 | 7 | 1 | .531 | 3-4-1 | 5-6-1 | 23.4 | 26.8 |
| 1982 | 1回戦敗退 | 6位 | 3位 | 5 | 4 | 0 | .556 | 2-3 | 5-4 | 15.0 | 18.9 |
| 1981 | レギュラー敗退 | 10位 | 5位 | 7 | 9 | 0 | .438 | 2-6 | 4-8 | 19.7 | 25.5 |
| 1980 | レギュラー敗退 | 12位 | 4位 | 5 | 11 | 0 | .313 | 2-6 | 4-10 | 18.7 | 21.9 |
| 1979 | レギュラー敗退 | 11位 | 5位 | 5 | 11 | 0 | .313 | 2-6 | 4-8 | 19.2 | 22.4 |
| 1978 | レギュラー敗退 | 11位 | 4位 | 6 | 10 | 0 | .375 | 3-5 | 6-6 | 15.5 | 18.5 |
プレシーズン

| 週 | 日 | 相手 | 結果 | 戦績 | 開催地 | 観客数 |
| --- | --- | --- | --- | --- | --- | --- |
 勝利   敗戦  at：敵地での対戦
レギュラーシーズン

| 前年 | AFC> 西地区 | AFC> 中地区 | AFC> 東地区 | NFC> 西地区 | NFC> 中地区 | NFC> 東地区 |
| --- | --- | --- | --- | --- | --- | --- |
| 1位 | ブロンコス | ブラウンズ | コルツ | 49ers | ベアーズ | レッドスキンズ |
| 2位 | シーホークス | オイラーズ | ペイトリオッツ | セインツ | バイキングス | カウボーイズ |
| 3位 | チャージャーズ | スティーラーズ | ドルフィンズ | ラムズ | パッカーズ | カージナルス |
| 4位 | レイダース | ベンガルズ | ビルズ | ファルコンズ | バッカニアーズ | イーグルス |
| 5位 | チーフス |  | ジェッツ |  | ライオンズ | ジャイアンツ |
：1度対戦　 ：2度対戦
| 週 | 日 | 相手 | 結果 | 戦績 | 開催地 | 観客数 |
| --- | --- | --- | --- | --- | --- | --- |
 勝利   敗戦  at：敵地での対戦
※ 同地区の対戦相手を太文字で表示
レギュラーシーズン > 順位表

| NFC東地区 1988> チーム | NFC東地区 1988> 勝 | NFC東地区 1988> 敗 | NFC東地区 1988> 分 | NFC東地区 1988> 勝率 | NFC東地区 1988> Div | NFC東地区 1988> Con | NFC東地区 1988> 総得点 | NFC東地区 1988> 総失点 | NFC東地区 1988> 平均得点 | NFC東地区 1988> 平均失点 | NFC東地区 1988> SOS | NFC東地区 1988> SOV | NFC東地区 1988>  | NFC東地区 1988>  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| (3)フィラデルフィア・イーグルス | 10 | 6 | 0 | .625 | 6-2 | 8-4 | 379 | 319 | 23.7 | 19.9 |  |  |  |  |
| ニューヨーク・ジャイアンツ | 10 | 6 | 0 | .625 | 5-3 | 9-5 | 359 | 304 | 22.4 | 19.0 |  |  |  |  |
| ワシントン・レッドスキンズ | 7 | 9 | 0 | .438 | 4-4 | 6-6 | 345 | 387 | 21.6 | 24.2 |  |  |  |  |
| フェニックス・カージナルス | 7 | 9 | 0 | .438 | 3-5 | 6-6 | 344 | 398 | 21.5 | 24.9 |  |  |  |  |
| ダラス・カウボーイズ | 3 | 13 | 0 | .188 | 2-6 | 3-9 | 265 | 381 | 16.6 | 23.8 |  |  |  |  |
| NFC 1988> 順 位.地区優勝 | NFC 1988> チーム.地区優勝 | NFC 1988> 地 区.地区優勝 | NFC 1988> 勝.地区優勝 | NFC 1988> 敗.地区優勝 | NFC 1988> 分.地区優勝 | NFC 1988> 勝率.地区優勝 | NFC 1988> DIV.地区優勝 | NFC 1988> CON.地区優勝 | NFC 1988> SOS.地区優勝 | NFC 1988> SOV.地区優勝 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | シカゴ・ベアーズ | 中 | 12 | 4 | 0 | .750 | 6-2 | 9-3 |  |  |
| 2 | サンフランシスコ・49ers | 西 | 10 | 6 | 0 | .625 | 4-2 | 8-4 |  |  |
| 3 | フィラデルフィア・イーグルス | 東 | 10 | 6 | 0 | .625 | 6-2 | 8-4 |  |  |
ワイルドカード
| 4 | ミネソタ・バイキングス | 中 | 11 | 5 | 0 | .688 | 6-2 | 9-3 |  |  |
| 5 | ロサンゼルス・ラムズ | 西 | 10 | 6 | 0 | .625 | 4-2 | 8-4 |  |  |

| 6 | ニューヨーク・ジャイアンツ | 東 | 10 | 6 | 0 | .625 | 5-3 | 9-5 |  |  |
| 7 | ニューオーリンズ・セインツ | 西 | 10 | 6 | 0 | .625 | 3-3 | 6-6 |  |  |
| 8 | ワシントン・レッドスキンズ | 東 | 7 | 9 | 0 | .438 | 4-4 | 6-6 |  |  |
| 9 | フェニックス・カージナルス | 東 | 7 | 9 | 0 | .438 | 3-5 | 6-6 |  |  |
| 10 | アトランタ・ファルコンズ | 西 | 5 | 11 | 0 | .313 | 1-5 | 4-8 |  |  |
| 11 | タンパベイ・バッカニアーズ | 中 | 5 | 11 | 0 | .313 | 4-4 | 4-8 |  |  |
| 12 | デトロイト・ライオンズ | 中 | 4 | 12 | 0 | .250 | 2-6 | 3-11 |  |  |
| 13 | グリーンベイ・パッカーズ | 中 | 4 | 12 | 0 | .250 | 2-6 | 3-9 |  |  |
| 14 | ダラス・カウボーイズ | 東 | 3 | 13 | 0 | .188 | 2-6 | 3-9 |  |  |
タイブレーク
スレッデッドコード

| --- | --- |
: 「マルチスレッド・プログラミング」とは異なります。
スレッデッドコード（英: threaded code）は、プログラミング言語処理系におけるコード生成手法のひとつで、呼出すべきサブルーチンのアドレスを羅列する、というものである。「内部インタプリタ」と呼ばれる極小のインタプリタで順次呼出したり、サブルーチン・スレッディング方式と言われるコンパイル手法の場合は機械語のサブルーチンコール命令の羅列になっているので、先頭にジャンプ（ないし呼出し）してそのまま実行する。
スレッデッドコードは、他のコード生成技法や他の呼出規約よりもコード密度が高いが、若干実行速度が遅くなる（通常、1命令多くなる）[要出典]。しかし、プログラムが小さくなるのでCPUのキャッシュに完全に収まる可能性が高くなり、キャッシュミスが起きにくくなって性能が向上する可能性が高い。
スレッデッドコードは、Forth、多くのBASICの実装[要出典]、一部のCOBOLの実装[要出典]、初期のB言語、小型ミニコンピュータ向けなどのプログラミング言語での実装技法としてよく知られている。
背景と基本

一般にコンピュータプログラムは何らかの記号言語で書かれ、コンパイラを使って機械語に変換することで実行可能となる。機械語の実行コードは高速に実行できるが、特定のコンピュータアーキテクチャにのみ対応しているので、他のプラットフォームでは実行できない。それとは異なる手法として、仮想機械の命令セットを使う技法がある。この場合は、特定のハードウェアを対象としない。各プラットフォーム上のインタプリタが仮想機械向けの実行コードを解釈実行する。
初期のコンピュータのメモリ容量は今よりもずっと小さかった。例えば、Data General Nova、IBM 1130、多くの初代 Apple II は4KワードのRAMしか搭載していなかった。結果として、プログラムをどうやって小さくまとめ、利用可能なメモリ容量内に収めるかに多くのプログラマが頭を悩ませることになった。また処理速度も今より遅く、単純なインタプリタでは機械語とは比べものにならないほど遅くなってしまう。
プログラム内のそれぞれ必要とする箇所で演算ステップをいちいち書くのではなく、プログラマはそのような演算ステップを一度だけ書いて（"Don't repeat yourself" を参照）、サブルーチン内に置くことでメモリを節約する。
これはコードリファクタリングとして今でも行われている技法だが、理由は異なる。この技法を徹底して適用すると、プログラムのトップレベルはサブルーチンコールの羅列だけになる。また、そこから呼び出すサブルーチンの多くも、より低いレベルのサブルーチンを呼び出しているだけとなる。
メインフレームや RCA 1802 などの初期のマイクロプロセッサは、サブルーチンを呼び出すのに数命令を必要とする。アプリケーションのトップレベルや多くのサブルーチンでは、その命令シーケンスを常に繰り返し、呼び出すサブルーチンのアドレスだけが毎回異なることになる。そういった同じ命令列を繰り返し格納するのは、メモリの無駄である。
さらにメモリを節約するには、サブルーチンコールの羅列を呼び出すべきサブルーチンのアドレスのリストへと変換し、そのリストを参照して次々にサブルーチンを呼び出す小さな「インタプリタ」を書けばよい。
これは、ジャンプテーブルやディスパッチテーブル（英語版）や仮想関数テーブルと呼ばれるテーブルにジャンプ先アドレスだけを格納しておき、小さなセレクタでジャンプ先を選択してプログラムの流れを制御する技法と同じである。スレッデッドコードやこれらの技法では、プログラムは実際に実行すべきコードへのエントリポイントのリストとなる。
長年、プログラマ達はこのような「インタプリタ」や「小さなセレクタ」の様々なバリエーションを生み出してきた。アドレスリスト内の特定のアドレスは、インデックスまたは汎用レジスタまたはポインタを使って取り出される。そのアドレス群は、直接または間接であり、連続または不連続（ポインタで連結されている）であり、相対または絶対であり、コンパイル時に解決されるか動的に構築される。どの方式が最善というわけではない。
開発

メモリを節約するため、一連のサブルーチンコールからサブルーチンのアドレスのリストを作り、小さなループを使って次々にサブルーチンを呼び出す。例えば次のようになる。
start:
  ip = &thread
top:
  jump *ip++
thread:
  &pushA
  &pushB
  &add
  ...
pushA:
  *sp++ = A
  jump top
pushB:
  *sp++ = B
  jump top
add:
  *sp++ = *--sp + *--sp
  jump top
この場合、バイトコードのデコードは1回だけ、コンパイル時かプログラムロード時になされ、実行時に毎回デコードするわけではない。実行コストに比べてデコードとディスパッチのオーバーヘッドが大きい場合、これで時間と領域を節約できる。
なお、バイトコードのデコードとディスパッチを同時に行うインタプリタにおいては解釈すべき命令はそれぞれ1バイトだが、上記のスレッデッドコードのthread内の&pushAや&pushBといったアドレスは2バイト以上ということが普通である。一般にデコード&ディスパッチ・インタプリタにおける命令のサイズは一定ではない。例えば、そのようなインタプリタで Intel Pentium のシミュレーションを行う場合、デコードすべき命令の大きさは1バイトから16バイトまで様々である。しかし、バイトコード化システムは最も一般的な操作に1バイトのコードを割り当てる。従ってこのスレッデッドコードはバイトコードよりスペースコストがやや高い。多くの用途では、デコードコストの縮小はスペースコストの増加に優る。
また、バイトコードは名目上マシンから独立しているが、スレッド内のポインタの形式や値はインタプリタを実行するターゲットマシンに依存しているのが一般的である。したがって、インタプリタがポータブルなバイトコードのプログラムをロードし、そのバイトコードをデコードしてプラットフォーム依存のスレッデッドコードを生成し、実際の実行時には元のバイトコードを全く参照せずにスレッデッドコードを実行する、ということになる。
このループは単純なので、個々のインタプリタ命令を実装した機械語命令列の最後尾にある jump top を取り除き、それぞれが直接次のインタプリタ命令へジャンプするように修正可能である。例えば次のようになる。
start:
  ip = &thread
  jump *ip++
thread:
  &pushA
  &pushB
  &add
  ...
pushA:
  *sp++ = A
  jump *ip++
pushB:
  *sp++ = B
  jump *ip++
add:
  *sp++ = *--sp + *--sp
  jump *ip++
これを直接スレッデッドコード (direct threaded code, DTC) と呼ぶ。この技法は古くからあるが、「スレッデッドコード」という呼称が広まったのはベルの1973年の論文 "Threaded Code" からである。
チャールズ・ムーアは、1970年にForth仮想機械のためにもっとコンパクトな技法を発明しており、それを間接スレッデッドコード (indirect threaded code, ITC) と呼ぶ。元々ムーアがその技法を発明したのは、Novaというミニコンピュータに多重メモリ間接モード（メモリ上のアドレスに間接ビットを付与できる）があり、実装が容易で高速だったためである。バイト誌のForth特集でムーアは、その後のForthの設計にもそれを適用していったことで、それがいかに便利だったかがわかったと述べている。
ForthコンパイラがForthプログラムをコンパイルする場合、間接スレッデッドコードを生成するものと直接スレッデッドコードを生成するものがある。どちらであってもプログラムは同じように動作する。
スレッディングモデル

事実上、実行可能なスレッデッドコードは以下に挙げるサブルーチン呼び出し技法のいずれかを使用する。個々の技法を「スレッディングモデル」と呼ぶ。
スレッディングモデル > 直接スレッディング

スレッド内のアドレス群は機械語コードのアドレスである。単純だが、そのマシンのアドレスのみがスレッドに羅列されるため、何らかのパラメータが必要でもそれらはメモリから間接的にロードするしかない。したがって若干オーバーヘッドがある。一部のForth処理系は直接スレッデッドコードを生成する。多くのマシンにおいて、直接スレッディングは後述するサブルーチン・スレッディングよりも高速である。
例として、スタックマシンで "push A, push B, add" を実行する場合を見てみよう。直接スレッディングでは次のようなスレッドとルーチンに変換される。ここで ip は &thread というアドレスに初期化されるものとする。
thread:      pushA: *sp++ = A          pushB: *sp++ = B         add:  *sp++ = *--sp + *--sp
  &pushA            jump *ip++                jump *ip++              jump *ip++
  &pushB
  &add
  ...
また、オペランドをスレッドに含める方式もある。スレッドは大きくなるが、ルーチンは少なくなる。
thread:      push: *sp++ = *ip++      add: *sp++ = *--sp + *--sp
  &push            jump *ip++              jump *ip++
  &A
  &push
  &B
  &add
スレッディングモデル > 間接スレッディング

間接スレッディングでは、機械語コードを指すポインタのある場所へのポインタを使用する。間接ポインタの後には必要に応じてオペランドが続き、それによって間接ブロックを形成する。そうすることで、スレッド本体にオペランドが繰り返し出現するのを防ぐ。したがって間接スレッデッドコードは直接スレッデッドコードよりコンパクトになることが多いが、間接参照なので性能は低下するものの、それでもバイトコード・インタプリタより通常は高速である。ハンドラのオペランドが値と型からなる場合、直接スレッデッドコードからの領域節約効果は大きくなる。古いForthシステムは間接スレッデッドコードを生成するのが一般的だった。
例として "push A, push B, add" を実行する場合を挙げる。ここで ip は &thread というアドレスに初期化され、各コード断片（push、add）は ip からの二重間接で見つけられる。そして、各コード断片のオペランドのアドレスは、1段めの間接参照で得られる場所に、コード断片のアドレスに続いて置かれている。
thread:      i_pushA:   push:                   add:
  &i_pushA     &push      *sp++ = *(*ip + 1)      *sp++ = *--sp + *--sp
  &i_pushB     &A         jump *(*ip++)           jump *(*ip++)
  &i_add     i_pushB:
               &push
               &B
             i_add:
               &add
スレッディングモデル > サブルーチン・スレッディング

「サブルーチン・スレッデッドコード」あるいは「コール・スレッデッドコード」と呼ばれ、機械語のコール命令（サブルーチン呼び出し用の命令であり、直接スレッディングがジャンプすなわち無条件分岐命令を使うのとは異なる）をスレッドに並べる。ALGOL、FORTRAN、COBOLなどの初期のコンパイラや一部のForth処理系でサブルーチン・スレッデッドコードを生成する。これらのシステムの多くで、コードはオペランドのLIFOスタック上で実行され、その技法はコンパイラ理論でよく研究されている。最近の多くのプロセッサはサブルーチン用の特別な命令であるコール命令とリターン命令を持っており、ディスパッチ用に余分な機械語命令が必要であっても、オーバーヘッドは小さくなる。Anton Ertl は「よく言われている伝説とは対照的に、サブルーチン・スレッディングは一般に直接スレッディングより遅い」と述べている。しかし、Ertl 自身の最近の評価によれば、25件のうち15件で直接スレッディングよりサブルーチン・スレッディングの方が高速ということが示されている。Ertlの最近の評価では、Xeon/Opteron/Athlon では直接スレッディングが最も高速、Pentium M では間接スレッディングが最も高速、Pentium 4/Pentium III/PowerPCではサブルーチン・スレッディングが最も高速である。
コール・スレッディングでの "push A, push B, add" の例は次の通り。
thread:           pushA:            pushB:         add:
  call pushA        *sp++ = A         *sp++ = B      *sp++ = *--sp + *--sp
  call pushB        ret               ret            ret
  call add
スレッディングモデル > トークン・スレッディング

トークン・スレッデッドコードは8ビットか12ビットのインデックスのリストを使用し、このインデックスはポインタテーブルのインデックスとなっている。トークン・スレッデッドコードはプログラマが特別に努力しなくても非常にコンパクトになる。トークン・スレッデッドコードは他のスレッデッドコードの半分から4分の3の大きさで、スレッデッドコードは一般に普通にコンパイルされたコードの4分の1から8分の1の大きさである。ポインタテーブル内のポインタは直接の場合と間接の場合がある。一部のForthコンパイラはトークン・スレッデッドコードを生成する。一部のPascalコンパイラが生成するPコードをトークン・スレッデッドコードに分類する場合もあり、同様に.NET/Java/BASIC/一部のCコンパイラで使用するバイトコードもトークン・スレッディングだと言われることがある。
バイトコードは歴史的に、8ビットの命令コードを使用し、スタックに基づく仮想機械で実行される。典型的なインタプリタはデコード&ディスパッチ・インタプリタと呼ばれ、次のような形式である。
bytecode:         top:                   pushA:         pushB:          add:
  0 /*pushA*/       i = decode(vpc++)      *sp++ = A      *sp++ = B       *sp++ = *--sp + *--sp
  1 /*pushB*/       addr = table[i]        jump top       jump top        jump top
  2 /*add*/         jump *addr
仮想機械が1バイトの命令しか使わない場合、decode() は単に bytecode から1つフェッチするだけだが、1バイト命令を基本として多バイト命令も持つ場合があり、そのときは decode() がさらに複雑になる。1バイト命令コードのデコードは非常に単純で、命令コードをインデックスとしてジャンプテーブルを参照するだけでよい。
各命令の行う操作や演算は "push" や "add" などのように単純で、それらを実際に実行するコストよりもどれを実行するかを選択するオーバーヘッドの方が大きい。そのためこのようなインタプリタは単純に機械語コードを実行するよりも遅いことが多い。しかし、命令の処理内容がより複雑になれば、オーバーヘッドの割合は小さくなる。
スレッディングモデル > ハフマン・スレッディング

ハフマン・スレッデッドコードはハフマン符号のリストで構成される。ハフマン符号は可変長のビット列で何らかのアイテムを一意に示すのに使われる。ハフマン・スレッデッドコードに対応したインタプリタは、ハフマン符号をインデックスとするテーブルか木構造からサブルーチンを特定する。ハフマン・スレッデッドコードはコンピュータプログラムの最もコンパクトな表現の一つである。どのサブルーチンにどの符号語を割り当てるかは、基本的にその使用頻度に基づき、最も頻繁に使うサブルーチンには最も短い符号語を割り当てる。使用頻度が近いサブルーチンにはほぼ同じ長さの符号語を割り当てることになる。ハフマン・スレッデッドコードのシステムは、Frothシステムで実装されているものが多く、処理速度は遅くなるが小さいメモリに大きなコードを詰め込むことができるため、安価なマイクロコントローラでの利用が見られる。電子式のおもちゃ、電卓、腕時計などでの使用例がある。
スレッディングモデル > その他のスレッディング

ストリング・スレッディングは、文字列をキーとしてハッシュテーブルを参照し、実行すべきサブルーチンを特定する方式である。チャールズ・ムーアの最初のForth実装で使われ、イリノイ大学アーバナ・シャンペーン校でハードウェアでコンピュータ言語を実験的に実装する際に採用された。bashで書かれたBashforth（英語版）もストリング・スレッディングで実装されている。
分岐

これまでの例では分岐を示していない。どんなインタプリタでも、分岐命令はスレッドポインタ（上述の例では ip）を変化させる。例として、スタックトップの値がゼロなら分岐するという条件分岐命令は次のようになる。ここで &thread[123] は分岐先の場所を示しており、ハンドラのアドレスではない。したがって、分岐するしないに関わらずスキップ (ip++) しなければならない。
thread:              brz:
  ...                  tmp = *ip++
  &brz                 if (*sp++ == 0)
  &thread[123]           ip = tmp
  ...                  jump *ip++
共通の工夫

データスタックとリターンスタックを分離すると、スタック管理コードの大部分を排除でき、結果としてスレッデッドコードのサイズを大幅に縮小することができる。このスタックを2つ持つという方式は独自に3回発明されている（バロース B5000、Forth、PostScript）。また、Java仮想マシンでも使われている。
スレッデッドコードを実行する仮想機械は4つのレジスタを持つことが多い。サブルーチン（ワード）間でデータを渡すのにもう1つのレジスタを持つこともある。4つのレジスタは次の通りである。
ip または i - 仮想機械の命令ポインタ（そのVMを実装したハードウェアの持つプログラムカウンタとは異なる）
rp または r - リターンスタック（コールスタック）ポインタ
sp または s - パラメータスタックポインタ（ワード間でパラメータの受け渡しを行う）
w - ワークポインタ
スレッデッドコード対応の仮想機械の中核部分は非常に単純なことが多く、次の3つのプリミティブから構成される。
nest または docol
unnest または semi_s (;s)
next
間接スレッデッドコードの仮想機械では、それらはそれぞれ次の操作を行う。
next:   (ip)+ ->   w    ;  jmp (w)+
nest:    ip   -> -(rp)  ;  w -> ip  ;  next
unnest: (rp)+ ->   ip   ;  next
これがおそらく最も単純で高速なインタプリタ、または仮想機械である。
京都トヨペット

| --- | --- |
種類:  株式会社
本社所在地:   日本 〒600-8841 京都府京都市下京区朱雀正会町1-2
設立:  1956年6月1日
業種:  小売業
法人番号:  3130001012169 
事業内容:  新車販売事業 中古車事業 部品、磺油、各種自動車用品の販売 自動車の整備、修理、補修 各種保険販売 携帯電話販売
代表者:  代表取締役社長 細見吉夫
資本金:  2億円
売上高:  356億円 （2023年度実績）
純利益:  12億8,803万9,000円 （2024年3月期）
総資産:  269億5,565万3,000円 （2024年3月期）
従業員数:  529名
決算期:  3月31日
外部リンク:  https://www.kyoto-toyopet.jp/
テンプレートを表示
京都トヨペット株式会社（きょうとトヨペット）は、トヨタ車の販売や、メンテナンス・整備などを扱うトヨタの正規ディーラー。
展開店舗

七条本店
北店
岡崎店
カドノ店
乙訓店
桂店
亀岡店
山科店
伏見店
桃山店
城陽店
久御山店
木津川台店
舞鶴店
福知山店
峰山店
U-mix
マイカーガーデン
カスタム ガレージ
レクサス西大路
関連会社

株式会社KTGホールディングス（グループ持株会社。旧：株式会社 協和キャピタル）
ネッツトヨタ京華株式会社
株式会社トヨタレンタリース京都
株式会社 オートクラフト
カリム・ベンゼマ

カリム・モスタファ・ベンゼマ（Karim Mostafa Benzema、アラビア語: كريم مصطفى بنزيما、1987年12月19日 - ）は、フランス・リヨン出身のサッカー選手。サウジ・プロフェッショナルリーグ・アル・イテハド所属。ポジションはフォワード。元フランス代表。
リーグ・アン7連覇中だったオリンピック・リヨンで頭角を現し、2009年にレアル・マドリードへ移籍。レアル・マドリードで共にプレーしたガレス・ベイル、クリスティアーノ・ロナウドとの3トップは3人の名前の頭文字から攻撃版BBCと呼ばれていた。2022年にはバロンドールを受賞した。
経歴 > プロ入り前

1950年代の後半に祖父が一家でアルジェリアからリヨンに移住。両親はベルベル系アルジェリア人。リヨン郊外のブロンで生まれ育つ。兄弟は8人。両親のために家を購入し、現在も同居している。9歳の時、当時ベンゼマの所属していたSCブロンはリヨンのジュニアチームと対戦。SCブロンがベンゼマの2得点により2-0で勝利し、この時にリヨンに引き抜かれた。リヨンのU-16チームでは、1シーズンで38ゴールを奪う活躍を見せた。U-18でも高い得点力は健在であり、14試合で12得点を挙げた。
経歴 > リヨン

2005年1月15日、メス戦で後半77分から途中交代の形でトップチームデビュー。この試合ではアシストも記録し、2-0での勝利に貢献した。その5日後、トップチームと3年間の選手契約を行った。2005-06シーズンにはアジャクシオ戦でプロ初得点を挙げ、UEFAチャンピオンズリーグに初出場となったローゼンボリ戦でチャンピオンズリーグ初得点も挙げる。2006-07シーズンからはチームの主力となり、リヨンのリーグ6連覇に貢献し、フランス代表に招集される。
背番号を10番に変更し迎えた2007-08シーズンはUEFAチャンピオンズリーグでは、7試合に出場して4得点を記録しリヨンのベスト16入りに貢献。リーグ・アンでは自己最多の36試合に出場し20得点を挙げ得点王となり、リヨンのリーグ7連覇に貢献した。メス戦でハットトリックを記録した。この活躍から2008年のブラヴォー賞を受賞した。2008-09シーズンもUEFAチャンピオンズリーグ8試合に出場し5得点、リーグ36試合に出場し2位タイの17得点を挙げる活躍をみせるが、リヨンは3位に終わり8連覇を逃した。また、2008年3月に、2013年まで契約を延長した。
経歴 > レアル・マドリード

FCバルセロナ、レアル・マドリード、マンチェスター・ユナイテッドFCなどのビッグクラブ、他にもインテル・ミラノ、ACミランなどからもオファーが届き、2009年オフにはマンチェスター・ユナイテッドとレアル・マドリードが争奪戦を繰り広げた。ベンゼマは当初「あと1シーズンはリヨンに残る」としていたが、7月1日、レアル・マドリードへの移籍がリヨンのホームページで発表された。移籍金は3500万ユーロで移籍後の活躍次第で最大600万ユーロが追加される。2009年8月29日のデポルティーボ・ラ・コルーニャ戦でラ・リーガデビュー。9月20日のシェレス戦で移籍後初得点を挙げた。開幕当初はスタメン起用されていたが、チームやリーグにあまり馴染めずに昨季チーム得点王であったゴンサロ・イグアインにスタメンの位置を奪われる。結局、27試合の出場で9得点にとどまり、結果的に南アフリカW杯出場を逃した。さらに、W杯後の2010年7月21日にはフランク・リベリーとともに買春容疑で事情聴取されるなど公私にわたって惨憺たるシーズンとなった。
2010年夏の移籍市場では、チームの象徴だったラウル・ゴンサレスがドイツのシャルケ04へと移籍したことにより空いた背番号7番をクリスティアーノ・ロナウドが求めたため、それまでロナウドが付けていた背番号9番が空き番となり、憧れの選手であるロナウドと同じ9番を付けることとなった。2010-11シーズン前、ベンゼマはファンに「最高のベンゼマを披露すると約束する。今年は僕の年になるだろう。」と語った。しかし、シーズンが始まってもベンゼマは寝坊や練習の怠慢などを繰り返したため、ジョゼ・モウリーニョ監督から叱責を受けた。その後手術によってイグアインが離脱してからは多くのチャンスが与えられ、先発出場する機会も増えた。UEFAチャンピオンズリーググループステージ最終戦のオセール戦や8-0で大勝したコパ・デル・レイのレバンテ戦ではハットトリックを記録した。一方リーグ戦では得点を決めることが出来ず、リーガ第4節エスパニョール戦で決めて以降、1月24日の第20節マジョルカ戦まで無得点であった。モウリーニョからの信頼を勝ち取ることが出来ず、アルメリア戦では怪我明けのカカを起用するために、チーム唯一のCFであるにも関わらずベンゼマは先発に選ばれなかった。しかし、3月になって突如量産体制に入り、アトレティコ・マドリードとのマドリードダービー直近の8試合で10得点を挙げた。
2011-12シーズン前にアーセナルFCやユヴェントスFCからの関心が伝えられるもレアル・マドリード残留を明言。その際には「来シーズンは、本当のベンゼマを見ることになるよ」と語った。シーズン前のトレーニングにより体重を8kg落として臨み、プレシーズンでは、7試合で8得点を挙げるなど好調を保ち、リーガ開幕前のスーペルコパでもメスト・エジルの先制点をアシストすると、自らも同点ゴールを決めた。リーガではともに自己最多となる34試合21得点を記録。全大会合計で34得点、15アシストを挙げ、レアルのUEFAチャンピオンズリーグ準決勝進出、4年ぶりのリーガ制覇に貢献した。
2014年1月18日、レアル・ベティス戦にてレアル・マドリード通算100得点を記録。2013-14シーズンのコパ・デル・レイ決勝、FCバルセロナ戦ではアンヘル・ディ・マリアの先制点をアシストしてタイトル獲得に貢献し、一週間後に行われたUEFAチャンピオンズリーグ準決勝のバイエルン・ミュンヘン戦1stレグでは試合唯一のゴールを奪い、クラブの10度目のUEFAチャンピオンズリーグ優勝に貢献した。
2014-15シーズン、UEFAチャンピオンズリーググループステージのFCバーゼル戦では、UEFA主催大会におけるレアル・マドリード通算1000得点目を記録した。
2015-16シーズン、2016年1月9日に行われたデポルティーボ戦でラ・リーガでの自身通算100得点を記録。2016-17シーズン、2016年12月7日に行われたドルトムント戦でUEFAチャンピオンズリーグ通算50得点に到達した。同月に行われたクラブワールドカップの準決勝のクラブ・アメリカ戦、決勝の鹿島アントラーズ戦ではいずれも先制ゴールを記録した。2017年9月21日、レアル・マドリードとの契約を2021年まで延長した。
クリスティアーノ・ロナウドが退団した2018-19シーズンは、2011-12シーズン以来のキャリア通算3度目となるシーズン30得点を記録した。また、UEFAチャンピオンズリーグのアヤックスにてクリスティアーノ・ロナウド、リオネル・メッシ、ラウルに次ぎルート・ファン・ニステルローイに並ぶ大会通算60得点目を記録した。
2019-20シーズン、2020年6月18日、第29節のバレンシアCF戦で2ゴールを記録、クラブ通算得点を243に伸ばし、フェレンツ・プスカシュを超えて歴代5位となった。リーガ第32節のRCDエスパニョール戦では、2010年1月31日にデポルティーボ・ラ・コルーニャ戦でベンゼマのゴールをアシストしたグティのヒールパスに酷似したパスでカゼミーロのゴールをアシストし話題になった。リーグ戦ではメッシの25ゴールに次ぐ21ゴールを決め、3年振りのリーグ制覇に貢献した。
2020-21シーズン、2020年10月4日、第5節のレバンテ戦でゴールを決め、レアル・マドリードでの通算250ゴールを達成した。また、2021年11月4日のUEFAチャンピオンズリーググループステージのFCシャフタール・ドネツクでレアル・マドリードのUEFAチャンピオンズリーグ通算1000ゴール目を達成した。
2021-22シーズン、スーペルコパではFCバルセロナ戦、アスレティック・ビルバオ戦の両試合で得点を挙げ、スーペルコパを獲得。また、2022年3月9日の欧州CL・決勝T1回戦2ndレグのパリ・サンジェルマンFC戦ではUEFAチャンピオンズリーグ史上最年長のハットトリックを決め、4月6日、UEFAチャンピオンズリーグ準々決勝1stレグのチェルシーFC戦でも再びハットトリックをきめた。ラ・リーガで27得点、UEFAチャンピオンズリーグでは15得点を記録して2大会で得点王に輝き、レアル・マドリードも両大会で優勝して3冠を達成した。
2022年8月10日に行われたUEFAスーパーカップでは、アイントラハト・フランクフルト相手に2点目を決めてタイトル獲得に貢献した。同年10月17日には、バロンドールを受賞した。
2023年6月4日、レアル・マドリードがベンゼマの退団を発表した。レアル・マドリードは公式サイトにてベンゼマの退団を「その輝かしく忘れがたい我々のクラブの選手としての時代に終止符を打つことで合意しました。レアル・マドリードは我々にとっての偉大なレジェンドの一人に対し感謝とあらゆる愛情を示したいと思います。」と綴った。レアル・マドリードでは、公式戦647試合353得点を記録し、25個のタイトルを獲得した。
経歴 > アル・イテハド

2023年6月6日、サウジ・プロフェッショナルリーグのアル・イテハドに加入することが発表された。契約期間は2026年6月までの3年間。3年間で2億5800万ポント（約450億円）という報酬という巨額契約であり、イスラム教徒であるベンゼマはサウジアラビアを「ずっと住みたいと思っていた聖なる王国」と語った。
7月27日、アラブ・クラブ・チャンピオンズカップのエスペランス戦で公式戦デビューを果たすと、前半にアブデルラザク・ハムダラーのゴールをアシストし、後半には移籍後初得点も記録するなど1ゴール1アシストの活躍で勝利に貢献した。ベンゼマ自身は公式戦20試合で12得点5アシストと結果を残したがアル・イテハドはその時点でリーグ6位に甘んじており、ファンからは「敗北の息子」というあだ名をつけられ、リーグ17節のアル・ナスルFC戦に敗れた後には自身のインスタグラムを公開停止にした。
代表経歴

全世代のフランス代表に選抜された。2004年のUEFA U-17欧州選手権では優勝メンバーの一員となった。アルジェリア国籍を持つことからアルジェリア代表からも招集を受けるが、フランス代表を選択し、2007年3月28日の親善試合・オーストリア戦でフランス代表デビュー。この試合で決勝点となる代表初得点を挙げた。EURO2008代表メンバーにも選ばれるが、目立った活躍はできずフランス代表もグループリーグで敗退した。所属クラブであるレアル・マドリードでのプレーの調子や前述の買春問題などから南アフリカW杯メンバーからは落選した。
2012年の欧州選手権では招集を受け、全試合に先発出場した。ウクライナ戦では2アシストを記録して勝利に貢献したが、ベンゼマ自身は大会4試合でゴールを決められず、決勝トーナメント1回戦でスペインに敗れた。
2012年6月5日のエストニア戦以降15試合、およそ1222分間代表でのゴールから見放されていたが、2013年10月に行われたオーストラリア代表との親善試合でゴールを決めた。
代表経歴 > 恐喝容疑〜代表追放

2015年11月に、性行為を映した映像を利用し、同じフランス代表の僚友マテュー・ヴァルブエナの恐喝に関与した容疑でフランス警察当局に逮捕された。
事件の発端は、2014年夏頃に当時、マルセイユに所属していたヴァルブエナがマルセイユの選手らと親交の深かった人物に携帯電話のデータ移行を手伝ってもらった際にデータを抜かれたこととされる。2015年6月頃からこの人物らが含まれる犯罪グループからヴァルブエナへの恐喝が始まり、ヴァルブエナはフランス代表の警備を務める警察官を通じて警察に被害届を提出した。以来、恐喝はなかったが、10月の代表合宿中にベンゼマがヴァルブエナに映像の件を解決してくれる人物として自身の幼馴染と面会するよう勧めてきたという。この幼馴染はベンゼマと兄弟同然の幼馴染だが、犯罪歴のある人物とされ、ヴァルブエナはこれを金銭を目的とした仲介と受け止め、警察もこの幼馴染を事前に参考人として捜査していた。警察は事前にこの幼馴染の電話を盗聴しており、ベンゼマがヴァルブエナを茶化しながら幼馴染に報告していたことから関与したと判断した（ただしこの幼馴染はベンゼマの援助のおかげで困窮しておらず、ベンゼマも恐喝の意図を否定したうえで純粋にヴァルブエナを助けることが目的だったと断言、この電話でヴァルブエナを茶化したことは軽率だったと後に釈明している）。またこの犯罪グループには潜入していた覆面警官もおり、仲介役を担ったこの警官が犯行を積極的に促したとして後にベンゼマの弁護士が警察の不正捜査を訴えることになる。
逮捕後の12月にフランス首相を務めていたマニュエル・ヴァルスから「偉大なスポーツ選手は模範的でないとならない。そうでないならば、フランス代表のチームに居場所はない」と批判され、フランスサッカー連盟からは無期限代表活動停止処分が科された。処分を受けたベンゼマはヴァルブエナの捏造と非難し、ヴァルブエナもベンゼマが関与したとして二人は非難の応酬となった。
2016年3月11日、恐喝行為への関与によって科されていた法的制約の一部解除が決定され、UEFA EURO 2016に向けて法的にフランス代表への復帰が可能となった。この件についてマニュエル・ヴァルス首相とパトリック・カネル大臣はベンゼマの代表復帰に懐疑的な見解を示したが、ベンゼマの代表復帰に肯定的なフランソワ・オランド大統領は「下らない事はやめろ」とこの問題に触れないよう促した。4月14日、フランスサッカー連盟のノエル・ル・グラエ会長が「和を乱さぬため」とUEFA EURO 2016にベンゼマを招集しない事を発表した。代表監督のディディエ・デシャンもこの決定を支持したことから、ベンゼマは「人種差別主義者グループの圧力に屈した」とデシャンを非難、両者の確執へと発展した。2016年8月、事件の容疑者のひとりがベンゼマの無罪を認めたことが報じられた。
これ以降、連盟やデシャンとの確執から2021年まで代表に復帰することはなかった。フランスサッカー連盟のノエル・ル・グラエ会長は「フランス代表での彼の冒険は終わった」と今後も復帰させないことを明言しており、デシャンもこれに同調している。ベンゼマは「他国の代表チームでプレーさせて欲しい」と訴えている。また、2019-20シーズン終了後にル・グラエが「すべての試合を見たわけではないが、彼はキャリアのなかで、最高のシーズンを過ごした」とベンゼマを称賛したところ、ベンゼマはそのコメントを伝えたフランスのテレビ局「RMCスポーツ」のツイートに対し「笑っちゃうね」と冷ややかな反応を見せている。
代表経歴 > 代表復帰

フランスサッカー連盟は追放処分を解除し、代表監督ディディエ・デシャンも前言を撤回。2021年5月18日、EURO 2020のフランス代表に選出され、5年半ぶりに代表に復帰することとなった。
同年10月10日、UEFAネーションズリーグの決勝戦ではスペインと対戦し、同点ゴールをきめて初優勝に貢献した。
同年11月、ヴェルサイユの刑事裁判所にて恐喝容疑が有罪に確定。ただし禁錮1年執行猶予の判決であったため、再犯しなければ今後の代表キャリアに支障はないとしている。
2022年11月、カタールで開催される2022 FIFAワールドカップフランス代表に選出されたが、大会開幕直前のトレーニングで左太ももの大腿四頭筋に痛みを感じたため、ドーハの病院で精密検査を受けると大腿直筋の損傷が確認された。これによりカタール大会を欠場することとなった。大会終了後、35歳の誕生日を迎えた12月19日に代表引退を発表した。