Braid言語

Braid言語のページへようこそ。

Braid言語はデータ記述に適したオブジェクト指向関数型プログラミング言語です。Javascript言語のように簡潔な構文ですが、Javascript言語とは違い強力な型推論で記述の整合性を検査できます。まずはその簡潔さを見てみましょう。次の例は、人ごとのデータを作り、各人のために「名前 is 年齢 years old.」という形式の文字列を作るプログラムです。このプログラムにはほとんど型の指定がありませんが、代入元と代入先で型が一致しなければエラーが報告されます。

{
  person = function(name, age) {
    name:Text,
    age:Integer32,
    _ = self
  },
  persons = [
    person("ami"  , 12),
    person("yayoi", 13),
    person("iori" , 14) 
  ],
  _ = persons into name + " is " + @age + " years old."
}._

Braid言語の用途は「データを簡潔に記述する点」「その記述にツールが意味を与える点」でXML言語と同じですが、「データの関係を扱う構文を持っている点」でより幅広いと言えます。データの関係を扱う構文は、仕様のように複雑な関係を持つデータを記述する際に役立ちますが、設定ファイルのように単純なデータを記述する場合であっても役立ちます。例えば、データの関係を扱う構文は連動して変化する設定や繰り返される設定を簡潔にします。XML言語ではデータの関係を扱う構文を特定のツールのための内部構文として定義するため、拡張された言語が増えるたびに学習コストが増加します。それだけでなく、ツールごとに定義される内部構文はリファクタリングツールのような横断的なツールを作ることを難しくします。このバベルの塔の災厄とも言える状況を回避するために、Braid言語はそれ自体でデータの関係を扱う構文を持っています。Braid言語がデータの関係を扱う構文を持つということは記述に意味を与えることを難しくしますが、次に説明する工夫によって難しさを軽減します。

Braid言語の構文はJavascript言語の構文を手本にしています。Javascript言語は広く知られているだけではなく、簡潔に記述できて、意味が分かりやすいからです。ただし、Javascript言語はXML言語と同じ用途で使うには記述の解析が難しいという問題があります。JSON言語はデータの関係を扱う構文をJavascript言語から取り除くことで問題を解決ますが、それではXML言語と同じ状況に陥ります。それこで、Braid言語は副作用を伴わなず静的な型を推論できる構文だけで構成することで問題を解決します。

Braid言語の応用製品

Braid言語の応用製品は次の2つです。

BraidDB
Braid言語をデータベースの問い合わせに応用した製品です。Braid言語の豊かな表現力がSQL言語では扱いづらい(階層や参照で構成された複雑な)データに対する問い合わせを扱いやすくし、Braid言語の分析しやすさが問い合わせの性能向上に役立っています。
BraidForm
Braid言語を画面の定義に応用した製品です。Braid言語の簡潔な表現力が複雑に絡み合う入力項目の関係を分かりやすくし、Braid言語の分析のしやすさが連動する項目の順計算や逆計算を容易にします。

他の言語との比較

準備

各応用製品の準備を参照してください。

チュートリアル

準備中です。興味がある方はお問い合わせください。

言語仕様

準備中です。興味がある方はお問い合わせください。

API仕様

準備中です。興味がある方はお問い合わせください。


ホーム | RSS | 採用情報 | 会社情報