タグ

コンパイラとprogrammingに関するmoritataのブックマーク (3)

  • コンパイラを書いてセルフホストした

    Quartzという言語をデザインしてコンパイラを書いて自身をコンパイルできるところまで到達したので記録として書く (人に使ってもらうことなどは特に想定してないので、ドキュメントなどはありません) Quartzについて 言語機能的にはGoとかに近く、syntax的にはRustに近い言語としてデザインした。ターゲットとしてWASM(wat形式)のみサポート。 元々の想定として、ゲームのスクリプトやアプリケーションのプラグインなど、動的に読み込めて気軽にかけて、型やLSPなどの現代的なDXは提供したいというモチベで作り始めた。 例えばfizzbuzzのコードは以下のような感じ。 fun main() { for i in 1..100 { if i % 15 == 0 { println("FizzBuzz"); } else if i % 3 == 0 { println("Fizz"); }

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

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

    自作したRISC-V向けCコンパイラでセルフホストまでこぎつけた - 詩と創作・思索のひろば
  • マルチコアCPUの恩恵を享受する方法

    Multi-Core CPUの恩恵を享受するには、ひとつのジョブを複数のプロセスに分け同時に実行することで、時間のかかるジョブを早く終わらせてスループットを稼ぐ方法と、ジョブをそのまま並列化させずに複数同時に実行することで、トータルのスループットを稼ぐ方法があります。 シングルスレッドアプリの複数同時実行で高いスループットを実現 デュアルコアシステムは、今までのシングルコアのシステムよりCPUクロック、FSBが落ちるので、1プロセスを速く走らせるという点においてはシングルコアに劣りますが、2ジョブを同時に実行させてもほぼ1ジョブひとつ実行するのと同じ時間で終了させることができ、トータルのスループットを稼ぐという点においてはシングルコアのシステムより優れています。 est_human BLAST Test Database : Apr 24 2005 est_human Imp

  • 1