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_0001kerrorExitエラー処理を少しでも書きやすく
kclib1_0002kqsortコールバック関数にパラメータを渡せるように
kclib1_0003kpopCount32, kpopCount64, kgetMsb32ビット演算系です、あとで必要になるので(たぶん)
kclib1_0004KPtrPoolサイズが固定の高速なmalloc/freeもどき
kclib1_0005KMalloc標準のmalloc/freeよりも12.5倍も高速!
kclib1_0006KAutoreleasePool使わなくなったオブジェクトを自動でfreeしてくれる便利な仕組み
kclib1_0007開発日記#12019.04.16~
kclib1_0008KSizPtr可変長データを簡単に扱うための仕組み
kclib1_0009KSizPtr_addFile, kreadFileA, ksgetsA, kcutCrLfM, kstrncpyAファイルを簡単に読み込む関数
kclib1_0010KIndexSデータをソートして管理するためのインデックス

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-04-22 (月) 16:39:01 (56d)