- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12回目资料
言語プロセッサ 第12日目 平成19年1月9日 意味解析 名前の宣言と使用との対応付け 例: int x, y; float z; x = z * y; 整数型 = 浮動小数点型 * 整数型 意味解析 例: int x, y; float z; x = z * y; 整数型 = 浮動小数点型 * 整数型 整数型 = 浮動小数点型*浮動小数点型 整数型 = 浮動小数点型 整数型 = 整数型 変数等の宣言された情報を参照する必要がある。 => 記号表を用意しよう! ?名前 (spell) ?型 (int, float, …, struct char *, etc.) ?記憶域 (static, auto, …) ?その他 (const, etc.) 変数の場合(例) 型 大きさ(バイト数) 有効範囲 通常変数/仮引数 宣言の有無(暗黙宣言が許されている言語) 実行時に割り当てられるアドレス など 関数名?手続き名(例) 仮引数の個数および引数の型 戻り値の型(関数の場合) 有効範囲 コードの先頭番地(entry point) 定数名(例) 型 定数の内部表現 アドレス 型名(例) 型の種別(int, float, array, structure, etc.) 型の種別ごとの情報(arrayならば、添字の範囲、要素の型など) 記号表に対する操作 登録 参照 更新 削除 =>表探索問題(Table Search Problem) 記号表の操作は 速くなければならない =>どうすればいいのか?=> これ以降の議論は、 「データ構造とアルゴリズム」や 「計算可能性と計算量」など の授業でやること。 探索アルゴリズム 線形探索法(改良版には番兵法) 2分法 ハッシュ法(ハッシング法) 2分最適木法 B木法 etc.自分で作るときには、まず「線形探索」でOK。その後、hashing法にしてみよう。 中間言語 原始プログラムの構文解析結果は、「解析木」である。 実際には、解析木とは異なる内部表現を使うことも多い。=>これを「中間言語」と呼ぶ。 中間言語とは コンパイラは、原始プログラムを目的プログラムに変換する途中段階で、中間的なプログラムを作る場合がある。これを「中間コード」あるいは、中間言語プログラムといい、これを記述する言語を「中間言語」という。 中間言語 構文木 後置記法(Polish notation) 三つ組 四つ組 1.構文木 2.後置記法 前置記法(prefix notation) 中置記法(infix notation) 後置記法(postfix notation) 2.後置記法 前置記法(prefix notation) + X Y 中置記法(infix notation) X + Y 後置記法(postfix notation) X Y + 後置記法の長短 長所: 括弧が不要 コード生成がし易い スタックを利用すると、インタープリタが容易に実現可能 短所: 四つ組(後述)と比べ表現に融通性欠如 そのため、最適化に不向き 3.三つ組 形式: 番号 (演算子,被演算子1,被演算子2) 例: 7.(+,X,15)(意味) ⑦ ← X+15 例 A = 10 * B ー C / D = 1.(*,100,B) 2.( / ,C,D) 3.(ー,①,②) 4.(=,③,A) 4.四つ組 形式: (演算子,被演算子1,被演算子2,結果の変数) 例: (+,X,15,t)(意味) t ← X+15 例 A = 10 * B ー C / D = 1.(*,100,B,t1) 2.( / ,C,D,t2) 3.(ー,t1,t2,A) 例2:X=(A+B-C)/(A+B) (まずは自分でやってみよう) 例2:X=(A+B-C)/(A+B) (+,A,B,t1) (ー,t1,C,t2) (+,A,B,t3) ( / ,t2,t3,X) 例2:X=(A+B-C)/(A+B) (+,A,B,t1) (ー,t1,C,t2) (+,A,B,t3) ( / ,t2,t3,X) 例2:X=(A+B-C)/(A+B) (+,A,B,t1) (ー,t1,C,t2) ( / ,t2,t1,X) (最適化された!) 練習問題 式 X + y * ( z – w ) を 構文木 後置記法 三つ組 の列 四つ組 の列 として表せ。 コードの最適化 コンパイル過程において、生成するコードを改良することを「コード最適化」という。では、「改良」とはどうすること? 最適化の
您可能关注的文档
最近下载
- 集装箱采购集装箱生产方案.doc VIP
- DZ/T_0213-2002冶金、化工石灰岩及白云岩、水泥原料矿产地质勘查规范.doc VIP
- 统编教材部编版五年级下册语文全册教案含教学反思.pdf
- 人教版七年级 生物上册种子植物.docx VIP
- 1-6年级小学经典古诗词70首(带拼音).docx VIP
- 【重阳节】《敬老崇老,爱在重阳》主题班会课件.ppt.pptx VIP
- 职业生涯人物访谈报告(采访教师)汇编.pdf VIP
- 经济法理论与实务 智慧树 知到答案.docx VIP
- GB51427-2021自动跟踪定位射流灭火系统技术标准.pdf VIP
- 伦理与礼仪 智慧树 知到答案.docx VIP
原创力文档


文档评论(0)