SU/CAR-ST-APi-cells

悪を告発し危険な目に遭い撤退中のブログ

自作DSLで株シストレ
Esgrsdnl

ある詐欺グループとの戦い
危険ですので撤退します
Sort Uniq / C Awk R Sed Tcl/Tk
Shell Unix (percentile) Compile Assembly Run
Stock Trading APi cells
ローマは一日にしてならず R,C

53歳限界プログラマの憂鬱
mix of AB

気持ちが戻らないので撤退します。。。

このブログのコメントについて

2019/4~
運用資金250万
カラクリあり

10分で独自言語(インタプリタ)を作る(真面目なおバカ記事)

にほんブログ村 株ブログ 株 自動売買へ

興味ない方はスルーで・・・

あるプログラムのサンプルソース

tc.txt

整数 i
実数 d,dd,d2
出力("H W!\n")
繰返 (i=0;i<25;i++){
	d=正弦(3.14159/180*i)
	dd=余弦(3.14159/180*i)
	d2=平方根(i)
	出力("%d deg:sin->:%f :cos->:%f :sqrt->:%f\n",i*5,d,dd,d2)
}

プログラムわからない人でも何となくわかるんじゃないでしょうか?

何しろキーワード日本語ですし・・・

でもこんなプログラム言語は世の中に存在しません・・・

なら、自分で作ってしまいましょう

10分で作れます

nchl というインタプリタ(自作)

$ ls -l ./nchl
-rwxr-xr-x 1 xxxxx なし 318 12月 18 16:33 ./nchl

僅か 318byte です!

では、実行してみましょう

$ ./nchl ./tc.txt
H W!
0 deg:sin->:0.000000 :cos->:1.000000 :sqrt->:0.000000
5 deg:sin->:0.017452 :cos->:0.999848 :sqrt->:1.000000
10 deg:sin->:0.034899 :cos->:0.999391 :sqrt->:1.414214
15 deg:sin->:0.052336 :cos->:0.998630 :sqrt->:1.732051
20 deg:sin->:0.069756 :cos->:0.997564 :sqrt->:2.000000
25 deg:sin->:0.087156 :cos->:0.996195 :sqrt->:2.236068
30 deg:sin->:0.104528 :cos->:0.994522 :sqrt->:2.449490
35 deg:sin->:0.121869 :cos->:0.992546 :sqrt->:2.645751
40 deg:sin->:0.139173 :cos->:0.990268 :sqrt->:2.828427
45 deg:sin->:0.156434 :cos->:0.987688 :sqrt->:3.000000
50 deg:sin->:0.173648 :cos->:0.984808 :sqrt->:3.162278
55 deg:sin->:0.190809 :cos->:0.981627 :sqrt->:3.316625
60 deg:sin->:0.207912 :cos->:0.978148 :sqrt->:3.464102
65 deg:sin->:0.224951 :cos->:0.974370 :sqrt->:3.605551
70 deg:sin->:0.241922 :cos->:0.970296 :sqrt->:3.741657
75 deg:sin->:0.258819 :cos->:0.965926 :sqrt->:3.872983
80 deg:sin->:0.275637 :cos->:0.961262 :sqrt->:4.000000
85 deg:sin->:0.292371 :cos->:0.956305 :sqrt->:4.123106
90 deg:sin->:0.309017 :cos->:0.951057 :sqrt->:4.242641
95 deg:sin->:0.325568 :cos->:0.945519 :sqrt->:4.358899
100 deg:sin->:0.342020 :cos->:0.939693 :sqrt->:4.472136
105 deg:sin->:0.358368 :cos->:0.933581 :sqrt->:4.582576
110 deg:sin->:0.374606 :cos->:0.927184 :sqrt->:4.690416
115 deg:sin->:0.390731 :cos->:0.920505 :sqrt->:4.795832
120 deg:sin->:0.406736 :cos->:0.913546 :sqrt->:4.898979

 無事に実行できました

三角関数もきちんと計算できてます

凄いですね! 僅か318byteでここまでできます

種明かしです

nchl はシェルスクリプトなんで、中身を見てみましょう

#!/bin/bash
cat $1 |sed -e 's/出力/printf/g;s/整数/int/g;s/繰返/for/g;s/実数/double/g;s/正弦/sin/g;s/余弦/cos/g;s/平方根/sqrt/g;s/$/;/g' >./tmp.inc
cat << EOF >tmp.c
#include <stdio.h>
#include <math.h>
int main(void) { 
#include "tmp.inc"
}
EOF
gcc ./tmp.c
./a
rm ./a.exe ./tmp.c ./tmp.inc

要は、C言語のテンプレートを用意しといて、sedで日本語独自キーワードをC言語のキーワードに置換したものをぶち込んで、gccコンパイルして、実行してるだけです

シストレの自作システムはもう少し複雑(awk m4も使用)ですが、基本は同じです

 なんちゃって独自言語自作は楽しいです

 

f:id:sucar:20150414192227p:plain

CとRでス・パ・カー・エス・ティー
高級アセンブラC言語と統計分析R言語を
駆使して生まれたその名は、ス・パ・カー・エス・ティー!

f:id:sucar:20150414193802p:plain