描主宇田川浩行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μ」に改称した。

一覧

=}{*}

その点で が強いなと思うのは,デルンという革新的な柔品ソフトウェア)の実装に成功しているという裏付けがあって,私自身が全て開発しているので初歩から地続きの「道案内」が出来るということ。

=}{*}

希哲館訳語カタカナ依存症を治し,交度英語(Code English)で勘報上で扱う諸言語の語彙を統一し,実装する。今の希哲館でこれが出来ていることの意義はとてつもなく大きい。

=}{*}

だから では constC と書けるようになっている。C++ でいう const std::stringC s_T と書ける。この差。

=}{*}

広域定数the_ 接頭子,やっぱりかっこいいな。マクロとの衝突を避けるため全部大文字を避けるとしたらこれしかなかった。the_foo みたいに書ける。

=}{*}

の良い所は……安全厳密なのに書いていて楽しい交度簡潔綺麗,実行速度は C++ 並みに速く,C++ 並みに大体の場所で使える。この上にひたすら交度(コード)資産を積み上げられる。のようだ。

=}{*}

思い描いていた理想論組(プログラミング)言語に限りなく近いかもしれない。今の は。

=}{*}

,ずいぶん綺麗になって何かぼーっと眺めているだけで時間が過ぎてしまう。

=}{*}

=}{*}

豆知識 では,「チキン例外」という消極的な例外処理を採用しており,通常の try-catch-throw にかえて try-fry-fly という予約語を使う。noexcept に相当するのは dry である。なぜチキンなのか?空飛ぶチキン(臆病者)は例外だからだ。

=}{*}

豆知識 では,自身が所有権を持つ面触れ(メンバー)変数own_,所有権を持たない指示体ポインター)には dear_ という接頭子を使う。Cμ では this-> が my と書けるので,my own_var, my dear_var などと書ける。ちなみに my way() という特殊記法もある。なお通常 my は省略出来る。

=}{*}

=}{my}

=}{*}

C++ の語彙改良を行い, で文法改良に進む。そこから C の伝統にとらわれない (ディーシグマ,ドグマ)に進む。この計画を CnD(キャンディ,Cμ/Cν and Dσ )と呼ぶ。

=}{*}

=}{*}

の最初の成功は,実は Cμ という名前だったんじゃないかと思う。C のように簡略化し過ぎて結局「C 言語」みたいな書き方をしなければならない言語や C++C のように扱い辛い記号を使っている言語とも違い,簡潔かつ代用字のあるギリシャ文字を使うというのは良いアイデアだったと思う。ちなみに Cμ の次世代言語は (シーニュー)。μ の次が ν。これも完璧。

=}{*}

=}{*}

,圧倒的に手早く美しく書ける Better C++ としてだけでも,それなりの価値があると思う。

=}{*}

最近の 改良が凄まじ過ぎてちょっと泣きそうになる。

=}{*}

これで,魔法引括マジック インクルード)に再帰引括機能でも付ければ,換配コンパイル)時とはいえかなり柔軟な運用が可能になる。

=}{*}

もう一つ,交度(コード)断片拡張子も悩んでいたのだが,これも .u.* の形で上手く解決出来る。例えば,設定用の交度断片は main.u.cfg のような拡張子を付けておけばいい。

=}{*}

=}{*}

昨日,素譜ソースファイル)と頭譜ヘッダーファイル)をあえて分化させずに使う手法について触れたが, ではこれに拡張子 .u.h を当てることにした。見たままの意味。

=}{*}

=}{*}

私が を作らなければ,希哲館訳語を作らなければ,デルンの開発はここまで成功していない。

=}{*}

と言ってしまうくらい,を感じている。

=}{*}

行き詰まらず,ちゃんと蓄積し続けられる論組(プログラミング)環境って,本当に贅沢だなと思う。

=}{*}

本当に,つい最近まで, がこれほど優秀論組(プログラミング)言語だとは自分でも思っていなかった。理腑リファクタリング)にも最適化にも強すぎる。

=}{*}

私はもうすでに 以外でまともに論組プログラミング)出来ない身体になってしまっている……。

=}{*}

を公開したら,Cμ 革命が起きてしまうかもしれない。

=}{*}

この辺も,デルン大理腑リファクタリング),大最適化大成功したことで確信出来るようになった。設計にとにかく助けられた。

=}{*}

の場合,型名が無茶苦茶書きやすいおかげで,楽で分かりやすいのに安全,という奇跡的な状況が生まれている。

=}{*}

=}{*}

