A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
今の GCC は手書きの構文解析器がベースだったはずです.
確か 4.0.0 になったときに「手書きの構文解析器の方が適切なときにエラーが出せたりして便利なのでこっちに変える」ってアナウンスが出てました.
No.4
- 回答日時:
すみません, さすがに書名も忘れてしまいました. ごめんなさい.
ただ, 「入出力部分」と「解析/合成部分」を作って組合せれば OK なわけです. 前者は, もうそれこそシステムにべったり依存し, しかも「言語の本質」とは全く関係ないところなので話として出しにくいんじゃないでしょうか. 一方で後者の方は「だいたい普通に使うやりかた」というのが確立してますから, そっちは簡単に言ってしまえば「高級言語で全て書いてからハンドアセンブル」という逃げも存在します.
だから, 「アセンブリを使って」というのは, それこそ CP/M の頃のように「普通はアセンブリ」という時代じゃないと, 物として残らないんじゃないでしょうか.
しかし, 「(オリジナルな) 言語処理系」ってなぜかコンスタントに書籍が出るんですよね.... でも, 普通は lex/yacc かなぁ. ごく稀に「構文解析器を作ってみました~」とかいう本もあったりするけど, 10年前の本をして「普通はやらない」とか「そのうち人間国宝級」とか言われるくらい (とはいいつつその本では Pascal の処理系を手書きの構文解析器で処理してますが).
いずれにしても, アセンブリはきついなぁ. C で書かれた手書きの構文解析器なら有名なのがありますが.
回答ありがとうございます。
>「(オリジナルな) 言語処理系」ってなぜかコンスタントに書籍が出るんですよね
確かに言語処理系の書籍は出ていますが、優秀なものって中々ないですよね。
>C で書かれた手書きの構文解析器なら有名なのがありますが。
よければ教えて下さい。
No.3
- 回答日時:
「オリジナルな言語の処理系をアセンブリだけを使って作る」のは, さすがに手間がかかりすぎて無理に近いと思います.
いや, 確かに Z80 (というか i8080) + CP/M の時代にはそういうことをやった本があったのは覚えてますが.... 持ってたけど捨てちゃった.
回答ありがとうございます。
その本が凄く欲しいです……。
何かそれに近いような書籍はありませんか?
ないようなら自分でやるしかありませんね。
No.2
- 回答日時:
参考書としては#1の方が挙げられた通り。
ただ、全部アセンブラで書くのはお勧めでないです。プログラム構造からコードを生成するあたりは本来やりたいことだろうから面白いわけですが、字句解析・構文解析は面倒です。
arm[1]=boy+cat(0)*dog のような代入式を表す文字列から演算子・変数名・関数名・添え字などの文法上の要素に分解してデータ構造を作るあたりなど、おそらくやりたいことではないでしょう。文法エラー処理も大変です。
字句解析はlexやflex、構文解析はyaccやbisonといったツールがありますので、それを使うのがいいでしょう。
回答ありがとうございます。
flex等のツールで作成する方法で以前に制作した事があります。
その時の制作時には、C言語を使用したので、今度は全てアセンブリでやろうかなと思ったのですが……。
大変そうですが粘ってみます。
No.1
- 回答日時:
オリジナル言語の設計や実装については、いわゆるコンパイラやに関する書籍が参考になります。
Aho, Sethi, Ullman "Compilers"
"ヴィルトのコンパイラ構成法"
中田育男 "コンパイラの構成と最適化"
インタプリタ型の場合は"デバッガの理論と実装"のようなデバッガ関連の書籍も役に立ちます。
通常 C などの言語でオリジナル言語を実装する際には、字句解析器や構文解析器を自動生成しますので、アセンブリ言語にこだわるのならその辺は自前で実装する必要があります。この点について参考となる文献は聞いた(見た)ことがありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 知的財産権 販売用Tシャツの権利について 3 2022/05/23 12:41
- 知的財産権 AIがネット上からパクって作り出したモノを利用することは「善意の第三者」の釈明は通用するか否か? 8 2023/04/27 19:25
- オープンソース Blenderでオリジナルの作品を作ることについて 1 2022/07/15 00:23
- アイドル・グラビアアイドル オリジナルTシャツの著作権問題について。 ネットでオーダーしてTシャツにプリントしてもらうサービスで 3 2022/05/11 18:55
- 美術・アート 【辛口でお願いします(>人<;)13才女子作の駄作ですがオリジナル漫画のワンシーンです!】 例の人身 4 2022/10/03 18:31
- ノートパソコン 大学のレポート作成専用ノートパソコンとして、VAIO SX12(Core i7、32GB、1TB-S 5 2023/06/10 11:14
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- クラフト・工作 ハンドメイドを販売しようと考えてます。複数枚のフリー画像をトレーシングペーパーに書いてシルエットのみ 1 2023/01/18 21:11
- 美術・アート 【辛口で大丈夫です(>人<;)1番時間かけた13才女子作の駄作ですがオリジナル漫画のワンシーンです! 1 2022/10/10 20:10
- レシピ・食事 冷やし中華好きのかたへ質問いたします。 8 2023/07/23 14:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
楽しくて最高のプログラミング...
-
rpa化する言語としてら何があり...
-
Pythonって何を意識した言語な...
-
最新のプログラム言語を学ぶに...
-
Int('1234') で、strをかんたん...
-
質問失礼します。 プログラム言...
-
プログラミング言語の制作方法...
-
C言語とhtmlの違いを どな...
-
C++における継続行
-
UNITY Float型の接尾辞fって
-
Delphiに詳しい方助けてくださ...
-
プログラミング言語について
-
CとC++は別物なんですか?
-
VBSでDim、Private、Publicの違い
-
F#って何??
-
チューリング完全とは何か?
-
accessという言語らしいのですが
-
引用符と二重引用符
-
初めてのプログラミング言語は...
-
今後必要とされる開発言語
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
楽しくて最高のプログラミング...
-
Pythonって何を意識した言語な...
-
C言語とhtmlの違いを どな...
-
プログラムに書かれる"%"記号の...
-
COBOLでのNOT = の AND条件
-
C++ ってなんて読む?
-
質問失礼します。 プログラム言...
-
プログラミング言語の制作方法...
-
UNITY Float型の接尾辞fって
-
C言語って古いですか?
-
Int('1234') で、strをかんたん...
-
COBOLで文字タイプを数字...
-
TO_CHARで小数点以下がある場合...
-
最新のプログラム言語を学ぶに...
-
C++における継続行
-
vbaとc言語の関連性について
-
VBScriptで引数を省略したい場合
-
VBSでDim、Private、Publicの違い
-
HTMLとC++で、どんなホームペー...
おすすめ情報