どうも、知り合いからのアクセスが多いようなので、たまには軽めの記事をアップします。
私の英語力は元々は、かなりひどく
『高校でかろうじて赤点を取らなかった』
というレベルで、英語の文章はまったく読めなかったのですが、
30歳頃に猛勉強してやっと少し技術文書が読めるようになりました。
それでもTOEICで450点ぐらいだったので元のレベルの低さがわかるでしょう。
その後、結婚して、ヨメさんが外国人としゃべっているのを見て、
『オレもできるのでは?』
という甘い考えで英語の学校(GEOS)に通ったりしました。
以来、仕事で使うわけでもないのであまり上達せずに、授業料を浪費すること、数年が経ち、去年とある資格を受験するために英語の実力が知りたく英検の準2級を受けました。
準2級というと、
英検のページから引用させていただきますと、
日常生活に必要な英語を理解し、また使用することができる。
とのことですが、私自身そんなに実力があるとも思えないのですが・・・まぁ使うことがないのでなんとも言えないところです。
準2級のテストですが、ほとんどが中高生(もうかなりのおっさんなので区別がつかない)で、おっさん、もとい社会人の方はほとんど受験していなくて、面接でも同年代の男性が審査官をやっていたのですが、審査官の方もお子様相手に疲れていたらしく、私の顔をみるなり安堵の表情を浮かべていました。
『社会人になって英語を勉強するとは素晴らしい』
というオーラが伝わり、逆にちょっと引いてしましました。
テストの結果は合格でしたが、多少優遇されていたのでは? とも思いましたが、次の2級のテストで一次試験が通ったところを見ますとどうやら実力のようです。ちなみに2級の一次試験では社会人の受験者が多かったので、
『社会人の英検受験は2級から』
のようです。
で、2次試験ですが、急な仕事が入った為、休みまして、次の回で2次試験を受けます。
WEB-DB用の言語としてベースにPrologを選んだわけですが、(注)あくまでもベースであって基本的に別ものになっています。
なぜ、Prologを選んだかと言いますと、
PrologはRDBとの相性が良い
ということに尽きるかと思います。PrologとRDBの類似性自体はPrologを知る多くの人が感じていることだと思います。
Prologの教科書を読むと必ずと言っていい程、家系図の例題が出ますが、家系図自体がデータベースそのものでしょう。
一方で、インピーダンスミスマッチと言わるぐらい、他の言語(主にオブジェクト指向言語)とRDBはあまり相性がよくないです。O/Rマッパーのようなものを誰しも一度は作ると思いますが、私も実際にJavaでO/Rマッパーを作ってみましたが、どうも今一つでありました。もっとも3年程前に、Ruby On Rails(RoR)を触ってみましたが、RoRにはものすごい力を感じました。一時はADPの開発を止めようかと思いましたが、Ruby実行速度がいまいち(特にWindows版)なのとRuby自体は比較的難解な言語なので続けることにしました。
私はPrologには精通していません。学生自体にちょっとかじった程度です。ですので、Prologの文法や規格をきちんと把握していません。その中でPrologの動作についていまひとつ理解できない部分がありましたので、であればということでADPの文法はオリジナルのものとなっています。
プログラム本体は公開までこぎつけたのですが、
とりあえず、以下の作業が終わったら開発版を公開します。
・ドキュメント
簡単な説明
マニュアル
リファレンス
・ライセンス
・サンプル
CSVファイルの出力
ファイルハッシュの作成
Yahooの株価情報の取得
CMSのサンプル
以下のURLで公開します(ドキュメント作成途中ですが、まぁその方が完成までのモチベーションが上がるので・・・)。
http://www.adp.la/
私は趣味と実益を兼ねて、ADPというプログラミング言語を開発していたのですが、この度、そろそろ開発版を公開できそうなくらいになってきました。
といっても、まだまだやることがありますので、このブログではADPの開発記録ということで、色々書いていきたいと思います。
先ずは、軽く今までの開発の経緯についてまとめます。
・2006年12月 ADPの開発スタート
WEB-DB用の開発言語として、プログラミング言語の開発をスタートする。元になる言語はPrologで、C++を使って開発を始める。
パーサーは比較的簡単にできたが、Prologのバックトラックとユニフィケーションの部分で開発が難航した、実に1年以上の時間を費やした。
・2008年2月 ブログをスタート
将来の公開に向けて、ブログをスタートした。この頃にはPrologの基本機能が実装できた。ADPの公開用のドメインも取得する。
・2008年3月 DBアクセス機能の作成
DBアクセス機能の実装を開始する。この頃から自社業務の一部でADPを使用するようになる。
・2008年10月 未踏ソフトに応募
IPAの未踏ソフト(正式名称 未踏IT人材発掘・育成事業)に応募するも未採択となる。
・2009年
WEB関係の機能の実装を開始。
ぼちぼちと開発を進める。
途中ソースを何回も書き直す。
仕様変更を繰り返す。
・2010年6月
そろそろ公開してもよさそうなところまで開発が進む。
もろもろの業務がひと段落したので、しばらくADPに開発に本腰を入れることができるようになる。
公開準備を迅速に行う為、敢えてブログで公開する。
1年ぶりのC++/SLTネタです。
正規表現での置換ですが、ちょっとハマったのでメモ書きします。以下、srcstrで与えられたstringに対して,fstr(正規表現)の検索を行い、repstrで置換します。マッチする文字列全てを置換します。結果の文字列はdststrで返します。
void replace_regex_all(
string &srcstr, const char *fstr, const char *repstr, string &dststr)
{
string tmp;
boost::regex fnd(fstr);
ostringstream t(ios::out | ios::binary);
ostream_iterator<char, char> oi(t);
boost::regex_replace(
oi,
srcstr.begin(),
srcstr.end(),
fnd,
repstr,
boost::match_default | boost::format_all);
dststr = t.str();
}