言语プロセッサ ameken.clique.jp.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
言语プロセッサ ameken.clique.jp

例 A = 10 * B ー C / D = (*,10,B) ( / ,C,D) (ー,①,②) (=,③,A) * 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) 4.四つ組 形式: (演算子,被演算子1,被演算子2,結果の変数) 例: (+,X,15,t) (意味) t ← X+15 三番地命令/コードともいう * 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) 例 A = 10 * B ー C / D = 1.(*,10,B,t1) 2.( / ,C,D,t2) 3.(ー,t1,t2,A) 1と2の順序を入れ替えても、結果は変わらない! 最適な計算順序がある? * 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) 例2:X=(A+B-C)/(A+B) (まずは自分でやってみよう) * 練習問題 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) 例2:X=(A+B-C)/(A+B) (+,A,B,t1) (ー,t1,C,t2) (+,A,B,t3) ( / ,t2,t3,X) * 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) 例2:X=(A+B-C)/(A+B) (+,A,B,t1) (ー,t1,C,t2) (+,A,B,t3) ( / ,t2,t3,X) t1とt3は実は同じもの! * 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) 例2:X=(A+B-C)/(A+B) (+,A,B,t1) (ー,t1,C,t2) ( / ,t2,t1,X) (最適化された!) * 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) 練習問題 式 x + y * ( z – w ) を 構文木 後置記法 三つ組 の列 四つ組 の列  として表せ。 * 今日の 練習問題 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) コードの最適化 コンパイル過程において、生成するコードを改良することを「コード最適化」という。 では、「改良」とはどうすること? * 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) 最適化の内容(例) コードを小さくする 実行時の効率をよくする 実行時の使用メモリを小さくする 一般には、2が重要視される。 * 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) コード最適化の手法 共通部分の削除 複写伝播 不要コードの削除 ループ不変量の抽出とコード移動 演算子の強さの軽減 などなど * 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) 1.共通部分の削除 A=B/(C+D)-(C+D); ( +, C, D, t1 ) ( /, B, t1, t2 ) ( +, C, D, t3) ( -, t2, t3, A) * 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) 1.共通部分の削除 A=B/(C+D)-(C+D); ( +, C, D, t1 ) ( /, B, t1, t2 ) ( +, C, D, t3 ) ( -, t2, t3, A ) ( +, C, D, t1 ) ( /, B, t1, t2 ) ( -, t2, t1, A ) * 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) 2.複写伝播 X = Y; Z = X + 1; W = X; X = Y; Z = Y + 1; W = Y; * Yだけ。Xなし。 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) 3.不要コードの削除 X = Y; Z = Y + 1; W = Y; Z = Y + 1; W = Y; * 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) 4.ループ不変量の抽出とコード移動 for ( i=0; i100; i++ ) x[ i ] = 10 * a[ j ] + y[ i ]; w = 10*a[ j ]; for( i = 0; i 100; i++ ) x[ i ] = w + y[ i ] * 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) 5.演算子の強さの軽減 Y = A*2 Y = A + A * 言語プロセッサ2016 東京工科大学CS学部 (担当 亀田弘之) コード生成の概要(再) 原始プログラム 目的コード 字句解析 構文解析 意味解析 中間コード生成 中間コード 最適化 中間コード コード生成 * 言語プロセッサ2016 東京

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档