ルックアップテーブルを使ったUTF-8デコードの最適化:分岐なしアプローチ

2025-09-06
ルックアップテーブルを使ったUTF-8デコードの最適化:分岐なしアプローチ

この記事では、ブランチ予測のオーバーヘッドを避けるためにルックアップテーブルを使用してUTF-8デコードを最適化する方法を探ります。著者は、UTF-8シーケンスの先頭バイトをその長さにマッピングする256バイトのルックアップテーブルを作成する方法を詳しく説明しています。これにより、分岐処理が単純な配列アクセスに置き換えられ、デコード効率が向上します。256バイトのメモリ消費量が増加しますが、多くのシナリオでパフォーマンスを大幅に向上させることができます。

続きを読む
開発 デコード

86-DOS:PC革命の知られざる物語

2025-08-28
86-DOS:PC革命の知られざる物語

1980年4月、シアトルコンピュータープロダクツ(SCP)の若いプログラマー、ティム・パターソンは、新しいIntel 8086ベースのボード向けに、QDOS(Quick and Dirty Operating System)というコードネームの小型ディスクオペレーティングシステムの開発を始めました。当初はSCPの8086コンピューターの迅速な解決策として設計されたこのプロジェクトは、予想外にもマイクロソフトのMS-DOSへと発展し、10年以上もPC業界を支配しました。この記事では、CP/MのAPIとの互換性に関する論争、マイクロソフトによるQDOSの買収とMS-DOSへの改名などを含め、QDOSの開発過程を詳細に説明しています。CP/Mを参考に開発されたQDOSの簡潔さとAPIは、結果として生じた論争にもかかわらず、迅速なリリースを可能にし、PC時代の礎となりました。

続きを読む
テクノロジー

マイクロコンピュータの2人のパイオニア、シンクレアとキルダルの興亡

2025-07-17
マイクロコンピュータの2人のパイオニア、シンクレアとキルダルの興亡

この記事は、イギリスの電子工学の天才、サー・クライブ・シンクレアと、アメリカのコンピューター科学者、ゲイリー・キルダルの2人のマイクロコンピュータ業界のパイオニアの興味深い人生を描いています。シンクレアは、ZXスペクトラムなどの手頃な価格のコンピューターで、1980年代の家庭用コンピューティングに革命を起こしましたが、最終的には悪いビジネス上の決断のために失敗しました。キルダルのCP/Mオペレーティングシステムは、ビジネス用マイクロコンピューターの標準となりましたが、IBMとの提携の機会を逃し、最終的に会社は売却されました。2人とも、並外れた技術力とビジネス上の欠点を示し、マイクロコンピュータ業界に大きな貢献をし、起業家にとって貴重な教訓を提供しました。

続きを読む

Jupiter Ace:Forthによって殺されたレトロな英国コンピュータ?

2025-04-10
Jupiter Ace:Forthによって殺されたレトロな英国コンピュータ?

1982年、イギリスでJupiter Aceという小型の家庭用コンピュータが発売されました。そのユニークな特徴は、ROMにBASICではなくForthが組み込まれていたことです。この記事では、当時ROMにBASICを組み込むことがなぜそれほど重要だったのか、そしてForthに置き換えたことがJupiter Aceの失敗の主な理由だったのかを探ります。Forthは高速でプロフェッショナルなソフトウェア開発に適しているなどの技術的な利点がありましたが、より急な学習曲線とAceの時代遅れのハードウェア(3KBのRAM、カラーグラフィックなし)が最終的にその失敗を招きました。ほとんどのユーザーは、プログラミング言語よりもゲームやメモリを優先しました。

続きを読む
テクノロジー

6502アセンブリ:アセンブリ言語学習の意外なほど良い出発点?

2025-02-06
6502アセンブリ:アセンブリ言語学習の意外なほど良い出発点?

アセンブリ言語の学習を始めるのに最適な場所を選ぶのは難しいかもしれません。この記事では、6502プロセッサが初心者にとって驚くほど適していることを主張しています。現代のアプリケーションでは広く使用されていませんが、シンプルな命令セット(わずか56命令)と豊富な学習リソースにより、アセンブリの基本概念を理解するのに最適です。Apple IIやCommodore 64などの古典的なコンピュータでの歴史から、多くのエミュレータと学習資料が利用できます。著者は、Easy 6502とVisual6502.orgを優れた学習リソースとして推奨しており、x86-64やARMなどのアーキテクチャの複雑さと比較することで、初心者にとっての6502の利点をさらに強調しています。

続きを読む