描主宇田川浩行K#F85E
上描き希哲8年(2014年)
01月29日 23:27
下描き希哲6年(2012年)
04月30日 05:30
利承
ライセンス
希哲館普通利承(KULクール

(シー・ミュー)は,希哲館・宇田川が開発する C++ 互換プログラミング言語である。ライブラリやフレームワーク等,「語彙」の面から言語改良を計る「ミュージアム言語」を提唱している。

ラテン文字のみによる表記は「C-Mu」を正式とし,省略形は μ を u で代用して「Cu」とする。ファイル拡張子には .Cu.Hu を使用する。

正確には,枯れており互換性の高い C95 と C++03 の仕様を基準とする。

Cμ の設計思想の核心には,「C Off-Roading(COR:コア)がある。これは,舗装路を走るような快適なプログラミング環境よりも,悪路を走りやすい自由なプログラミング環境を提供することを目指している。

採用状況

2013年4月8日,正式に虎哲の主要開発言語として位置付けた。

語誌

「μ」(ミュー)は,ミュージアムの略であるとともに,その語源であるギリシャ語「ムセイオン」(μουσεῖον)の頭文字である。

当初(2012年4月頃),「Museum C(ミュージアム・シー)を正式名称とし,「Mu-C(ミュー・シー)を略称としていた。

2013年2月5日,「Cμ」に改称した。

一覧

=}{*}

だろうなとは思っていたが,やっぱり主犯は SQL だった。 やその他の問題ではない,ということが明確になっただけでも大きな前進だ。

=}{*}

ここは がやるしかないな……。

=}{*}

Emscripten 的に当初から注目していたのだが流石に時期尚早という感があり手を出さなかったのだが,ようやく WebAssembly で実用化の兆しが見えてきたな。 の応用準備をしておこう。

=}{*}

本格的に論組(プログラミング)を始めてからデルンの実装まで約5年。この頃にはすでに C++ を改良した の原型が出来ていた。冷静に考えると驚きの事実だ。

=}{*}

この前「名前空間」の改訳語として「名称空間」を採用したのだが,C++ 用語の中でも悪名高い「無名名前空間」は では「匿名空間」にしておこう。こういうの大事。

=}{*}

いまさら C++ をいじりまわすのが良いとは思わないが,引括(インクルード)という極めて原始的な仕組みに依存しているのはやはり問題だ。この点, では魔法引括(マジックインクルード)という機構でかなり合理化を進めたと思う。

=}{*}

最近, でも模従(モジュール)という概念を考えていたのだが,そういえば C++ でも module が導入される頃なんだな。内容は結構違うが。

=}{*}

いま我々が使っている想品(ソフトウェア)というのは,重複や不整合にまみれた交度(コード)の塊で出来ている。私のささやかな夢は,これを で全て整理整頓することだ。その結果,もしかしたら未来の応司(OS)は CD-ROM 一枚くらいに収まるかもしれない。

=}{*}

このまま が発展すれば,V の公開にぶつけて話題を奪うことも出来るかもしれない。

=}{*}

先日考案した 自動輪結(auto linking)を実用出来る環境が整った。例えば,素譜(ソースファイル) example.u があったとすると,_kn run example.u と駒手(コマンド)を打つだけで依存関係を自動解決して換配(コンパイル)・輪結(リンク)・実行される。C++ 級なのにスクリプト言語並の手軽さ。

=}{*}

V 言語が絵に描いた餅に終わって,その余韻が残っているうちに を売り込む,というのも十分現実的なシナリオだ。

=}{*}

V 言語,物凄く大きく捉えると方向性として にちょっと被っていると言えなくもないところがあって,こういうのが話題になるということは の需要もそれなりにあるな。

=}{*}

=}{*}

そういう意味でも,C++ を基礎に網羅的かつ体系的なライブラリを構築しよう,という のアプローチは完璧に正しかったと思う。Java でも本格的なスクリプト言語でも,CC++ で書かれたライブラリを読み込む機能くらいは備えているので,そこを蓄積の軸にするのが一番合理的。

=}{*}

そう考えると,この知番付け識別子という手法,徹底的に簡潔性と直感性を重視した の語彙と相性が良かったんだな。

=}{*}

ちなみにこの v という客体(オブジェクト),C++std::endl に相当するもので,〈newline〉にかけたギリシャ文字ν(ニュー)に見立てつつ矢印にも見える記号として使っている。これも のちょっとした発明だ。何度書いてもこれで改行するのは楽しい。

=}{*}

識別子の末尾に # とか付けるの,最初は美観的にどうなんだろうという懸念があったのだが,例えばこのハローワールドC++

std::cout << "hello world!" << std::endl;

に相当することを考えれば何の問題もなかった。ここは徹底した の美意識に救われた。

=}{*}

大事なお知らせ。つい一昨日思いついた知番付け識別子(knumbered identifier)という技術と で,今日から世界に先駆けた「意味付け論組」(セマンティック・プログラミング)の実証実験を始めることになった。

=}{*}

GPL みたいなものって「素交度(ソースコード)は公開されれば理解できるはずだ」という前提が隠れている。交度英語(Code English)で書かれ,独自の概念や希哲館訳語をふんだんに使った日本語込め言(コメント)や文書を公開したとして同じことを言っていられるかどうか。「難読化」ではなく「本質的な難読性」にどう対応するつもりなのだろう。

