問題タブ [metalanguage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
206 参照

javascript - 同一のクライアント側とサーバー側のコードを生成するためにMVCからモデルを記述するMetalanaguage

オフラインモード(google-gears + javascript)およびサーバーサイドsqlite +(php / ruby​​ / javaなど)で使用する予定のアプリケーションの動作を説明するための強力なメタ言語を探しており、説明するのに適した形式を探していますターゲット言語に簡単に変換できるモデルの動作。私は完全に軌道に乗っていないのですか、そしてもっと良い方法がありますか?

0 投票する
1 に答える
347 参照

business-logic - 異なるプログラミング言語間で共通のビジネス ロジックを共有するための戦略

Visual Dataflex で実装された複雑なビジネス ロジックを備えたモノリシック ビジネス アプリケーションを使用して、特定の機能が他のプログラミング言語 (主に .NET) で記述されているため、プログラミング言語間でビジネス ロジックを維持するという課題に直面しています。

そのため、不一致を回避するために、異なるプログラミング言語の実装間でビジネス ロジックを「同期」するための戦略を探しています。重複を避けることはプラスですが、これは自動テストによって補われる可能性があります。

編集: SOA は素晴らしい提案です。しかし、サービスの速度が不十分な場合はどうすればよいでしょうか?

編集 2:メタ言語を使用するための提案はありますか?

0 投票する
3 に答える
1510 参照

php - PHPにコンパイルするメタ言語を実装するための最良の方法

私はしばらくの間、PHPにコンパイルできるメタ言語の仕様/キッチンシンクに取り組んできました。今、私は物を作り始めたいと思います。PHP_LexergeneratorとPHP_Parsergeneratorを使用して小さなDSLを実装する前は、それらは非常にうまく機能していましたが、これまでこの規模のものを構築したことはありません。私はあなたが大いに持っているかもしれないフィードバック/提案/経験をいただければ幸いです!

スペックをhttp://pastebin.com/613mFGsBに貼り付けました。

0 投票する
2 に答える
115 参照

perl - @result_list = grep {test($ _)} @unfiltered_list他の言語では?

私がPerlで気に入っている機能の1つは、単純な構文でリストからコンテンツをフィルタリングするLISPに触発された(?)機能です。

ここで、テスト関数は@unfiltered_listのすべてのアイテムに適用され、@result_listを生成します。

それは他の言語にも存在する機能ですか?(PHP?Python?)そうでなければ、そのようなコードを通して私が何を意味するのかについて、非Perlers(学生)に簡単にヒントを与えることができますか?

解決策:ウィキペディアで見られるようにfilter、ほとんどの言語で。先端をありがとう、おい。

0 投票する
2 に答える
788 参照

javascript - HTMLアプリケーションのワークフローを定義するメタ言語

HTMLアプリケーションのワークフローを独立して表現する方法を探しています。ユーザーがフォームに特定の値を入力すると、別のフォームが表示されます。さらに、値が入力されている場合は、この子フォームにこれらの子フォームの新しい部分を表示する必要があります。

HTMLフォーム、これらのフォームのHTML要素、およびこれらの要素の値の間の関係を表現したいと思います。

テーブルフィールドやテーブルリレーションシップなどのデータベース情報に基づいて、Doctrineを介して管理し、ExtJSフォームを生成します。

ここで、ExtJS(JavaScript)コードを使用してアプリケーションフローを直接ハードコーディングしないように、ExtJSフォームにいくつかのフローロジックを導入する必要があります。

事前定義された構成ファイルに基づいて、実行時に適切なJavaScriptコードを生成したいと思います。

例えば:

Xフォームがあります

さらに、ユーザーが入力フィールド に何かを入力した場合にのみ、フォームの一部を表示したい

次に、ユーザーがフォーム要素に入力した値が事前定義された条件を通過した場合にのみフォームを表示したい

最後に、ユーザーが親フォームに挿入した値に基づいて、入力要素のルールを設定し、入力範囲(可能な値)を制限します。

これがワークフローの例です

ここに画像の説明を入力してください

そのような関係を定義するメタ言語はすでにありますか?

そのようなことを実現するためのあなたのアプローチは何でしょうか?

よろしく、

J。

0 投票する
2 に答える
289 参照

algorithm - ユーザー定義ツリーの描画

私はかなり抽象的なツリー描画システムを作成していますが、必要なすべての描画機能を形式化するのに非常に苦労しています。残念ながら私の検索は無駄だったので、誰かがこのトピックについて読むべきものを私に指摘してくれたらとてもありがたいです.

木を表示するためのメタ言語を探しています/作成しようとしています。これらのツリーでは、各ノードは、ユーザー定義のグラフィカル表現を持つユーザー定義オブジェクトのインスタンスです。

各オブジェクトは、グラフィカルな表現である名前に関連付けられており、有限数の子 ( 0+ ) を持ち、オブジェクト自体であることが知られています。オブジェクトの再帰は許可されていません。各オブジェクトには、(ユーザー定義の方法で) グラフィック表現を変更する条件をトリガーするために使用されるユーザー定義のオプションがあります。一部のオプションは自動的に適用されますが、他のオプションはユーザーの操作が必要になる場合があります (「このオブジェクトを A または B にしますか?」)。これにより、オブジェクト ツリーをインスタンス化する必要がある理由が説明されます。

オブジェクト ツリーがインスタンス化されると、常習的なユーザー入力なしで描画する必要があり、ここで問題が発生します。オブジェクト ツリーのインスタンス化により、各オブジェクトに特定のグラフィック表現が割り当てられます (これを Symbol と呼びましょう)。ただし、割り当てはインスタンス化の前にはわかりません。異なるオブジェクトが同じシンボルを持つこともあり、オブジェクトのオプションに応じて異なる方法で描画される場合があります。

このため、シンボルはオブジェクトとは別に定義する必要があり、ユーザー指定の規則に従って、シンボル自体 (および割り当てられた子) を正しく描画できる一連の抽象メカニズムが必要です。

各シンボルは、画像 (または画像なし) と有限数の添付ファイルによって表されます。アタッチメントは、オブジェクトの子のシンボルを描画する場所を描画コードに指示する、シンボルの座標に対する相対位置です。それらのそれぞれには、使用される特定の条件があります (たとえば、このアタッチメントは、特定のオプションを持つシンボルによってのみ使用されるか、または N 個のシンボルが既に描画されている場合、既に描画されたシンボルとの衝突がないなど)。

アルゴリズムは、優先度によって指定された順序に従って、各オブジェクトの子に対して空きの添付ファイルを見つける必要があります。子の添付ファイルを見つけることができない場合、ユーザーは自動再試行を許可するルールを事前に指定できますが、それらも失敗すると、ツリーの描画全体が失敗します。これらのルールのいくつかは、中毒性のある子シンボルを追加したり、子シンボルを他の子に割り当てたりする (それらを grandChildren にする) などを許可します。

私の主な問題は、Symbol がアクセスできる変数の数がかなり多いことです。各シンボルは、このメタ言語を使用して定義する必要があることを再度思い出しますが、その子シンボルの情報にアクセスできる必要があります (デッドロックや循環参照を避けるために、他のシンボルにはアクセスできません)。すべての子のシンボルの高さと幅の合計に等しいシンボル、または同じ画像を使用するシンボルなど。これは、ユーザーがシンボルのルールを最終的な構造とは別に記述することにも起因します。

同時に、ツリーは上から下に描画する必要があるため、これらの情報の一部は最初から利用できない場合があり、大量のバックトラックが必要になる場合があります。

また、これらはすべて、形式化して解析できるメタ言語内で定義する必要があるため、言語に最大限の自由度を与えるためにメタ言語が必要とする機能を定義する必要があります。過度に複雑にならないように user を記述します (これはあいまいな制限ですが、基本的には Tikz をメタ言語のサブセットとして使用したくありません)。しかし、私はそれらを特定するのにかなり苦労しています。

前に言ったように、この種のトピックや、このようなプロジェクトを完了する方法についての情報を探しています。メタ言語を完全に完成させることができれば、コードを実装してこれらすべてを実行するのにそれほど問題はないと思います。私の問題はほとんど理論的なものです。

0 投票する
1 に答える
13230 参照

list - ML での foldl の理解

文字列のリストを受け取り、リスト内の最大の文字列を見つける関数を作成する必要があります。問題は、List.foldl を使用してリストを反復処理する必要があり、List,foldl のライブラリ関数以外の再帰呼び出しを使用できないことです。

私が書いた

私の解釈は次 のとおりです

。リストの先頭項目に対するアキュムレータを表します。-初期アキュムレータを空の文字列に設定し、初期比較値を高次関数によって渡された初期リストの先頭に設定します





ただし、型チェックは行いません。

私の問題は、 List.foldl 関数自体と、そのパラメーターを正確に読み取る方法を理解することにあると思います。誰か説明をお願いできますか?

0 投票する
0 に答える
191 参照

bnf - コンピュータ サイエンス (特に EBNF を使用するメタ言語) では、記号 -> と <- には特定の意味がありますか?

これが SO のドメインにない場合は申し訳ありません - それは少し高レベル/理論的です。カスタム言語仕様 (興味がある場合は ACELandic と呼ばれます) を勉強しています。また、拡張バッカス・ナウア形式 (EBNF ) に基づいています。

次のような記号が表示されます

それは本当に私を混乱させます。これらは標準化された記号ですか? 私はHaskellでこのようなことを思い出しますが、これについて頭を悩ませることはできません..ヒントやアドバイスをいただければ幸いです。

ここに画像の説明を入力

0 投票する
1 に答える
167 参照

c# - コード生成で C# にキーワードを追加しますか?

新しいキーワード (またはキーワードのような構文) を追加して C# とやり取りしたいドメイン固有言語があります。属性を使用するだけでは不十分で (メソッド本体では使用できません)、別のものにコンパイルされる「有効な」C# 表記にそれを押し込むのは見苦しく、DSL との類推が台無しになります (および DSL からの変換C# への表記は自明ではないため、毎回 C# を記述するだけでは問題になりません)。

.cs ファイルを解析し、それをコンパイル可能な合法的で自明でない C# コードに変換する方法は既にあります。

問題は、DSL を定義し、解析し、有効な C# に変換するというすべての作業を実行できたとしても、Visual Studio が理解できない表記法を使用させてくれないことです。赤い波線を追加するだけで、「シンボルを解決できません」というエラーが発生し、その後は適切に解析できないことがよくあります。

Visual Studio に分析で特定の文字列を強制的に無視させる方法はありますか? 私はビジュアルスタジオのプラグインを見てきましたが、構文の強調表示やその他のことはできますが、解析方法がわからないものを強制的に無視することはできません(何らかの方法が欠けていない限り)確かに可能です)。

私はRoslynのものをすくい取ってきましたが、そこでこれを行う方法もありません。(繰り返しますが、何かが欠けている可能性があります。優れたドキュメントがないようです。)

0 投票する
1 に答える
346 参照

ide - メタ言語でプログラミングするための IDE?

私は最近、メタ言語を学び始めました。そのためのjetbrains IDEはありますか? そうでない場合、メタ言語プログラミングに最適な IDE はどれですか。オープンソースである必要はありません。ありがとう。