タグ

ブックマーク / ufcpp.net (5)

  • 勉強用ページ

    using static System.Console; class Welcome { /// <summary> /// saying hello to all visitors and welcome. /// </summary> /// <param name="args">visitors</param> public static void Main(string[] args) { foreach(string visitor in args) { WriteLine($"Hello {visitor}."); } WriteLine("Welcome to my web page."); } } C# によるプログラミング入門 コンピュータの基礎知識 アルゴリズムとデータ構造 ブログ ようこそ ++C++; へ。 C#・情報工学を中心に勉強用ページとブログを載せています。

    勉強用ページ
  • DSL (Domain Specific Language)

    プログラミング言語は、目的を絞れば絞るほど、その目的に対しては強力、かつ、簡潔に書ける文法を提供できます。その一方で、用途ごとに異なるプログラミング言語があるというのも、作るコストも学習するコストも高くなりすぎます。 よく目にするプログラミング言語はだいたい汎用用途(汎用プログラミング言語)です。一方の、目的を絞ったプログラミング言語をドメイン特化言語(domain specific language、略してDSL)といいます。 ここでは、汎用/ドメイン特化それぞれの利点や、その背景にある「モデル化」の考え方、汎用プログラミング言語とDSLとの間の関係などについて説明していきます。

    DSL (Domain Specific Language)
  • DSL へのアプローチ(外部言語) (DSL (Domain Specific Language))

    概要 前節では、「DSL を作ってから、それを使って開発」というのがはやりつつありますが、 言語作りといってもそれほど大げさな話ではないというような話をしました。 また、DSL のアプローチとして、 「ちょっと凝った設定ファイル」とか「ちょっと凝ったライブラリ」というような流れがあるということも話しました。 このページでは、「ちょっと凝った設定ファイル」の方、 すなわち、外部言語的なアプローチを、 具体例を挙げて紹介します。 ユーザが自由に変えれる設定や、 ユーザには触らせないにしてもプログラム完成後にこまごまと調整したい部分は、 たいていは、設定ファイルとしてプログラムから分離します。 その設定ファイルですが、 単に値を記録しておくとかだけではなく、 条件分岐やらなんやら、凝ったことがしたい場合が時々あって、 そうなってくると、徐々に1つのプログラミング言語的なものになってきます。 ある

  • DSL へのアプローチ(内部言語) (モデリング言語)

    概要 前節では、「DSL を作ってから、それを使って開発」というのがはやりつつありますが、 言語作りといってもそれほど大げさな話ではないというような話をしました。 また、DSL のアプローチとして、 「ちょっと凝った設定ファイル」とか「ちょっと凝ったライブラリ」というような流れがあるということも話しました。 このページでは、「ちょっと凝ったライブラリ」の方、 すなわち、内部言語的なアプローチを、 具体例を挙げて紹介します。 何かプログラムを作る際、 まずはライブラリを整備してからプログラムを作ることが多々あります。 そして、 ライブラリを作っていると、 元言語の文法の制約を越えたいと思うことがときどきあります。 時には、マクロやプリプロセスを使って無理やり言語の制約を越えたものを作ろうとするライブラリもあります。 でも、そういうやり方の場合、 無理やり感はぬぐえないことが多くて、 最終的に

  • DSL 概要 (DSL (Domain Specific Language))

    最近は、互いの利点・欠点を補うために、 両者を混在させた開発というのがはやりつつあります。 言語といっても・・・ まあ、専用言語といっても、そんなたいした話ではないんですね。 そりゃ、中には、コンパイラ作りからやるような格的な人もいますけど。 多くの場合は、「設定ファイル」とか「ライブラリ」程度のものです。 有名なところでは、Apache の設定ファイルなんかは結構立派な構文を持っていますし、 emacs の設定にいたっては LISP 言語で書きます。 ああいうのも、一種の DSL です。 ということで、 まず、「設定ファイル」とか「ライブラリ」が DSL の第1歩という話から始めてみたいと思います。 抽象定義と具象定義 DSL と設定ファイル、ライブラリの関係性を話す前に、 ちょっと補足的な説明をしておきます。 まあ、アプリケーションの設定を外部ファイルに持ったりすることは結構あるわけ

  • 1