JITコンパイラライクなものを作ってみた ref: http://qiita.com/maekawatoshiki/items/320465127ae569607ebf
i = 2
isprime = 1
while i < 100000
k = 2
isprime = 1
while k * k <= i
if i % k == 0
isprime = 0
break
end
k += 1
end
puts i if isprime == 1
i += 1
end
""" run:
$ time ruby2.1.2 prime.rb
"""
#include <stdio.h>
int main()
{
int i, isprime;
for(i = 2; i < 100000; i++) {
int k;
isprime = 1;
for(k = 2; k * k <= i; k++) {
if(i % k == 0) {
isprime = 0;
break;
}
}
if(isprime == 1) {
printf("%d\n", i);
}
}
return 0;
}
/*
Compile:
$ gcc prime.c -O0
$ time ./a.out
*/
#自作JITコンパイル言語 (lit)
i = 2
isprime = 1
while i < 100000
k = 2
isprime = 1
while k * k <= i
if i % k == 0
isprime = 0
break
end
k = k + 1
end
if isprime == 1
print i
end
i = i + 1
end
# run
# $ ./lit
# コードを入力
# 数字の表示
# Hello world したいところですが、文字列が使えない...
print 43
print 123456789 # 32bit 符号付き整数のみ対応
# 変数と計算
# 英文字で始まれば変数です。宣言は必要ありません。
var = 12
i = 43
var = i + var * (12 / 5) # 小数が使えないので、12/5=2
var = (var / 12) % 12 # モジュロもできる
# 条件判断たち
# if と while が使えます
i = 1
while i < 10
if i % 2 == 0
print 22222
elsif i % 3 == 0
print 33333
else
print i
end
i = i + 1
end