実行時にデータ型を判別するためのデータ表現 基本的な技法(オブジェクトのヘッダ, tagged pointer, BIBOP)
言語処理系とは インタプリタとコンパイラ 言語処理系とは、プログラミング言語で記述されたプログラムを計算機上で実 行するためのソフトウエアである。そのための構成として、大別して2つの構 成方法がある。 インタープリター(interpreter,翻訳系): 言語の意味を解析しながら、その意味する動作を実行する。 コンパイラ(compiler,通訳系): 言語を他の言語に変換し、その言語の プログラムを計算機上で実行させるもの。狭い意味でコンパイラは、言語を機 械語に変換し、実行するものであるが、他の言語、あるいは仮想機械コードに 変換するものもコンパイラと呼ぶ。他の言語に変換するときには、特に translatorと呼ぶ場合もある。 元のプログラムをソースプログラム、 翻訳の結果と得られるプログラムをオブジェクトプログラムと呼ぶ。 機械語で直接、計算機上で実
下記のスクリプトは、nの階乗を求めることを想定しています。 n = 5; x = 1; L n x = x * n; n = n - 1; x; このスクリプトを構文木の形で表現して実行するプログラムを書きました。 構文木は下記のようなものになります。 プログラムは、木の節点に対して一つのクラスを定義して書いていきました。 節点の種類とクラスの対応付けは下記のようなものにしました。 四則演算(Add, Sub, Mul, Div) 定数(Lit) 変数(Var) 代入(Assign) セミコロン(Seq) ループ(Loop) プログラムは下記のようになります。 package Node; use strict; use warnings; my %vars; sub new { my $class = shift; my ($l, $r) = @_; bless { left => $l,
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く