問題タブ [erlang]
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.
erlang - 「BIF」の適切な erlang リファレンスはどこにありますか?
私は既にプログラミング Erlang の本を持っており、http://www.erlang.org/サイトを使用しています。しかし、リスト: 複製
のような BIF やモジュールの適切なリファレンス サイトが見つかりません。プログラミングErlangの本の終わりから簡単な説明を見つけましたが、もっと必要です;((パラメータ、サンプルコードなどについて)
誰かがこれについて私を助けることができますか?
ありがとう
compiler-construction - Erlang 型システム
私は、Erlang プログラムのさまざまなタイピング方法を探して Web を探し回っていますが、いくつかあるようです...確かな情報源を見つけるのはやや難しいですが、次のような実用的な情報を探しています。
1. -specs
- これはかなり魅力的に見えます。いくつかの場所では、関連する -specs ディレクティブを持つ関数がコンパイル時にチェックされると言及されています(正しい型の使用のために)...使用方法に関する詳細情報を見つけることができないようです(どのツールを使用するか-Dialyzer、タイプ?)。フォームの関数宣言からこれらの「仕様」を生成する小さなパーサー/コード生成を作成することに本当に熱心です
抽象-spec
型 (ユーザー宣言型 - "Car" 型 -
2.ここに記載されている-deftype
ディレクティブ
入力を開始してコンパイル時にチェックできるようになれば、Erlang は私にとって非常に強力になるでしょう。上記のパーサー/コード生成の実行時は、出力ソースコードでガード タイプ チェックを生成します。
erlang - Erlang フレーム - 辞書データ型
Erlang への「フレーム」データ型の導入に関するいくつかのテキストに出くわしました。これは基本的に、他の言語で一般的な辞書 (連想配列) 型です... 実行時に (レコードとは異なり) 保持されるものです...このイニシアチブはどこにありますか?R13で実装されますか?R14? 非常に便利です...私は「dict」を頻繁に使用しましたが、より軽量な組み込みのデータ型の方がはるかにクールです
ありがとう
arrays - Erlang での 2 (多) 次元配列の使用
最近では、Erlang でProject Eulerの問題を解決しています。
私は最初から C++ プログラマーなので、どうしても 2 次元配列を使ってコードを書きたくなることがあります。
私の考えの 1 つは、次のようなタプルとリストを使用することです。
Erlang で多次元配列を実装する良い方法はありますか?
concurrency - 並列/並行アーキテクチャの使用を促進するのはどのような課題ですか?
私は、スタックレス pythonやerlangなど、並列処理や並行処理が組み込まれている言語を使用できる可能性に非常に興奮しています。スケーラビリティとパフォーマンスを実現するための良い/簡単な方法です。
ただし、私は線形/シリアル/OOP/機能的な方法でソリューションを考えることに慣れているため、同時実行を使用する価値のある方法でドメインの問題をキャストするのに苦労しています。多くのことを忘れる必要があるだけだと思いますが、次のことを尋ねると思いました。
- スタックレスやアーランなどでかなり大きなものを実装しましたか?
- なぜそれが良い選択だったのですか?良い選択でしたか?もう一度やりますか?
- あなたの問題のどのような特徴が、並行/並列が正しかったことを意味していますか?
- 並行性/並列性を利用するために、既存の問題を再キャストしましたか? と
- もしそうなら、どのように?
彼らが喜んで共有したい経験はありますか?
erlang - Erlang は何で書かれていますか?
Ericsson の Erlang および Erlang/OTP の実装は、どのような言語で記述およびコンパイルされていますか? アセンブリは、C または Erlang 自体ですか?
更新 1: DrJokepu に感謝します。私の理解が正しければ、Erlang ソースから VM へのコンパイラは Erlang 自体で記述されています。ただし、VM は C で記述されています。
更新 2: Hynek-Pichi-Vychodil が多くの詳細を指摘しました。
- VM および HW 相互作用ドライバー: C.
- コンパイラ (VM へ) とライブラリ: Erlang で。
- 拡張機能: ポートまたは Erlang ノードをその言語で作成することにより、どの言語でも可能です。
actionscript-3 - プロトコルの単純さと「適切さ」
私は友人と別の口論をしています。
当事者間である種のイベント (メッセージ) を送信するために基本的に使用される単純な JSON ベースのプロトコルを設計する必要があると考えてください。
言って、何か
私はこのプロトコルを上記のように維持することを提案しますが、私の友人は次のようなことを提案しています:
彼の主張は、TCP と HTTP が「責任」の異なる層にあるように、このプロトコルはデータを分離しておくために「詳細」サブオブジェクトを使用する必要があるというものです。
彼が持っているもう 1 つの議論は、一致したイベントを処理するハンドラーは、"ルーティング" 情報 (event_id など) について何も認識してはならないというものです。
私の主張は次のとおりです。
- この情報をハンドラーから隠すために、各メッセージ (およびネットワーク トラフィック。これは、大量のメッセージを交換するシステムにとって重要な場合があります) の長さを増やしています。
ハンドラーは、適切に応答するために、実際には「ルーティング」情報を知る必要があります。
/li>event_id などをハンドラーから隠す必要がある場合でも、ハンドラーに渡す前にそれらを取り除くだけで、トラフィックを節約できます。
このプロトコルは非常に単純で、他の人が使用することは想定されていません。
どう思いますか?
scala - Agent / Actor ベースの並行設計の設計パターン
最近、私はアクター/エージェント/シェアード ナッシング アーキテクチャをサポートする代替言語に取り掛かっています。scala、clojure など (clojure は共有状態もサポートしています)。
これまでに読んだドキュメンテーションのほとんどは、イントロ レベルに焦点を当てています。私が探しているのは、4 つのギャングに沿ったより高度なドキュメントですが、代わりに何も共有されていません。
なんで ?デザイン思考の変化を理解するのに役立ちます。単純な例は簡単ですが、実際の Java アプリケーション (シングル スレッド) では、複雑な関係を持つ数千のメンバーを持つオブジェクト グラフを作成できます。しかし、エージェント ベースの同時実行開発では、大規模なシステムを設計するときに理解すべきまったく新しい一連のアイデアが導入されます。すなわち。エージェントの粒度 - 1 つのエージェントが管理する状態の量 - パフォーマンスなどへの影響、または共有状態オブジェクト グラフをエージェント ベースのシステムにマッピングするための適切なパターンです。ドメイン モデルを設計にマッピングするためのヒント。技術についてではなく、設計で技術を最大限に活用する方法についての議論 (現実世界の「複雑な」例は素晴らしいでしょう)。