第11回 カーネル/VM 探検隊
![アセンブリ言語のみで言語処理系を作った話 // Speaker Deck](https://cdn-ak-scissors.b.st-hatena.com/image/square/59ca2d0be78556b6a0c55ff0bca0a0aa8c1fa61b/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F21919cedbfca4820908bf43ae1d228d7%2Fslide_0.jpg%3F5111948)
When I wrote the introductory article for libjit, I aimed it at programmers who know what JITs are, at least to some extent. I did mention what a JIT is, but only very briefly. The purpose of this article is to provide a better introductory overview of JITing, with code samples that don't rely on any libraries. Defining JIT JIT is simply an acronym for "Just In Time". That, in itself, doesn't help
Thorsten Ballによる“Writing An Interpreter In Go”を読んだ. 技術界隈のブログを見ているとたまにSteve Yeggeの「If you don’t know how compilers work, then you don’t know how computers work」という言葉に出会う.その度に学生のときにコンパイラの授業を受けなかったこと後悔し,社会人になって挑戦しようとして挫折したことを思い出して悲しい気持ちになる.@rui314さんのCコンパイラをスクラッチから開発してみたを読んではかっこいいなと思いつつ僕には無理だなあと心が折れていた. どの言語を書いていてもコンパイラ(もしくはInterpreter)は切っても離せないものであり内部の動きがどうなっているかを知っておきたいという欲求はプログラマーなら誰しもあると思う(少なくとも僕に
Building a modern functional compiler from first principles. Stephen Diehl In 2014 I wrote a short tutorial about building a small imperative language in Haskell that compiled into LLVM. I was extremely happy with the effect the tutorial seemed to have, and the warm response I got from so many people was very encouraging. I've done a great bit of thinking about what the most impactful topic I coul
yacc/lexとは Cでプログラミング言語の処理系を実装するのであれば、 多くの場合、yaccとlexというツールを使います。 実のところ、Cとyacc/lexで簡単なプログラミング言語を作る、というのは、 以前、「C言語ヨタ話 」で書いた「 電卓を作ってみよう」 の焼き直しになります。yaccとlexの説明もそちらに簡単に書いたので、 そちらを見てください――と言いたいところですが、 まあここでも軽く説明します。 内容的には重複、というかコピペしている部分もありますが。 プログラミング言語の処理系は、通常、以下のような手順を取ります。 字句解析 ソースプログラムを、「字句(トークン)」の並びに分割する処理です。 構文解析 トークンの並びから、解析木を構築する処理です。 この後、Cなどの機械語を吐くコンパイラや Javaのようなバイトコードを吐くコンパイラなら、 「コード生成」という処理
今月はJavaのプログラムの中から,Javaファイルをコンパイルするために使用されるCompiler APIを取りあげます。 実をいうと,Compiler APIを使わずとも,プログラムの中でJavaコンパイラを使用することができます。これはJava SE 6以前のJavaでも可能です。 例えば,AntやMavenは,コンパイラタスクを実行してJavaファイルをコンパイルすることができます。また,JSPははじめてアクセスされた時にサーブレットに変換され,コンパイルした後に実行されます。これらのアプリケーションはプログラムの中でJavaコンパイラを使用しているのです。 javacコマンドの実体はJavaで記述されており,そのメインクラスはcom.sun.tools.javac.Mainクラスです。このMainクラスのmainメソッドをコールすれば,Javaファイルをコンパイルすることができま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く