問題タブ [interpreter]
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.
parsing - Haskellで小さなパーサーを書く再帰の問題。変数を確認する
私はまだ学校のタスクで定義された小さな言語のための小さなパーサーに取り組んでいます。AST(抽象構文木)を生成するパーサーが機能しています。私が欲しいのは、定義された変数をチェックすることです。それらはlet式によって制限されなければなりません。まず、タスクで定義されているメソッド(提案、不要):
有効な文は「*(2、X)でXを5にする」です。Xは通常Varであり、5は通常intです。そして最後はdataExprタイプの任意の部分にすることができます。要点:Xは最後の式のどこかで使用されています。letのデータ型は次のとおりです。
このタスクについて私が尋ねた他の質問へのリンクは、参考までにここにあります。 最初の質問 2番目の質問
ご覧のとおり、checkVarsのデータ型はExprであるため、その関数にフィードするものの例を次に示します。
これは包括的な例であり、上部は解析される文字列/プログラムです。3行目(Let)から始まる2番目の部分は、checkVars関数の入力であるASTです。そして下の部分「Just24」は評価です。私はもっと助けを求めてここに戻ってきます。注:重要なのは、エラーとして最初に見つかったバインドされていない変数を吐き出すことです。すべてが正常な場合は''です。明らかに、これを別の方法で実行したい場合は、可能です。
haskell - Haskellでは(==)はどのように定義されていますか?
Haskellで小さな関数型プログラミング言語を書いていますが、(==)の実装方法の定義が見つかりません。これはかなりトリッキーなようですが、
python - パイソン | スクリプト実行後にローカル変数をグローバルにする方法
これがコードです。私がする必要があるのは、実行を繰り返すと毎回 0 にリセットされるのではなく、i
の値が 1 ずつ増加するように、グローバルにする方法を見つけることです。i
のコードmain
は、トレース機能を機能させるために「メイン」に埋め込んだ別のスクリプトからのものです。これはすべてJavaから行われています。
c - リンカの書き方
バイト コードを出力する C 用のコンパイラを作成しました。その理由は、複数のプラットフォームで実行される組み込みプラットフォーム用のアプリケーションを作成できるようにするためでした。
コンパイラとアセンブラがあります。
リンカーを作成する必要があり、立ち往生しています。
オブジェクト形式は、バイト コード インタープリターを中心に設計されたカスタム形式であるため、既存のリンカーを実際に使用することはできません。
私の最大のハードルは、リンクされたバイナリを出力するオブジェクト コードをどのように整理するかです。現時点では、動的リンクは必要ありません。最初に静的リンクを機能させる必要があります。
functional-programming - 関数型言語のインタープリターを設計する際の主な問題は何ですか?
関数型言語のインタープリターを実装したいとします。そうすることに伴う問題と、利用可能な適切な文献を理解したいと思います。これは、設計の初期段階にある新しい言語であるため、質問の範囲が広くなっています。
この議論の目的のために、言語の目的は重要ではなく、インタープリターの書きやすさに大きな違いが生じる場合、その機能を (大幅に) 変更できると仮定できます。
MIT の Web サイトには、 Structure and Interpretation of Computer Programsのオンライン コピーと、1986 年に HP で記録された、Scheme を使用した MIT 6.001 講義のビデオがあります。これらは、言語設計の優れた入門書となります。
c# - C#で記述された標準のWindowsサービスのコマンドライン入力を受け入れるための簡単な方法は?
自動的に起動してA-okayを実行する非常に単純なWindowsサービスをC#で作成しました。サービスにコマンドライン入力を受け入れさせる最善の方法を考えていました。これは常に同じユーザー(admin)からのものであり、サービス自体は完全に信頼されています(LocalSystem)。
デザインパターンの用語については少し(ほとんど)知っていますが、この単純なサービスをインタープリタースタイルのパターンでラップすることを検討する必要がありますか?これは複雑すぎますか?プログラムのエントリポイントを介してそれを行う方法はありますか?(string [] argsを取ることができる単純なコンソールアプリを実行しているかのように?)
基本的に、コンソールを介していつでも発行できる非常に特定の文法(特定のコマンド)を受け入れ、それらの特定のコマンドのみを受け入れる必要があります(さまざまなセキュリティ問題のいずれかを回避できることを願っています)。
これについて説明が必要な場合は、私に知らせてください。提案(または解決策)に感謝します。
.net - 「Jint - Javascript Interpreter for .NET」は信頼できますか?
Codeplexでジントを見てきました。とても面白そうです。使ったことがありますか?あなたの意見では、0.8.4 は安定しており、使用可能ですか? (生産品質?)
c++ - CPythonはバイトコードインタープリターですか?
CPythonのコンテキストでは、「バイトコードインタープリター」の概念は実際にはわかりません。誰かが全体像に光を当てることができますか?
CPythonがpycファイル(バイトコードファイル)をコンパイルして実行することを意味しますか?では、pyファイルをpycファイルにコンパイルするのは何ですか?また、JythonはCPythonとどのように異なりますか(異なる言語で実装されている場合を除く)。
また、PythonがC++の解釈であることもどこかで読みました。これは正しいです?そして、それはどういう意味ですか?
私はまだPythonに慣れていないので、ばかげた質問をしても許してください...どうもありがとうございました!
interpreter - インタープリター言語がコンパイル済み言語より優れている点は何ですか?
重複の可能性:
動的言語への愛とは何ですか
私はすでにこれを読みましたが、わかりません。
独自のインタープリターを作成するのは何の役に立つのですか。また、プラットフォームの独立性についても言及しています。結局、プラットフォームの独立性の程度は、インタープリターが実行できるすべてのプラットフォームによって制限されます。というわけで、何のメリットも感じません。
また、私は動的型付けの良い使い方を 1 つも知りません。もったいない気がします。もちろん、私が間違っているのは、動的に型付けされる言語が非常に多いからです。
ここで誰か助けてくれませんか?ありがとう。
python - 安全なPythonインタープリター?
安全なPythonインタープリターはありますか?
マシン上で実行できるPythonVMを想像してみてください。これにより、操作が制限されます。ファイルを開くことも、システムコールをかけることもできません。テキスト処理と数学などを使用して、stdinをstdoutに変換するだけです。
そのような安全なPythonVMは存在しますか?