謎's キッチン

謎のひとりごと。Amazon欲しい物リストはこちら: https://www.amazon.co.jp/hz/wishlist/ls/CCPOV7C6JTD2

プログラム言語

cmake

うーむ、ここまでcmakeが勢力を持つとはなぁ。 cmakeが使われているものは、ビルド&インストールがすんなり行かないという印象が出来つつある。 単にWindows畑の人が多く使っているのと、V=1みたいな経験が全く通用しないのが原因かも。

PL/I

Multics経由で知って気になったから調べてみた。リファレンスが全然見つからない。 取り合えず文法から推測。 http://www.cs.vu.nl/grammars/browsable/os-pli-v2r3/ GO TOとGOTOとGO_TOが定義されている。しかも前二つと最後ので構文が違うとか、狂気の沙汰…

GUIがスレッドかイベントか

ある処理に依存する入力/出力コントロールを明示すれば、自動マルチスレッド化できそうな気がするのだがなぁ。ああ、もちろん駆動はイベントでだけど。

変数のスコープ

個人的に思うことは全てのグローバル変数は悪。 ただ同様の便利さが必要な訳で、ネストクラスのnew時に親クラスのインスタンス渡して親クラスのメンバ変数に透過的にアクセスできれば良くね?っていう。 D言語はどうもそれがうまく行くようなので、皆もっとネ…

うーん、APIの感覚が掴めない

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…

Monodevelop 0.18b3でC# + gtk#レビュー

hardy付属の。以前使ったとき(0.13)より良くなってるのでレビュー。 gtk#がSystem.Windows.Formsと異なってるので覚えなおさないといけないなぁ。しかも、オートコンプリートで説明が出てこない…。 Gtk.MessageDialogのコンストラクタがやけに引数を多く必要…

某議論を読みすらしないで感想書いてみる

ラムダ計算は理想主義。チューリングマシンは原理主義。目的をサクッと実現させる現実主義的何かが必要。 そういった観点で、HaskellやD言語、C#やスクリプト言語などは当たり前な正常進化といえるはず。 が、Web周りは酷すぎる。VBよりも酷い。そんな状態で…

make色々

bjam(jamfile)とかRBuild(*.rbuild)が使われてるののソース初めて読んだ。 種類が増える一方でついていけない。

C#のpartial type

初めて知った…ってよりも忘れてただけか。 便利だと思うが乱用しそうで怖い(ソースの見通しと拡張性の問題的に)。 分割コンパイルってどうなってるんだっけ? partial functionまだー?

三項演算子マンセー

ってことで文に広げるの考えてみた。単にelseを一文字にして省略不可にしてるだけだけど。 文 = (スコープ文 | if文 | while文 | throw文 | return文 | 式リスト) ; 式リスト = 式 ("," 式)+ 文リスト = 文 (":" 文)+ スコープ文 = 文リスト 条件式 = 式リス…

C言語が遅いわけ分かった気がする

C言語のコードをまともに読んだの始めてだったかもしれ。 GCが無いとfreeのせいで全てをヒープに取るしか無くなるから遅くなる訳だ(strdupだらけ。いや他の方法も無くは無いけど。)。 配列の中の途中のポインタもfreeしないように気をつけないといけないし。…

テンポラリファイルのGC化

なんかこんなことが思い浮かんだ。深くは考えてない。 まぁshared memoryで充分のような。パス付きshared memoryが/dev/shmあたりと考えればいいか。 頭痛い。以下略。

同一アプリ内でのセグメント(assertのような感じで)

カーネル開発とかで必須な気がするが、あるのかな。あるとしたら実装がどうなってるんだろ。 後で調べる。

演算子として、欲しい演算

まぁ予約語を使った関数でも標準組み込み関数でもいいけど。 割ると余りを同時に求めるもの。TypeTuple!(a,b) = 10 /% 2;のように。 repeat。使うところない気がしてならないけど。arr~arr~...。D言語で実装するなら「$~」辺りが良さげ。 swap。js2だとa,b=b…

Xtal

D言語とは別方向で進化してる。 rubyは仕様読んでもやる気が起きないので飛ばしてXtalやる予定。Xtalの開発者がD言語やECMAScriptも参考にしてるので、取っ掛かり易そうだし。 幾つかメモ。 D言語で__traits(hasMember, obj, test)はXtalでobj.?test…って違…

gccでのblackfinのアセンブリが直感的すぎる件について

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…

ボトムアップ vs トップダウン

カーネルやWMの流れとclibやboostの流れ。

時代は動的コンパイル

ってことで動的アセンブラのXbyakや動的コンパイラのlibtccが注目を浴びてきている…と。 静的コンパイルで動的アセンブラの呼び出しを生成とかも面白そう。ってかgenericの実装ってそうなってるのかな?

三項演算子(条件式)のelse if

ネストによって可能な言語が殆どなはずだけど、あまり解説されてないので括弧付けたい病になってしまう俺。 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の拡張も動的だから可能である(グローバル変数内の関数を書き換えて実現している)。 #個人的には静的言語のプログラムを拡張する…