kbcl0_0000
のバックアップ(No.3)
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
バックアップ一覧
差分
を表示
現在との差分
を表示
ソース
を表示
kbcl0_0000
へ行く。
1 (2019-04-27 (土) 12:47:57)
2 (2019-04-27 (土) 13:03:34)
3 (2019-04-28 (日) 22:07:24)
kbcl0のページ
(by
K
, 2019.04.27)
↑
(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
ライブラリというか関数を作るというのは、言語が標準で用意している拡張方法だと私は思っています。つまり新しい言語を作らなくても、新しい機能を気軽に言語に追加できるわけです。これって素敵ですよね。だから私はライブラリを作ろうと思ったのです。
ライブラリで言語の機能を増やした場合、その新機能の呼び出しは関数呼び出しで書くしか方法がないですが、言語を作ると新しい書き方もできるようになります。そういう新しい書き方がどうしてもやりたくなったら、やっぱり言語を作るしかないです。・・・逆に言えば、書き方へのこだわりがないのなら、たいていはライブラリで十分なのです。
ということで2019年の4月くらいから
kclib1
という小規模なC言語向けのライブラリを作っていたのですが、C言語の範囲でできることに限界を感じ、だんだんC++が非常にうらやましくなってきて、じゃあC++向けで出直そうと思いました。それがこの
kbcl0
です。
ただし私はC++のすべての機能を使う気はなく、ごく一部の機能だけを使います。いわば「better C」としての使いかたです。
使うコンパイラはgccのC++の32ビット版を想定しています。
↑
(2) 主な特徴(何を目指しているライブラリなのか)
少ない行数でプログラムが書けるようになることを目指します。
究極の性能とか、究極のメモリ使用効率とかは追求しません。自分のフルパワーの70%くらいで気軽に作ります。それならバグも入り込まないでしょう。
ライブラリ内の関数を利用してさらに別の新しいライブラリ関数を作るという「積み上げ」を目指します。そうやって少しずつ上に登っていきたいのです。
↑
(3) もくじ
kbcl0_0001
開発日記#1
2019.04.27~
kbcl0_0002
kmalloc
標準のmalloc/freeよりも10倍以上高速, inUse()が便利
kbcl0_0003
KAutoreleasePool
使わなくなったオブジェクトを自動でfreeしてくれる便利な仕組み