タグ付けされた質問 「interpreters」

3
ループ本体がスキップされたときに、BASICはどのようにして順序が狂ったNEXTステートメントを見つけるのですか?
WABACマシン、Shermanを設定します。この質問は、BASIC全般、およびMicrosoftのBASIC-80に関するものです。特にです。オールドスクールベーシック。行番号付き。 ループ本体が実行されておらず、NEXTステートメントが順不同である場合、旧式のBASICインタープリターはFOR ... NEXTループをどのように処理しますか(あるいは、そうしましたか)。 以前からの順不同のNEXTステートメント: これは、David H. Ahlの「101 Basic Computer Games」からのゲームAwariのサブルーチンです。 200 K=M:GOSUB 600 205 E=0:IF K>6 THEN K=K-7 210 C=C+1:IF C<9 THEN F(N)=F(N)*6+K 215 FOR I=0 TO 5:IF B(I)<>0 THEN 230 220 NEXT I 225 RETURN 230 FOR I=7 TO 12:IF B(I)<>0 THEN E=1:RETURN 235 GOTO 220 そしてここでは、編集されたフロー制御以外のすべてのものです: 200 …

5
基本言語の基本機能は?DSLの提案?
ようやくインタプリタとコンパイラを作成することの背後にある複雑さを理解し始めました。この時点に到達する前に、TinyBasic、1964(Dartmouth)Basicのいくつかのバージョンと、これらの言語での独自の拡張を構築しました。最新のプロジェクトは、私がオープンソースベーシックと呼んでいるプロジェクトです...人が興味を持つ言語の他の機能は考えられなかったからです。言語のソースを開き、複雑な処理がどのように行われるか(スキャン、解析、解釈、およびコンパイルがどのように行われるか)を理解できるようにするため Open Source Basicは、最初にスタックベースの言語に解釈されます。次に、そのスタックベースの言語が解釈されてすぐに実行されるか、CLR実行可能ファイルに変換されます。 私の質問はすべてこれに要約されます: Basicベースの言語の基本的な機能/構成は何ですか?私はこれらの基本的な構成をすでに持っています:割り当て、式、変数、いくつかの関数(ランダム、ToUpper、ToLower)、ループ(forおよびdo-while / until)、If(ブロックおよび単一行)Else決定、コンソールベースの入力(入力)、出力(Print)、およびサブルーチン(まだパラメーターなし)。 基本的な構成を自分の言語に追加する「完了」したら、どのように分岐する必要がありますか?どのドメインに?言い換えると、すべてのジェネリック構造を機能させたら、オープンソースの基本言語はどの方向に進むべきでしょうか? お時間をいただきありがとうございます ドミニク

3
変数は言語コンパイラまたはインタープリターにどのように格納されますか?
Pythonで変数を設定するとします。 five = 5 ブーム。これはどのように保存されていますか?コンパイラーまたはインタープリターはそれをそのような変数に入れますか? varname = ["five"] varval = [5] これがどのように行われる場合、それはどこに保存されますか?これは永遠に続くようです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.