Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

Cとprogrammingに関するNyohoのブックマーク (5)

  • 自作したRISC-V向けCコンパイラでセルフホストまでこぎつけた - 詩と創作・思索のひろば

    低レイヤを知りたい人のためのCコンパイラ作成入門 まさに低レイヤのことが分かっておらず、以前から気になっていたこの。取り掛かってみたところ思いのほかスイスイ進められて、勢いに乗ってセルフホスト(自分が書いたコンパイラで自分自身をコンパイルするところ)までいけたので記念に書いておく。正確には C コンパイラのサブセットです。 GitHub - motemen/mocc 全体的な進め方は、 上記のの通りに進めていく。 それ以降は自作の 8queen が普通に書けるように機能を強化。 それ以降はセルフホストを目標に進める。 プリプロセッサやリンカは作らず、C からアセンブリまで。 という感じ。自分は手を動かさないと進んでる気がしないので、まずは書いてみつつわからない所があれば調べる、というスタンスでいく。 あと、せっかくなので RISC-V の勉強もしたかったのでこれ向けに書く。なので実行は

    自作したRISC-V向けCコンパイラでセルフホストまでこぎつけた - 詩と創作・思索のひろば
  • Cコンパイラ制作の夏期集中コースが思っていた以上にうまくいった話|Rui Ueyama

    2018年の夏に僕はセキュリティキャンプ(以下「セキュキャン」)というイベントでCコンパイラ作成コースの授業を行いました。授業はとてもうまくいったといってよいと思います。参加者は6人だったのですが、6人全員プログラミング技術がかなり飛躍的に向上したようですし、そのうち3人は期間中にセルフホスト(自分の書いているコンパイラで自分のコンパイラ自身をコンパイルできること)まで漕ぎ着けることができました。 この文章では、その授業をどのように僕が教えたのかということと、生徒にできるだけ多くのことを学んでもらって自信をつけてもらうために僕が何を気をつけていたのかという2つの点について説明します。 セキュキャンとはセキュキャンは5日間の合宿イベントで、学生を対象としてコンピュータセキュリティやプログラミングについて教えるというものです。いくつものコースが用意されているのですが、僕が受け持ったのは「集中コ

    Cコンパイラ制作の夏期集中コースが思っていた以上にうまくいった話|Rui Ueyama
    Nyoho
    Nyoho 2018/09/02
    素晴らしい。出版をお待ちしております。
  • 自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報

    UNIX 開発者の一人である Ken Thompson が初期の UNIX にバックドアを仕掛けていたと言われている通称 Thompson hack を自作Cコンパイラで再現してみました。 Thompson hack は UNIX のログイン処理のコンパイル時にバックドアを仕掛けるようなコンパイラを作り、さらにコンパイラのソースコードからその痕跡を消し去るという神業です。 元ネタは Reflections on Trusting Trust という1983年に Ken Thompson が Dennis Ritchie と共にチューリング賞を受賞した際の記念公演です。 Ken Tohmpson はこの細工をしたコンパイラを配布したことはないと主張しているそうですが、このバックドアを利用したと見られる不審なログインがあったという報告もあったとのことで、実際にはベル研究所の外部に配布されていた

    自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報
    Nyoho
    Nyoho 2018/08/21
    Quine Quine〜
  • 2016年、C言語はどう書くべきか (前編) | POSTD

    (訳注:2016/3/2、いただいた翻訳フィードバックをもとに記事を修正いたしました。) (訳注:著者のMattより、「文中で明言はしていないが、この記事の内容はx86-64 Unix/Linux/POSIXでアプリケーションをプログラミングする場合にフォーカスしている。他のプログラミング領域では、対象とするシステムに応じた(例: 8-bitの組み込みシステム、10年前のコンパイラ、多くの異なるCPUアーキテクチャで動く必要のあるアプリケーション、Win/Linuxでのビルド互換性など)特有のアドバイスが必要」との補足を頂いております。) 以下の文章は2015年の始めに書いたドラフトで、今まで公開していませんでした。私のドラフト用フォルダの中で誰の目も引かなかったため、大部分が書いた時のままです。公開するにあたり、単純に2015年を2016年に変更しました。 必要な修正、改善、苦情があり

    2016年、C言語はどう書くべきか (前編) | POSTD
  • JPCERT C Secure Coding Standard 日本語版 - プリプロセッサ (PRE) (#c01)

    CERTコーディングスタンダードの利用条件/著作権・免責事項 00. はじめに 01. プリプロセッサ (PRE) 02. 宣言と初期化 (DCL) 03. 式 (EXP) 04. 整数 (INT) 05. 浮動小数点 (FLP) 06. 配列 (ARR) 07. 文字と文字列 (STR) 08. メモリ管理 (MEM) 09. 入出力 (FIO) 10. 環境 (ENV) 11. シグナル (SIG) 12. エラー処理 (ERR) 13. Application Programming Interface (API) 14. 並行性 (CON) 49. 雑則 (MSC) 50. POSIX (POS) AA. 参考情報 BB. Definitions CC. 未定義の動作 DD. 未規定の動作 XX. お問い合わせ Top へ 00はじめに このページでは、JPCERTコーディネーショ

    JPCERT C Secure Coding Standard 日本語版 - プリプロセッサ (PRE) (#c01)
  • 1