=}{*}

考えてみれば今時の言語なら大したことではないのだが,これが「魔法」なのは,C++ として換配(コンパイル)出来るからだ。

=}{*}

魔法引括(magic include)は,簡単に言うと,引括保護インクルードガード)が完全自動化され,階層は直感的に扱いやすくなり,名称展開using namespace)を柔軟に制御出来,版存(バージョン)指定が出来る(予定)という,文字通り魔法のような機構。

=}{*}

最大の発明は SweePsweet pointer)だと思っていたのだが,ここのところ魔法引括magic include)の発展も凄まじく,甲乙付け難くなっている。この二つが「Cμ 二大発明」かな。

=}{*}

色々な応司(OS)で動く仮想機の上で論組(プログラミング)言語を動かそうという人は多いが, のように,そもそも仮想機応司にしてしまえばいいという発想で作られた言語はまだ少ない。

=}{*}

C++ における std:: 付加問題は,理論上はともかく,実践上は可読性・記述性にかなりの悪影響を及ぼしている問題だと考えてきて, では「通称」という命名規約を導入したりして記述を大きく簡略化することに成功しているのだが,これから語彙が増えていくと名前の衝突は無視できない問題になる。その懸念はこの技術で上手く回避出来そう。

=}{*}

今日は今後の の設計方針についてあれこれ考えた。Cμ では std をもじった「xtd」(extend)という表現をよく使ってきた。Cμ 標準のうち,C++ から継承した部分を「基礎標準」,拡張した部分を「拡張標準」として,後者を表す記号だった。最近,これを std に統合してしまおうという野心が芽生えていたのだが,結局これは没になりそうだ。

=}{*}

の最初の挑戦はデルンCMS として実装することだったので,すでに PHP よりもウェブアプリを書きやすい言語になっているし,PostgreSQLEmacs模従(モジュール)を書いたり,NDKAndroid アプリを書いたりも出来る。そしていずれ応司(OS)を書き換える。10年前に理解してくれる人はいなかったが,今なら私が何を見据えていたか分かってもらえるかも。

=}{*}

今日は X11 論組プログラミング)。昨日作った駒触れ(コマンドプロンプト)通知機能と連動する通知論組を作りつつ,API の整備。このあたりもかなり洗練されてきて,C++ 互換でありながら HSP 並の気軽さで GUI を書ける脅威の環境が出来つつある。

=}{*}

今の私にとって一番楽しい言語は言うまでもなく だ。

=}{*}

実は では Xlib絡包(ラップ)した GUI ライブラリも作りかけながらある。このぐらいのことならすぐ出来る。

=}{*}

Flash に関しては,C や C++Flash API を利用したり,ActionScript 3 相当の交度(コード)を埋め込むことが出来る CrossBridge というのがあって,これを希哲社の独自言語 で統合的に扱えるようにする計画があった。しばらく放置しているうちに廃れてしまった。

=}{*}

これが発展して iffy_ という典型(テンプレート クラス)があり,これは C++std::optional に相当する。つまり,iffy_< s_T > で nil を許容する文字列型(s_T)が作れる。

=}{*}

iffy() というのは 三項演算子二項演算子エルビス演算子)を明示化するために導入した函数で,要は三項演算子的なことを iffy( a, b, c ) で表現する。ついでに iffy( a, b ) も出来る。ちなみに〈iffy〉は「曖昧な」という意味の英単語。

=}{*}

デルンCMS として実装しようとした時,C++ を基礎に独自言語を作るという発想は誰も理解出来なかった。それが今では,どのスクリプト言語よりもウェブアプリを書きやすい言語になっている。しかも,応司(OS)開発も含めてそのままあらゆる分野に応用出来る。もうこの時点で完全勝利だ。

=}{*}

サービス開発しながら言語とかライブラリの仕様を考えたり実装するのって,流石の私でも不安を覚えないと言ったら嘘になるのだが, の成功で変な自信が付いてしまったらしい。初期の混沌を乗り越えて,自由自在に交度(コード)を書けるようになるとやっぱりやって良かったと思う。

=}{*}

Aejs がだんだん様になってきた。これで捌き手(サーバーサイド)は 請い手(クライアントサイド)は νS と,世にも珍しいスクラッチ開発サービスになるな,デライトは……。

=}{*}

では例えば b_ok = not ok; みたいな書き方が標準で出来て,ちょっと楽しい。〈be〉bool をかけている。

=}{*}

LISP の影響といえば,希哲館の主要言語 (シーミュー)にもある。Cμ では,NULLnil で,true は t だ。また述語の -p をもじって真偽値は b_ で始めるという命名規約がある。……のだから,無意識にも影響を受けてないわけはないな。

=}{*}

論組(プログラミング)言語の価値というのは,結局のところそれで何が達成出来るかということでしか評価出来ない。だからこそ,CUnix のように,言語と目的は密接である方が良い。私が独自に開発している を信頼出来るのは,これによってデルンの実装に成功したからだ。

{b_t}{OK}

=}{ok_t}

=}{ok}
出力論組プログラム虎哲*イチ 1.01
制作・運営:希哲社
© K1-13 (2007-2019) KiTetuSha