Project Schliemann
主要スクリプト言語を、NetBeans IDE上で、すべてカバーしようという意欲的プロジェクト。扱う言語数は、100を超えそう。
欧州の各国語をはじめ、アラビア語、トルコ語まで使いこなした考古学者、シュリーマンにちなんだ命名とのこと。ちょっとベタかな。
ただ、習得言語のリストをいくら並べても、人が幼児期に覚えた母国語に立脚して思考することは、言うまでもないでしょう。トロイア戦争の話は、そもそも、子供の頃ドイツ語で読み、憧れたわけですし。
スクリプトもいいですが、希望を言えば、むしろ C++や、Dなどネィティブ言語を、こってりやって欲しいんですがね。
関連記事
アイデンティティーとは言語である
コフニスト
高松塚壁画破損、文化庁もみ消し
Erik Homburger Erikson
エリクソンがそう表現したかどうか知りませんが、「私を私たらしめ一貫性を与えているもの」とは、つきつめれば、国籍でも、民族でも、人種でも、所属団体でもなく、その人物が慣れ親しんだ「言語」である、と筆者は考えています。
このブログで、主題として、自然言語及び人工言語を、最も強調するのは、そう考えているからです。
それゆえ、「匿名」であろうがなかろうが、ある人物が書き、話す言葉を知れば、そのアイデンティティは、自然にあきらかになると言えます。
例えば、米国 SUNが「アイデンティティ管理」という概念を前面に打ち出し、「統制」という表現を、注意深く避けている点については、いずれ詳述予定。
(XXXな社長が「内部統制」を連呼している日本出張所は、全くお話にならない)
以上、arclamp.jp アークランプを読んでの感想
半端じゃないですね、これは。
Visual Thesaurus
図柄は、いわゆるハイパーボリックツリー。枝に針金のような弾性をつけています。各ノードをクリックするっと、その語を中心とした類義語ツリーに次々遷移します。使い心地は快適、高速です。
右クリックメニューがあり、発音の実音声が聴けます。英/仏/独/伊/オランダ/スペイン語に対応しています。CJK は、ありません。
試用版では使えませんが、語句のイメージ検索など、その他関連メニューも充実しているようです。
国防総省が関係しているような雰囲気すら感じます。
「スワップ」という用語は、IT分野で"普通名詞化"しているので、区別が紛らわしい用語です。
例えば、最近、Sun の"Computational Theologist"で VM と Java 言語仕様に関わる Gilad Bracha 氏が、動的言語対応に「hot swapping」を導入する方針を語っています。
Sun Digging Deep for Dynamic Language Support
この記事で具体的に取り上げているのが、Invokedynamic と hot swapping の2種のバイトコード技術です。
Invokedynamic については、Mustang に導入される JSR 292 に含まれ、周知の事実です。
もう一つの hot swapping は、通常 USB 等のように、ハードウエアを自由に「取り外し可能」とするシステムの呼称ですが、言語プロセッサの技術用語としても使われます。LISP、 APL、Smalltalk等の言語で、既に実装済みだそうです。
Hot Swapping wikipedia
hot-swap code objects
トレードオフが大きいので、JSRに292には含まれませんが、導入を検討しているとのこと。
日本語を「膠着語」に分類することが一般化しています。文法上、助詞や助動詞が、語句を"接着"する「膠(にかわ)」に例えられています。
外国人にとって、この膠を使いこなすことは、一苦労のようです。その意味的な違いを明確に認識できません。例えば、生まれついての日本人は、助詞「は」「が」を造作なく使い分けますが、彼らには出来ません。
困ったことに、使用者である私たち自身が、その論理的相違を、あまりすっきり説明できません。ヨーロッパの言語で、欧米人が「冠詞」や「前置詞」の使い分けを、明快に説明できないのと同様です。
「言語の秘密」が、その部分に潜んでいるのでしょう。バイオ分野でも、似たような展開になっているようです。
非コーディングRNA(noncoding RNA)
今月の「月刊現代」で、立花隆氏が詳しくリポートしています。
「安全性」と「信頼性」が、これからいっそう、プログラミング高級言語の"淘汰条件"となりそうです。
JSR 302: Safety Critical Java Technology
JSR 303: Bean Validation
Java が C++ に勝る美点は、この点です。
おー出ましたね。
JavaCCでスクリプト言語を作成する 第2回
じっくり読ませてもらいます。
拡張 BNF の Java GUI ツールも SourceForge から出ましたね。
BNF for Java Project
ここは、ソースの UML も公開している良心的なサイトです。
Class Diagrams
NetBeansプラグインも欲しくなって来ました。
「創るJava」の著者、きしだなおき氏が、JavaCC を用いてオリジナルのプログラム言語を作成する連載を CodeZine で開始しましたね。
大変わかりやすい解説になっています。
「NetBeans のソースを、現実逃避に読んでいた」という、きしだ氏がいつのまに生まれ変わったのでしょう。
ソフトウエア分野の最重要基礎を扱う、このような意欲的な連載は、過去に例がありません。
続きを楽しみにしています。
「チョムスキー階層(Chomsky Hierarchy)」です。
簡易的な図です。表で示すと以下のようになります。
| 文法階層 | 文法 | 言語 | オートマトン |
|---|---|---|---|
| タイプ-0 | -- | 帰納的可算 | チューリングマシン |
| タイプ-1 | 文脈依存 | 文脈依存 | 線形拘束オートマトン |
| タイプ-2 | 文脈自由 | 文脈自由 | プッシュダウン・オートマトン |
| タイプ-3 | 正規 | 正規 | 有限オートマトン |
これを「ドグマ」と呼ぶのは、まだちょっと早いようです。これらの文法の範疇は、数学的に厳密に定義されています。専門学校の授業ではありませんが、基本的なことも押さえておきましょう。
形式言語は、4つに分類されます。Java などの一般のプログラム言語の文法は、Type-2 文脈自由文法 で規定されます。正規表現などは Type-3 です。
Type-2 文脈自由文法 は、BNF (Backus-Naur Form)で厳密に定義できます。ところが、このBNFじたいに統一した記法が、確立していません。列記すると、例えば、下表のようになります。
| BNFの方言 |
|---|
| ALGOL 60 BNF |
| XML 1.0 EBNF |
| ISO/IEC 14977 BNF |
| RFC2234 ABNF |
| RFC 822 BNF |
| RFC 2616 プロトコルBNF |
| Ruby 疑似BNF |
| Spirit BNF |
| LBNF |
| BS6154 |
このうち、もっとも汎用性を獲得しそうなのが、XMLを規定したEBNFです。正規表現的な記法が取り入れられています。JavaCC でも、このEBNFに類似したBNFを応用して文法ファイルを定義しているようです。とりあえずは、このBNFに慣れておくとよいのでしょうね。
あらためて「Java」について考えてみると、Javaは、IT 分野で10年来続いている「パラダイムシフト」の一種だと言えます。
これを「現象」と呼んだり、または「イノベーション」と呼ぶかは、自由でしょう。
その要素は多岐にわたり、オブジェクト指向であったり、分散指向であったりするわけですが、仕様書が規定する「言語としてのJava」は、これらのテクノロジー変革と密接に結びついています。
日本語を理解し使いこなすことが、重要な「日本人の証明」であるように、Java言語とその周辺技術を理解することは、これら「新潮流」の本質を理解することに他なりません。
変革の波は、いぜん激しく、最近では「言語仕様」としてのJavaが、機能的に「不足する」局面すら発生しています。もし、Javaに取って代わる言語が現れるとすれば、それらの齟齬を埋めるものとなるはずです。
今のところは、たとえ仕様を変えても、その言語は Java 的にならざるをえません。マイクロソフトが C# を登場させ力を入れているのを見ても、それは、明らかでしょう。
以上、当たり前のことですが「言語など何でもよい」と書いたブログを多く見かけたので、メモしておきます。
JavaCC 4.0 がリリースされましたね。build.xml 付のソースは、そのままNB5 に取り込みビルドできます。
tools.jarが「見あたらない」のは、いつものことですね。NB5 の Ant は v1.65 です。
プロジェクトプロパティは、Ant 既存設定用の画面になります。
ランタイム指定欄が消えます。最新版のJavaCCでも、ビルド/実行は、JDK1.4ベースのままです。Tiger 対応はまだなされていません。ちょっと、がっかりしますね。
"宣伝部隊"は「SE5.0 を使おう」キャンペーンに忙しいようですが、巷のプロジェクトに呼びかけるより、まず足元を固めたほうが良いのでは?
文法ファイルとしての「Java1.5」は提供されています。
Java1.5.zip/JDK1_5 grammar & AST
NB5 でのビルドについては、Maven1 のプラグインも出ていますね。Maven2 の正式リリースも近いようです。
Mevenide for Netbeans 1.0 final
Alternative Karte | Automata' ボキャブラリ | BPM「転生」を追跡する | Campas Cafe | Clip line | Cool Data Base | COSMOS 光絶対論 | CUI Nostalgie | CUI Tips | ECダイアグラムの研究 | Global POPs Forever | Go up, Mash up | GUIスレッドの正体 | humanディストリビュート | implements ヒストリー | Instrumental Geek | IntelliJ | Java Printing | Java UI 初めての方へ | Java4D | Java一般 | Java外語学院 | Java定石 | Java教徒の乱 | Java法典.etc | JPOPを聴け! | Mac OS | Movies ラン Anywhere | Mr.Joshua Blochとの対話 | MS Win OS | neighbors.org | NetBeans EJB開発 | NetBeans UI 開発 | NetBeans その他 Tips | NetBeans コーディング | NetBeans サービス開発 | NetBeans デバッギング | NetBeans バージョン管理 | NetBeans ブラウザアプリ開発 | NetBeans モジュール批評 | NetBeans モジュール開発 | Persistance バラエティ | Pragmatic Struct | public class Stage | RealTime, Real World | Robot Duke | SOAの諸相 | Social Context | SportsTM | Swing パラレル プロセス | Swing「スタイル付き」の正体 | Ubiquitous文学 | UI Deployment | UNIX OS | Winning リファクタリング | 「バザール」メディアの胎動 | そして、わが祖国 | エコノミック Duke | クライアントセキュリティの追求 | ケミカル Attr | コギト, エルゴ graph | ダウンロード | テキストおたくよ、去れ | デザインお手本渉猟 | ニュートン遊戯 | ハードウエア一般 | バイオJava | バイトコードJava | フリー音源の威力 | ミリタリー指向言語 | モバイルグラフィックスの美学 | ユニコード音楽記号 | 一般 UI 批評 | 一般動的デザイン書庫 | 世評 | 地球系.jnlp | 数と算法箱 | 新世紀 Esperanto | 水面下プロトコルに"潜る" | 生き物 Resource | 華麗なるOO | 言語プロセッサの野望 | 量子Object.class
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |