【#も読】1bit CPU / カバレッジのしくみ / ドメイン特化の中間表現(@kanade_k_1228)のトップ画像

【#も読】1bit CPU / カバレッジのしくみ / ドメイン特化の中間表現(@kanade_k_1228)

投稿日時:
Kanadeのアイコン

Turing株式会社 / ソフトウェアエンジニア

Kanade

Xアカウントリンク

「あの人も読んでる」略して「も読」。さまざまな寄稿者が最近気になった情報や話題をシェアする企画です。他のテックな人たちがどんな情報を追っているのか、ちょっと覗いてみませんか?


Kanade (@kanade_k_1228) です。最近は自作 CPU 上で自作 OS を作るための自作言語を作るのにハマっています。アセンブリ言語レベルの低レベルな操作と、Rust のような高度な開発体験を両立する言語を目指しています。というわけで今回は、CPU やコンパイラに関する話題を集めてみました。

1bit CPU

知名度はないが最も高性能だった 1bit MCU、Motorola MC14500(人知れず消えていったマイナー CPU を語ろう 第 14 回)

1bit CPU というと、ジョークのように聞こえるかもしれません。しかし、この記事で紹介されている Motorola MC14500 は、実際に産業用途で使用されていた 1bit のマイクロコントローラーです。特に、PLC(Programmable Logic Controller)としての用途では、単純な制御ロジックを実装するために 1bit で十分な場合が多く、MC14500 はそのニーズに応えていました。

データシートを読むと、MC14500 は非常にシンプルなアーキテクチャで、命令セットも最小限です。というのも 1bit なので算術演算はなく bit 演算しかないです。現代の技術でこのような 1bit CPU を再設計したら、どのようなものになるのか興味深いです。

カバレッジのしくみ

Rust の新しいコードカバレッジ/Source-based code coverage

最近、業務でテストのカバレッジを扱う機会がありました。カバレッジツールは、どのようにしてソースコードと実行時の情報を結びつけているのか疑問に思い、調べてみました。JavaScript や Python のようなインタプリタ言語では、ソースコードと実行が 1 対 1 で対応しているため、カバレッジの取得は比較的容易です。しかし、C/C++のようなコンパイル言語では、ソースコードがバイナリに変換される過程で最適化が行われるため、元のコードと実行時の挙動が一致しない場合があります。この記事では、行単位より細かく言語文法に即したカバレッジである「ソースベースのカバレッジ」について、具体例を交えながら解説しています。

この記事のつづきを読もう
新規登録/ログインしたらできること
  • すべての記事を制限なく閲覧可能
  • 限定イベントに参加できます
  • GitHub連携でスキルを可視化
ログイン
アカウントをお持ちでない方はこちらから新規登録