* kclib1のページ -(by [[K]], 2019.04.16) ** (0) -私は、オリジナルの言語やライブラリを作るのがいかに楽しくて役立つのか、まだまだ多くの人には知られていないのではないかと思っています。だからその楽しさを知ってもらうために、私が自分の開発過程を解説付きで紹介したいと思います。 ** (1) -私は今回はライブラリを作ろうと思います。なぜ言語にしなかったのかというと、言語は昨年せっせと作ったので今度はライブラリにしようと思ったのです。 --昨年の言語への取り組みは以下のページで見れます。 --''TL-1'' : たった65行でもプログラミング言語が作れる! → [[text0001]] --''TL-2'' : 変数名が二文字以上にできる → [[text0002]] --''TL-3'' : ループ処理をサポートして実行速度を測定 → [[text0003]] --''TJ-01'' : JITコンパイラ化を目指して準備(1) → [[text0004]] --''TJ-02'' : JITコンパイラ化を目指して準備(2) → [[text0005]] --''TJ-03'' : JITコンパイラ化に成功し、インタプリタとしては異次元の速さへ → [[text0006]] --それ以降: 詳細は省略されていますが、ここで紹介しています → [[page0017]] -ライブラリというか関数を作るというのは、言語が標準で用意している拡張方法だと私は思っています。つまり新しい言語を作らなくても、新しい機能を気軽に言語に追加できるわけです。これって素敵ですよね。だから私はライブラリを作ろうと思ったのです。 -ライブラリで言語の機能を増やした場合、その新機能の呼び出しは関数呼び出しで書くしか方法がないですが、言語を作ると新しい書き方もできるようになります。そういう新しい書き方がどうしてもやりたくなったら、やっぱり言語を作るしかないです。・・・逆に言えば、書き方へのこだわりがないのなら、たいていはライブラリで十分なのです。 ---- -kclib1は、32bitのx86のMinGW(gcc)を前提にしています。・・・どの関数もささやかな内容で、大規模なものはありません。雑関数集です。 ** (2) もくじ |[[kclib1_0001]]|kerrorExit|エラー処理を少しでも書きやすく| |[[kclib1_0002]]|kqsort|コールバック関数にパラメータを渡せるように| |[[kclib1_0003]]|kpopCount32, kpopCount64, kgetMsb32|ビット演算系です、あとで必要になるので(たぶん)| |[[kclib1_0004]]|KPtrPool|サイズが固定の高速なmalloc/freeもどき| |[[kclib1_0005]]|KMalloc|標準のmalloc/freeよりも12.5倍も高速!| |[[kclib1_0006]]|KAutoreleasePool|使わなくなったオブジェクトを自動でfreeしてくれる便利な仕組み| |[[kclib1_0007]]|''開発日記#1''|2019.04.16~| |[[kclib1_0008]]|KSizPtr|可変長データを簡単に扱うための仕組み| |[[kclib1_0009]]|KSizPtr_addFile, kreadFileA, ksgetsA, kcutCrLfM, kstrncpyA|ファイルを簡単に読み込む関数| |[[kclib1_0010]]|KIndexS|データをソートして管理するためのインデックス | |[[kclib1_0010]]|KIndexS|データをソートして管理するためのインデックス|