プログラム言語
うーむ、ここまでcmakeが勢力を持つとはなぁ。 cmakeが使われているものは、ビルド&インストールがすんなり行かないという印象が出来つつある。 単にWindows畑の人が多く使っているのと、V=1みたいな経験が全く通用しないのが原因かも。
Multics経由で知って気になったから調べてみた。リファレンスが全然見つからない。 取り合えず文法から推測。 http://www.cs.vu.nl/grammars/browsable/os-pli-v2r3/ GO TOとGOTOとGO_TOが定義されている。しかも前二つと最後ので構文が違うとか、狂気の沙汰…
ある処理に依存する入力/出力コントロールを明示すれば、自動マルチスレッド化できそうな気がするのだがなぁ。ああ、もちろん駆動はイベントでだけど。
個人的に思うことは全てのグローバル変数は悪。 ただ同様の便利さが必要な訳で、ネストクラスのnew時に親クラスのインスタンス渡して親クラスのメンバ変数に透過的にアクセスできれば良くね?っていう。 D言語はどうもそれがうまく行くようなので、皆もっとネ…
Javaは分かる。win32apiも分かる。ffmpegもまぁ分かる。ImageMagickのCのlow APIは何であんなAPIになってるんだ??? そこに書かれているexample programも結構アレだし…。
主にnewの話。抜けありまくりで荒いメモ書き。間違いもあるかも。 二項演算はCベースで。単項演算はfoo(x)とする。例えばnew Xならfoo = new, x= Xという感じに。 後置の場合も結合の演算子は無しとする。 後置の場合(強い結合。Rubyのnew・D、Java、C、C++…
splintやgccの-Wextraをもっと言語に落とせないのかなぁ。警告は所詮警告だし。 戻り値(もしくはout/ref)を使わないとエラーにする属性 基本型の制約 unused varianbleのエラーとunsed属性(gcc -Wallではしてくれるし__attribute*1もある。他は知らない。) d…
hardy付属の。以前使ったとき(0.13)より良くなってるのでレビュー。 gtk#がSystem.Windows.Formsと異なってるので覚えなおさないといけないなぁ。しかも、オートコンプリートで説明が出てこない…。 Gtk.MessageDialogのコンストラクタがやけに引数を多く必要…
ラムダ計算は理想主義。チューリングマシンは原理主義。目的をサクッと実現させる現実主義的何かが必要。 そういった観点で、HaskellやD言語、C#やスクリプト言語などは当たり前な正常進化といえるはず。 が、Web周りは酷すぎる。VBよりも酷い。そんな状態で…
bjam(jamfile)とかRBuild(*.rbuild)が使われてるののソース初めて読んだ。 種類が増える一方でついていけない。
初めて知った…ってよりも忘れてただけか。 便利だと思うが乱用しそうで怖い(ソースの見通しと拡張性の問題的に)。 分割コンパイルってどうなってるんだっけ? partial functionまだー?
ってことで文に広げるの考えてみた。単にelseを一文字にして省略不可にしてるだけだけど。 文 = (スコープ文 | if文 | while文 | throw文 | return文 | 式リスト) ; 式リスト = 式 ("," 式)+ 文リスト = 文 (":" 文)+ スコープ文 = 文リスト 条件式 = 式リス…
C言語のコードをまともに読んだの始めてだったかもしれ。 GCが無いとfreeのせいで全てをヒープに取るしか無くなるから遅くなる訳だ(strdupだらけ。いや他の方法も無くは無いけど。)。 配列の中の途中のポインタもfreeしないように気をつけないといけないし。…
なんかこんなことが思い浮かんだ。深くは考えてない。 まぁshared memoryで充分のような。パス付きshared memoryが/dev/shmあたりと考えればいいか。 頭痛い。以下略。
カーネル開発とかで必須な気がするが、あるのかな。あるとしたら実装がどうなってるんだろ。 後で調べる。
まぁ予約語を使った関数でも標準組み込み関数でもいいけど。 割ると余りを同時に求めるもの。TypeTuple!(a,b) = 10 /% 2;のように。 repeat。使うところない気がしてならないけど。arr~arr~...。D言語で実装するなら「$~」辺りが良さげ。 swap。js2だとa,b=b…
D言語とは別方向で進化してる。 rubyは仕様読んでもやる気が起きないので飛ばしてXtalやる予定。Xtalの開発者がD言語やECMAScriptも参考にしてるので、取っ掛かり易そうだし。 幾つかメモ。 D言語で__traits(hasMember, obj, test)はXtalでobj.?test…って違…
T/O
経由省略。思い出話中心のただのメモ書き。 Excel VBAから入った口(読んでた本はExcel2000 はじめてのVBAプログラミング)なので、俺は多分マイノリティ。 今でこそvbは無料だけど、昔は有料だったわけで。んでoffice付属のexcel vbaで適当にプログラムを作っ…
- C/C++ C++(STL/Boost) ECMAScript 4 D キャスト (type)expr static_cast(expr)dynamic_cast(expr) expr cast typeexpr as type cast(type)expr キャストできるかどうか - !!dynamic_cast(expr) expr is type !!cast(type)expr 変換 - lexical_cast(expr) e…
カーネルやWMの流れとclibやboostの流れ。
ってことで動的アセンブラのXbyakや動的コンパイラのlibtccが注目を浴びてきている…と。 静的コンパイルで動的アセンブラの呼び出しを生成とかも面白そう。ってかgenericの実装ってそうなってるのかな?
ネストによって可能な言語が殆どなはずだけど、あまり解説されてないので括弧付けたい病になってしまう俺。 if(a)alert("a") else if(b)alert("b") else if(c)alert("c") else alert("other"); は三項演算子を使って a?alert("a"): b?alert("b"): c?alert("c…
手続き型では既に定義されているobjが持ってるメンバの参照の問題もあるなぁ。 展開できない時は展開しないで回避すればよさげだけど、循環エラーがでたときがややこしいことこの上なさそう。 #以下メモ。連想配列やオブジェクトの連結。オブジェクト型はダ…
関数型言語とそうでないのとの違いは状態を保存するかしないかであり、mutableなオブジェクトのメソッドでは関数型と相反すと。 逆にimmutableなオブジェクトなら関数型言語にも導入できそうな気がするが、関数型言語をまともにやった事無いから必要性は知ら…
前方参照だけの言語としてHaskellがある。 手続き型だけの言語としてJavascriptがある (モジュールの前方参照が無いので複数のモジュールの読み込む順番を前もって決めなければいけない)。 実装が組合せで、モジュール・静的・関数が手続き型としてC言語、C+…
本当に前方参照なんて必要なのかな。個人的には親スコープを全て処理した後、子スコープを処理してくというJavascriptのようなのが理想だと思うけど。そうすれば関数内関数のオーバーロードとかも特殊ルール無く解決するし。 #ところでDのmixinてもしかして…
シンプルな構文から構文糖によってC言語っぽい構文を作ってみるテスト。色々問題があるけど一日で考えたらこれが限界な罠。 型は実行型では無く論理型とする。コンパイル時に一番適した実行型に変換される。 型と値を同一視する。 コンパイル時にJavascript…
が全ての近未来的な言語の目標だと思う。 動的が必要かどうか…は必要だと思う。ダイナミックライブラリだって動的だし、Firefoxの拡張も動的だから可能である(グローバル変数内の関数を書き換えて実現している)。 #個人的には静的言語のプログラムを拡張する…