設計思想を貫いているのは「全体最適化」の観点だ。C++スマート ポインターが「複雑さの問題を複雑さで解決しようとする」罠にハマったのに対し,スウィート ポインターは徹底的に記憶管理単純化した。

=}{*}

ただ,これも完成度が高過ぎて,突っ込みどころが多過ぎる V 言語のような謎の人気にはなりそうもない。これも難しいところだよな。

=}{*}

論組(プログラミング)言語の設計をほぼ素人状態から始め,記憶管理だの排他制御だのの機構を独自に設計して,世界初のシンメディア(symmedia )として実装したデルンがキビキビ安定して動いているということがいまだに自分で信じられん……。

=}{*}{*}

=}{*}

昨日は void にあたる予約語 no_t の正式採用決定,今日は Cμ における排他制御仕様の洗練など, も一般公開に向けて着々と整備が進む。

=}{*}

は徹底的に「速読性」と「速記性」を追求してきた。そして頭で理解する前に直感的に反応出来る交度(コード)体系が出来上がった。これはデルン開発を強力に後押ししている。

=}{*}

デルン大理腑リファクタリング),大最適化が想像以上の成功を収めたのは,C++ 相当の性能と柔軟性を持つ静的言語でありながら極めて簡潔な表現が出来るという の特性によるところが大きいと思う。

=}{*}

が最高なのは,スクリプト言語以上の書きやすさと C++速さを兼ね備えているところ。これがなければデルン開発はままならなかった。

=}{*}

要は における如零(NULL)許容型なのだが,例えばこんな感じで使える。

iffy_< s_T > s ( nil ); // 文字列の如零許容型

out << iffy( s, "bye" ) << v; // s が nil なので "bye" が出力

s = "good";

out << iffy( s, "bye" ) << v; // "good" が出力

=}{*}

iffy_ 型と iffy(),かなり前に実装したのだが,今になって凄い発明をしていた気がする。

=}{*}

デルン,なんでこんなに上手く動いているのかたまに自分でも不思議になる。C++ を無茶苦茶に改造して,記憶管理機構勒(ロック)機構みたいな割とデリケートな所から自作して,多糸マルチスレッドFastCGI記憶内隠しインメモリキャッシュ)とか,全部それなりに安定して動いている。

=}{*}

そもそも, 自体がスイートポインター(SweeP)なんて独自の記憶管理機構を採用した無茶な代物なのに,それを出場DB)に組み込んでしまえ,という時点でまず狂っていた。その狂気の先にこの脅威の速度安定性保守性がある。

=}{*}

それ以前は,自分で作っておきながらどこか半信半疑みたいなところがあった。そりゃ C++ を改造して独自言語にしてデルンなんて未知の司組システム)を実装する,なんて仕事だからどこに問題があるか分かったもんじゃなかった。実装なのか設計なのか要素技術なのか,そもそも実現不可能なのかとか。

=}{*}

デルン大最適化で良かったことの一つは, など希哲社基盤技術への信頼感が増したこと。慢性的な重さが解消したら,この速度安定性サイト運用出来て,しかも快適に保守出来ているということが奇跡のように思える。

=}{*}

ウェブ開発では捌き手サーバーサイド)の言語の性能は大きな問題ではない,とよく言われるが,これは実装内容がある程度無難なものに限る。実験的な実装を色々試したい場合,交度コード)は混乱してどうしても非効率になってくるので,それを補完してくれる言語性能は重要になる。これがデルン開発C++ 並みの速度に拘った主な理由。

=}{*}

PHPデルンプロトタイプ実装を作った時,出与えデータ)がほとんど無い状態なのに実用に耐えない速度だった。それを (当時はほとんど C++)で書き直し,自分で使いながら最低限の速度を確保するように更新してきた。直感的に早まった最適化を避けてきたというのもあるし,ここ最近になるまで方向性に揺らぎがあったというのもある。

=}{*}

月庭kitetu.com)で使っている虎哲*イチデルン実装)は,言語C++ 互換の FastCGIマルチスレッド実装,プロセス数も調整出来るようにしてあって,PostgreSQL外充て手続きストアドプロシージャ)まで Cμ で開発している。最適化を進めればどこまでも速くなる。

=}{*}

これまでの作業と少し質が違うな,と感じるのは,HTMLCSSJavaScript も,整合性を保証してくれないからだな……。PostgreSQL の厳密性にいかに助けられていたか。

=}{*}

だろうなとは思っていたが,やっぱり主犯は 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)という技術と で,今日から世界に先駆けた「意味付け論組」(セマンティック・プログラミング)の実証実験を始めることになった。

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